Interface web pour noter rapidement les films non notés sur Trakt. Enrichissement TMDB (titres/résumés FR), notation 1-10 en un clic, bouton passer, filtres, tri, pagination. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
153
README.md
Normal file
153
README.md
Normal file
@@ -0,0 +1,153 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user