From c921aafadd54643e025dd40bade915f5e90a3bcc Mon Sep 17 00:00:00 2001 From: root Date: Thu, 2 Apr 2026 22:42:36 +0000 Subject: [PATCH] feat: filtre par type pour recommandations et sorties (#14) - Parametre content_type sur /api/recommendations et /api/releases/latest - Section anime: filtre content_type=anime sur releases - Section series: filtre content_type=series sur recommendations et releases - Nettoyage emojis dans titres de section Closes #14 --- app/routers/router_recommendations.py | 10 ++++++++ templates/index.html | 36 +++++++++++---------------- 2 files changed, 25 insertions(+), 21 deletions(-) diff --git a/app/routers/router_recommendations.py b/app/routers/router_recommendations.py index 43f9d5b..69cff44 100644 --- a/app/routers/router_recommendations.py +++ b/app/routers/router_recommendations.py @@ -28,6 +28,7 @@ async def get_recommendations( request: Request, limit: int = 15, html: bool = Query(False), + content_type: Optional[str] = Query(None, description="Filter: 'anime', 'series', or None for all"), current_user: Optional[User] = Depends(get_optional_user), ): """Get personalized anime recommendations based on download history""" @@ -45,6 +46,10 @@ async def get_recommendations( try: recommendations = await engine.get_personalized_recommendations(limit=limit) + + # Filter by content_type if specified + if content_type and content_type != "all": + recommendations = [r for r in recommendations if r.get("content_type", r.get("type", "")) == content_type] if html or is_htmx: return templates.TemplateResponse( @@ -66,12 +71,17 @@ async def get_latest_releases( request: Request, limit: int = 20, html: bool = Query(False), + content_type: Optional[str] = Query(None, description="Filter: 'anime', 'series', or None for all"), ): """Get latest anime releases""" from app.recommendations import get_latest_releases_with_info try: releases = await get_latest_releases_with_info(limit=limit) + + # Filter by content_type if specified + if content_type and content_type != "all": + releases = [r for r in releases if r.get("content_type", r.get("type", "")) == content_type] if html or request.headers.get("HX-Request"): return templates.TemplateResponse( diff --git a/templates/index.html b/templates/index.html index d006eb6..ee40a6d 100644 --- a/templates/index.html +++ b/templates/index.html @@ -12,7 +12,7 @@
-

🎬 Rechercher un Anime

+

Rechercher un Anime

Recherche en cours...
-
- 💡 Astuce : La recherche unifiée explore plusieurs sources pour trouver vos animes préférés. -
@@ -51,11 +48,11 @@
- +
-

🔥 Dernières sorties Anime

+

Dernieres sorties Anime

- +
-

📺 Rechercher une Série TV

+

Rechercher une Serie TV

@@ -105,11 +99,11 @@
- +
-

🎯 Recommandé pour vous

+

Recommande pour vous

- + - +
-

🔥 Dernières sorties Séries TV

+

Dernieres sorties Series TV

- +