From 5bbef2a5a1cda310d94197f38b3898401d4eca41 Mon Sep 17 00:00:00 2001 From: Felix Stupp Date: Tue, 6 Dec 2022 12:18:16 +0100 Subject: [PATCH] recommendations/adaptive: Require max_length, ask if not given - to speed up usage of adaptive recommendations - as users had no chance of inserting a max length (which speeds up calculation) before a first general search was started - now users can insert a max length before starting a first calculation --- server/app.py | 13 +++++++++++-- server/templates/recommendations_adaptive.htm | 12 +++++++----- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/server/app.py b/server/app.py index feac946..af0a7bd 100644 --- a/server/app.py +++ b/server/app.py @@ -714,17 +714,26 @@ def recommend_on_media(media_id: int) -> ResponseReturnValue: @flask_app.route("/recommendations/adaptive") def recommend_adaptive() -> ResponseReturnValue: score_adapt = request.args.get("score_adapt", default=2, type=int) - max_length = request.args.get("max_length", default=0, type=int) preferences = request.cookies.get( key=PREFERENCES_SCORE_NAME, default=PreferenceScore(), type=PreferenceScore.from_base64, ) * (1 if score_adapt > 0 else -1 if score_adapt < 0 else 0) + if "max_length" not in request.args: + # ask for max length before calculating to save time + return render_template( + "recommendations_adaptive.htm", + max_length=0, + score_adapt=score_adapt, + preferences=preferences, + media_list=None, + ) + max_length = request.args.get("max_length", default=0, type=int) preference_list = generate_preference_list( object_gen=lambda: get_all_considered( order_by="elem.release_date DESC", filter_by=f"(length - progress) <= {max_length * 60}" - if max_length + if max_length > 0 else "true", ), score_adapt=score_adapt, diff --git a/server/templates/recommendations_adaptive.htm b/server/templates/recommendations_adaptive.htm index 3b763bb..8a66eec 100644 --- a/server/templates/recommendations_adaptive.htm +++ b/server/templates/recommendations_adaptive.htm @@ -34,10 +34,12 @@ {% endfor %} - {{ macros.media_thumbnail_list( - elements=media_list, - check_considered=False, - show_rating=True, - ) }} + {% if media_list %} + {{ macros.media_thumbnail_list( + elements=media_list, + check_considered=False, + show_rating=True, + ) }} + {% endif %}