fix: filtre content_type, doublons seasonaux, et is_admin manquant #19

Open
Roman wants to merge 1 commits from fix/content-filter-and-auth-bugs into main
Owner

Corrige 3 bugs :

Bug 1 — Filtre content_type inopérant :
Les méthodes de AnimeReleasesFetcher (get_seasonal_anime, get_scheduled_anime, get_top_anime, search_anime) et _get_fallback_recommendations construisaient des dicts sans inclure le champ type provenant de l'API Jikan. Le filtre content_type dans router_recommendations.py faisait r.get("content_type", r.get("type", "")) qui retournait toujours "".
→ Ajout de 'type': item.get('type', '') dans chaque construction de dict.

Bug 2 — Doublons dans /api/releases/seasonal :
get_seasonal_anime() faisait un simple slice [:20] sans déduplication. Jikan pouvant retourner des doublons, ceux-ci se retrouvaient dans la réponse.
→ Ajout d'un ensemble seen_mal_ids pour filtrer les doublons avant de limiter à 20 résultats.

Bug 3 — /api/auth/me ne retourne pas is_admin :

  • get_current_user_from_token() et get_optional_user() construisaient un objet User sans passer is_admin
  • Le endpoint /me construisait la réponse manuellement sans inclure is_admin
    → Ajout de is_admin=user.is_admin dans les constructeurs User et de "is_admin": current_user.is_admin dans la réponse /me.

Fichiers modifiés :

  • app/recommendations.py
  • app/recommendation_engine.py
  • app/routers/router_auth.py
Corrige 3 bugs : **Bug 1 — Filtre content_type inopérant :** Les méthodes de `AnimeReleasesFetcher` (`get_seasonal_anime`, `get_scheduled_anime`, `get_top_anime`, `search_anime`) et `_get_fallback_recommendations` construisaient des dicts sans inclure le champ `type` provenant de l'API Jikan. Le filtre `content_type` dans `router_recommendations.py` faisait `r.get("content_type", r.get("type", ""))` qui retournait toujours `""`. → Ajout de `'type': item.get('type', '')` dans chaque construction de dict. **Bug 2 — Doublons dans /api/releases/seasonal :** `get_seasonal_anime()` faisait un simple slice `[:20]` sans déduplication. Jikan pouvant retourner des doublons, ceux-ci se retrouvaient dans la réponse. → Ajout d'un ensemble `seen_mal_ids` pour filtrer les doublons avant de limiter à 20 résultats. **Bug 3 — /api/auth/me ne retourne pas is_admin :** - `get_current_user_from_token()` et `get_optional_user()` construisaient un objet `User` sans passer `is_admin` - Le endpoint `/me` construisait la réponse manuellement sans inclure `is_admin` → Ajout de `is_admin=user.is_admin` dans les constructeurs `User` et de `"is_admin": current_user.is_admin` dans la réponse `/me`. Fichiers modifiés : - `app/recommendations.py` - `app/recommendation_engine.py` - `app/routers/router_auth.py`
Roman added 1 commit 2026-04-03 15:20:16 +00:00
fix: filtre content_type, doublons seasonaux, et is_admin manquant
CI / Test (Python 3.11) (pull_request) Has been cancelled
CI / Test (Python 3.12) (pull_request) Has been cancelled
CI / Lint (pull_request) Has been cancelled
CI / Type Check (pull_request) Has been cancelled
CI / Summary (pull_request) Has been cancelled
66912a0b71
- Bug 1: Ajout du champ 'type' dans les dict de AnimeReleasesFetcher
  (get_seasonal_anime, get_scheduled_anime, get_top_anime, search_anime)
  et dans _get_fallback_recommendations pour que le filtre content_type
  fonctionne correctement
- Bug 2: Déduplication par mal_id dans get_seasonal_anime() pour
  éviter les doublons retournés par l'API Jikan
- Bug 3: Ajout de is_admin dans get_current_user_from_token(),
  get_optional_user(), le constructeur User du register, et la
  réponse /me
Some checks are pending
CI / Test (Python 3.11) (pull_request) Has been cancelled
CI / Test (Python 3.12) (pull_request) Has been cancelled
CI / Lint (pull_request) Has been cancelled
CI / Type Check (pull_request) Has been cancelled
CI / Summary (pull_request) Has been cancelled
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin fix/content-filter-and-auth-bugs:fix/content-filter-and-auth-bugs
git checkout fix/content-filter-and-auth-bugs
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Roman/ohm_streaming#19