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
This commit is contained in:
root
2026-04-02 22:42:36 +00:00
parent e5b30741fe
commit c921aafadd
2 changed files with 25 additions and 21 deletions
+10
View File
@@ -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(