diff --git a/server/app.py b/server/app.py index 8e76d01..e919fc8 100644 --- a/server/app.py +++ b/server/app.py @@ -443,12 +443,7 @@ def show_collection(collection_id: int) -> ResponseReturnValue: media_links = None media_titles = None if orm.count(collection.media_links) <= SMALL_COLLECTION_MAX_COUNT: - media_links = MediaCollectionLink.select( - lambda l: l.collection == collection - ).order_by(MediaCollectionLink.sort_key) - media_titles = remove_common_trails( - [link.element.title for link in media_links] - ) + media_links, media_titles = prepare_collection_episodes(collection) return render_template( "collection_element.htm", collection=collection, @@ -462,10 +457,7 @@ def show_collection_episodes(collection_id: int) -> ResponseReturnValue: collection: MediaCollection = MediaCollection.get(id=collection_id) if collection is None: return make_response(f"Not found", 404) - media_links = MediaCollectionLink.select( - lambda l: l.collection == collection - ).order_by(MediaCollectionLink.sort_key) - media_titles = remove_common_trails([link.element.title for link in media_links]) + media_links, media_titles = prepare_collection_episodes(collection) return render_template( "collection_episodes.htm", collection=collection, @@ -474,6 +466,16 @@ def show_collection_episodes(collection_id: int) -> ResponseReturnValue: ) +def prepare_collection_episodes( + collection: MediaCollection, +) -> tuple[Iterable[MediaCollectionLink], Iterable[str]]: + media_links = MediaCollectionLink.select( + lambda l: l.collection == collection + ).order_by(MediaCollectionLink.sort_key) + media_titles = remove_common_trails([link.element.title for link in media_links]) + return media_links, media_titles + + @flask_app.route("/media") def list_media() -> ResponseReturnValue: media_list: Iterable[MediaElement] = get_all_considered(