Add endpoint and UI page for extracting new collections

master
Felix Stupp 3 years ago
parent 9263e43161
commit e16920b9f7
Signed by: zocker
GPG Key ID: 93E1BD26F6B02FB7

@ -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/<int:collection_id>")
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/<int:collection_id>", methods=["GET", "POST"])
def api_collection_element(collection_id: int):
collection: MediaCollection = MediaCollection.get(id=collection_id)

@ -0,0 +1,24 @@
{% import "macros.htm" as macros %}
<!DOCTYPE html>
<html>
{% set title = "Extract Collection" %}
<head>
<meta charset="utf-8"/>
<title>{{ title }}</title>
{{ macros.shared_style() }}
</head>
<body>
<a href="/collection">&lt;- back to list</a>
<h1>{{ title }}</h1>
<form method="post" action="/api/collection/extract">
{{ macros.hidden_redirect_back() }}
<input type="text" name="uri" style="width: 40em;" />
<button type="submit" name="redirect_to_object" value="true">
extract
</button>
<button type="submit" name="redirect_to_object" value="false">
extract & more
</button>
</form>
</body>
</html>
Loading…
Cancel
Save