diff --git a/server/app.py b/server/app.py index d653066..082bce9 100644 --- a/server/app.py +++ b/server/app.py @@ -186,6 +186,10 @@ def list_collection(): collection_list: Iterable[MediaCollection] = MediaCollection.select().order_by(orm.desc(MediaCollection.release_date), MediaCollection.title, MediaCollection.id) return render_template("collection_list.htm", collection_list=collection_list) +@flask_app.route("/collection/extract") +def extract_collection(): + return render_template("collection_extract.htm") + @flask_app.route("/collection/") def show_collection(collection_id): collection: MediaCollection = MediaCollection.get(id=collection_id) @@ -276,6 +280,20 @@ def api_collection_list(): } for collection in collection_list], }, 200 +@flask_app.route("/api/collection/extract", methods=["POST"]) +def api_collection_extract(): + data = request.form.to_dict() + if "uri" not in data: + return { + "status": False, + "error": f"Missing uri value to extract", + } + m = collection_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/collection/", methods=["GET", "POST"]) def api_collection_element(collection_id: int): collection: MediaCollection = MediaCollection.get(id=collection_id) diff --git a/server/templates/collection_extract.htm b/server/templates/collection_extract.htm new file mode 100644 index 0000000..87cd33a --- /dev/null +++ b/server/templates/collection_extract.htm @@ -0,0 +1,24 @@ +{% import "macros.htm" as macros %} + + + {% set title = "Extract Collection" %} + + + {{ title }} + {{ macros.shared_style() }} + + + <- back to list +

{{ title }}

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