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
master
Felix Stupp 1 year ago
parent 328f234711
commit 5bbef2a5a1
Signed by: zocker
GPG Key ID: 93E1BD26F6B02FB7

@ -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,

@ -34,10 +34,12 @@
{% endfor %}
</ul>
</div>
{{ 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 %}
</body>
</html>

Loading…
Cancel
Save