Autor Thema: Modul für The Movie Database: 98_themoviedb.pm  (Gelesen 314 mal)

Offline All-Ex

  • Developer
  • Full Member
  • ****
  • Beiträge: 205
Modul für The Movie Database: 98_themoviedb.pm
« am: 31 Januar 2022, 20:34:47 »
Hallo zusammen,

um mein Tablet mit Informationen zu Kinofilmen bestücken zu können, habe ich ein Modul erstellt, das Daten zu Filmen aus der Internet-Datenbank "The Movie Database" (TMDB) ausliest und in Readings bereitstellt.

----------------------

Define

define <name> themoviedb <API-Schlüssel (v3 auth)>

Dieses Modul ruft Daten zu Filmen aus "The Movie DB" (TMDB) ab und stellt sie als Reading zur Verfügung.

Beispiele:

define tmdb themoviedb xxxxxxxxxxxxxxxxxxxxxxxxx

Für die Nutzung wird ein API-Schlüssel von TMDB benötigt. Dazu auf https://www.themoviedb.org/ einen Account erstellen und bei Einstellungen / API den API-Schlüssel (v3 auth) kopieren. Dieser Schlüssel muss bei der Definition des Moduls angegeben werden.

Set

set <name> movie_search <Zeichenkette>

Sucht den angegebenen Film in der TMDB und legt für jedes Suchergebnis Readings mit dem Präfix search und einer laufenden Nummer an. Dahinter folgen _id, _title, _release_date und _vote_average des Suchergebnisses. Ggf. aus vorherigen Suchen weitere vorhandene search-Readings werden gelöscht.
Wenn das Ende der Zeichenkette eine vierstelle Zahl in Klammern enthält, wird diese als Jahr interpretiert und es werden nur Filme aus diesem Jahr gesucht. Beispiel: "Der König der Löwen (2019)"
Das Reading search_total_results enthält die Anzahl der Suchergebnisse. Die maximale Anzahl der Suchergebnisse wird über das Attribut maxSearchResults festgelegt (Standardwert: 10).

Get

get <name> movie_id <movie_id>

Aktualisiert Readings für den Film mit der TMDB-ID <movie_id>. Die movie_id befindet sich in der TMDB-URL hinter /movie/ (z.B. 577922 bei dieser URL: https://www.themoviedb.org/movie/577922-tenet?language=de).

get <name> movie_search <Zeichenkette>

Sucht den angegebenen Film analog zu set movie_search. Für den ersten Treffer werden Readings analog zu get movie_id angelegt.
Beispiel: get <name> movie_search Der König der Löwen (2019)

Readings

Nach einem get-Befehl werden entsprechende Readings aktualisiert und Events ausgelöst.
Das Reading tmdbApiResponse zeigt ggf. Fehlermeldungen an. Die Readings, die mit tmdbApiCall beginnen, enthalten die URLs, die das Modul aufruft. Falls es Probleme geben sollte, diese URLs direkt in den Browser eingeben und prüfen, ob ein JSON mit den gewünschten Ergebnissen angezeigt wird.

Attribute

country - Definiert das Land für die Readings certification_country (Altersfreigabe) und release_date_country. Angabe als ISO 3166-1 (z.B. DE, US), Standardeinstellung: DE
language - Definiert die Sprache, in der die Readings befüllt werden. Angabe als ISO 639-1 Code (z.B. de-DE, en-US), Standardeinstellung: de-DE
maxCastResults - Definiert die maximale Anzahl von Hauptdarstellern (Reading cast), die gefunden werden, Standardeinstellung: 5
maxSearchResults - Definiert die maximale Anzahl von Suchergebnissen für den Befehle set/get movie_search, Standardeinstellung: 10

----------------------

Die Visualisierung, wie sie auf dem Tablet aussieht habe ich auch angehängt (mit FTUI erstellt). Die Namen der Filme stammen von einer Todist-Liste, auf der wir die Filme sammeln, die wir gerne schauen möchten. So kann jeder einfach seine Wunschfilme eintragen und auf dem Tablet sieht man die Daten dazu.

Ein Klick auf das i in der Liste zeigt die Daten zum Film an. Mit Klick auf den Haken wird der Film von der Liste entfernt, wenn er geschaut wurde.

Das ganze wäre auch einfacher gegangen, wenn sich tmdb.org als iframe darstellen ließe. Aber so klappt's ja auch ;-)