Que fait filmweb ?
Récupère les données de l'API JSON derrière www.filmweb.pl à l'aide d'un petit script Python sans dépendance, scripts/filmweb.py, qui imprime toujours du JSON.
Exécution du script
Exécutez-le depuis le répertoire de cette compétence. Utilisez le lanceur Python disponible :
| OS | Commande |
|---|---|
| Linux / macOS | python3 scripts/filmweb.py <commande> … |
| Windows | py scripts/filmweb.py <commande> … (ou python) |
Aucune installation n'est nécessaire.
Flux de travail
- Obtenir l'identifiant Filmweb.
- L'utilisateur a fourni un lien →
filmweb.py id "<url>"(hors ligne). L'ID est le nombre final du slug :filmweb.pl/film/Matrix-1999-628→628,filmweb.pl/serial/Gra+o+tron-2011-476848→476848. - L'utilisateur a fourni un titre →
filmweb.py search "<titre>". Les résultats sont triés par pertinence. Ajoutez--type=seriallorsque l'utilisateur désigne clairement une série télévisée (ou--type=filmpour un film). Si plusieurs titres peuvent correspondre (remakes, suites, film vs. série), vérifiez-les avecfilmet sélectionnez par année, ou demandez à l'utilisateur.
- L'utilisateur a fourni un lien →
- Récupérer uniquement ce dont la question a besoin.
- note, genres, réalisateur, court synopsis →
film - "qui a joué dans…" →
cast(filmcontient déjà les deux acteurs principaux) - "où puis-je regarder…" →
vod - "quand est la première…" →
dates - synopsis complet →
description; détails sur une personne →person <personId>
- note, genres, réalisateur, court synopsis →
- Répondre dans la langue de l'utilisateur et citer l'
urlprovenant defilm. Arrondissez la note à une décimale et mentionnez le nombre de votes (par exemple "7,6/10 sur 872 000 notes". Donnez les prix VOD en zł.
Films et séries
Les films, séries télévisées et jeux partagent un espace d'identifiants sur Filmweb, et chaque commande accepte
n'importe lequel d'entre eux — utilisez film <id> aussi pour une série (par exemple film 476848 pour "Gra o tron").
Vérifiez le champ type dans la sortie (film, serial, …). Pour les séries, year correspond à la première saison
et duration est la durée d'un épisode, pas de la série entière.
Commandes
| Commande | Retourne |
|---|---|
| `search "<requête>" [--type=film | serial |
| `film <id | url>` (film ou série) |
| `description <id | url>` |
| `cast <id | url> [--limit=10]` |
| `dates <id | url>` |
| `vod <id | url>` |
person <personId> | name, realName, birthDate, birthplace, height, profession, photoUrl, knownForIds, url |
id <url> | {"id": …}, hors ligne |
Référence des champs : references/output.md.
Codes de sortie
Le JSON va sur stdout ; les erreurs vont sur stderr sous forme {"error": "...", "type": "..."}.
| Code | Signification | Action |
|---|---|---|
0 | succès | utilisez le JSON |
2 | non trouvé | informez l'utilisateur ; vérifiez l'ID |
64 | mauvaise utilisation | corrigez les arguments |
69 | erreur Filmweb / réseau | réessayez une fois ; si ça persiste, utilisez le repli |
Repli
L'API est non officielle et peut changer ou être bloquée par le réseau. Si le script échoue
répétitivement avec le code 69, ou si l'utilisateur a besoin de données qu'il ne fournit pas (noms des personnages, avis,
commentaires, équipe technique complète), récupérez la page publique (url de film, ou https://www.filmweb.pl/film/<slug>-<id>)
avec un outil de récupération web ou curl et lisez les données depuis celle-ci. Indiquez à l'utilisateur que les données proviennent de la page web.
Règles
- N'appelez pas
filmpour chaque résultat de recherche "au cas où" ; ne vérifiez que les candidats dont vous avez besoin. - N'inventez pas de données que le script n'a pas renvoyées.