diff --git a/server/app.py b/server/app.py index d49588a..c332de1 100644 --- a/server/app.py +++ b/server/app.py @@ -235,6 +235,10 @@ def list_media(): media_list=list(itertools.islice(get_considerable(), 100)) ) +@flask_app.route("/media/extract") +def extract_media(): + return render_template("media_extract.htm") + @flask_app.route("/media/length") def get_media_length(): c = len(MediaElement.select()) @@ -365,6 +369,20 @@ def api_media_list(): } for media in media_list], }, 200 +@flask_app.route("/api/media/extract", methods=["POST"]) +def api_media_extract(): + data = request.form.to_dict() + if "uri" not in data: + return { + "status": False, + "error": f"Missing uri value to extract", + } + m = media_extract_uri(data["uri"]) + orm.flush() + if m and environ_bool(data.get("redirect_to_object", False)): + return redirect(m.info_link) + return redirect_back_or_okay() + @flask_app.route("/api/media/", methods=["GET", "POST"]) def api_media_element(media_id: int): element: MediaElement = MediaElement.get(id=media_id) diff --git a/server/templates/media_extract.htm b/server/templates/media_extract.htm new file mode 100644 index 0000000..8ddc07f --- /dev/null +++ b/server/templates/media_extract.htm @@ -0,0 +1,24 @@ +{% import "macros.htm" as macros %} + + + {% set title = "Extract Media" %} + + + {{ title }} + {{ macros.shared_style() }} + + + <- back to list +

{{ title }}

+
+ {{ macros.hidden_redirect_back() }} + + + +
+ +