modified: app/routes.py

This commit is contained in:
SimolZimol
2026-08-07 22:43:30 +02:00
parent 3047d1610d
commit 62eebf75ca

View File

@@ -39,13 +39,25 @@ def api_player():
@bp.route("/api/search") @bp.route("/api/search")
def api_search(): def api_search():
from difflib import SequenceMatcher
q = (request.args.get("q") or "").strip().lower() q = (request.args.get("q") or "").strip().lower()
if not q: if not q:
return jsonify([]) return jsonify([])
movies = Movie.query.filter(Movie.title.ilike(f"%{q}%")).limit(10).all() movies = Movie.query.filter(Movie.title.ilike(f"%{q}%")).limit(50).all()
results = []
for m in movies:
score = SequenceMatcher(None, q, m.title.lower()).ratio()
# Substring-Treffer gelten bereits als starke Uebereinstimmung
if q in m.title.lower():
score = max(score, 0.6)
if score >= 0.6:
results.append((score, m))
results.sort(key=lambda x: x[1].year, reverse=True)
results.sort(key=lambda x: x[0], reverse=True)
return jsonify([ return jsonify([
{"id": m.id, "title": m.title, "year": m.year} {"id": m.id, "title": m.title, "year": m.year}
for m in movies for _, m in results[:10]
]) ])