# trakt-rater Interface web pour noter rapidement les films non notés sur Trakt. Affiche tous les films de ton historique Trakt qui n'ont pas encore de note (ou notés 10/10 à revoir), enrichis avec les titres et résumés en français via TMDB. Un clic suffit pour noter et passer au suivant. --- ## Fonctionnalités - Films filtrés depuis ton historique Trakt : non notés et notés 10/10 - Titres français, jaquettes et résumés via TMDB (fallback anglais si traduction absente) - Note en un clic (1–10) — le film disparaît immédiatement - Bouton « Passer » pour ignorer un film sans le noter (persistant dans le navigateur) - Filtres : tous / non notés / 10/10 - Tri : date de visionnage / titre / année - Pagination --- ## Prérequis - Un compte [Trakt](https://trakt.tv) avec une application OAuth configurée - Une clé API [TMDB](https://www.themoviedb.org/settings/api) (gratuite) ### Créer l'application Trakt 1. Aller sur [trakt.tv/oauth/applications/new](https://trakt.tv/oauth/applications/new) 2. Remplir le nom (ex. `trakt-rater`) 3. Mettre comme **Redirect URI** : `http://localhost:8000/auth/callback` *(ou l'URL publique de ton instance si derrière un reverse proxy)* 4. Récupérer le **Client ID** et le **Client Secret** --- ## Docker La méthode recommandée. ### Démarrage rapide ```bash # 1. Copier le compose et remplir les variables cp docker-compose.yml docker-compose.local.yml $EDITOR docker-compose.local.yml # 2. Build de l'image docker build -t trakt-rater:latest . # 3. Démarrer docker compose -f docker-compose.local.yml up -d ``` Logs : ```bash docker logs -f trakt-rater ``` Puis ouvrir [http://localhost:8000](http://localhost:8000) et se connecter avec Trakt. ### Variables d'environnement | Variable | Défaut | Description | |-----------------------|--------------------------------------|----------------------------------------------------------| | `TRAKT_CLIENT_ID` | *(requis)* | Client ID de l'application Trakt | | `TRAKT_CLIENT_SECRET` | *(requis)* | Client Secret de l'application Trakt | | `TRAKT_REDIRECT_URI` | `http://localhost:8000/auth/callback`| Doit correspondre exactement à l'URI configurée sur Trakt | | `TMDB_API_KEY` | *(requis)* | Clé API TMDB | | `SECRET_KEY` | `change-me` | Clé de signature des sessions (à changer) | --- ## Unraid ### Méthode 1 — Docker Compose Manager (recommandée) > **Important :** le Compose Manager d'Unraid pipe le fichier via stdin, donc `build: .` ne fonctionnera pas. Il faut builder l'image manuellement d'abord. **Étape 1 — Builder l'image sur Unraid** (terminal, à refaire après chaque mise à jour) : ```bash cd /mnt/user/appdata git clone trakt-rater-src docker build -t trakt-rater:latest /mnt/user/appdata/trakt-rater-src/ ``` **Étape 2 — Ajouter le stack** dans le Docker Compose Manager, coller : ```yaml services: trakt-rater: image: trakt-rater:latest container_name: trakt-rater restart: unless-stopped ports: - "8000:8000" environment: TRAKT_CLIENT_ID: "ton_client_id" TRAKT_CLIENT_SECRET: "ton_client_secret" TRAKT_REDIRECT_URI: "http://unraid.local:8000/auth/callback" TMDB_API_KEY: "ta_clé_tmdb" SECRET_KEY: "une-chaine-aléatoire" ``` > **Note :** penser à mettre à jour le `TRAKT_REDIRECT_URI` avec l'adresse de ton Unraid, et à l'ajouter dans les paramètres de l'application Trakt. **Mettre à jour l'image** après un changement de code : ```bash cd /mnt/user/appdata/trakt-rater-src git pull docker build -t trakt-rater:latest . docker restart trakt-rater ``` --- ## Sans Docker ```bash python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt cp .env.example .env # Remplir .env avec tes clés uvicorn main:app --reload ``` --- ## Structure du projet ``` main.py Application FastAPI (routes, cache, OAuth) trakt.py Client Trakt API tmdb.py Client TMDB API (enrichissement FR) static/ index.html Interface web style.css Thème sombre app.js Logique frontend requirements.txt Dépendances Python Dockerfile Image Docker docker-compose.yml Stack Docker Compose .env.example Template de configuration ``` --- ## License MIT