154 lines
4.5 KiB
Markdown
154 lines
4.5 KiB
Markdown
|
|
# 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 <url-du-dépôt> 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
|