Lexech / project-valerie

Automatically exported from code.google.com/p/project-valerie
0 stars 0 forks source link

TheTvDB: Serie mit nur 1 Sprache != Englisch wird nicht erkannt. #490

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
Hallo,

ich habe Probleme beim Syncen der Serie Bullyparade.

Ich hab mit erik in issue 475(was mittlerweile erledigt ist) schon rausgefunden 
dass tvdb über folgenden link keine Angaben auswirft:

http://thetvdb.com/api/GetSeriesByRemoteID.php?imdbid=tt0221733

Das liegt, laut admin von tvdb anscheinend daran, dass die Serie nie in 
englisch ausgetrahlt wurde und somit keine englischen titel eingetragen sind.
Ruft man die API über folgenden link auf, kommen die entsprechenden argumente 
die Valerie offenbar vermisst:

http://thetvdb.com/api/GetSeriesByRemoteID.php?imdbid=tt0221733&language=de

Also... wo liegt der fehler? ;)

Sepp

Original issue reported on code.google.com by Friedl.H...@googlemail.com on 6 Mar 2012 at 5:24

Attachments:

GoogleCodeExporter commented 8 years ago
Hi, 

hmmmm... Bin mir nicht sicher, ob wir diesen "language"-Parameter so überhaupt 
auf dem Radar hatten?! Ich kann mich momentan zumindest nicht dran erinnern, 
dass ich im Code was gesehen hätte, dass wir diesen "language"-Parameter, z.B. 
abhängig von der Sync-Sprache, an die Query dranbauen würden, aber ich schau 
da nochmal genauer rein...

Ich accepte und assign mir das Issue erstmal... 

Danke auf jeden Fall schonmal für's Nachhaken & Feedback! :-)

Gruß, Erik

Original comment by erik.for...@gmail.com on 6 Mar 2012 at 5:54

GoogleCodeExporter commented 8 years ago
Ich war mal so frei, und hab auf TVDB den englischen Eintrag erstellt, und 
voila, die Abfrage endet nicht mehr im Niemandsland. Scheint also wirklich ein 
"Fehler" in der Abfrage zu sein, da diese nur engl. annimmt.

Gruss

Original comment by dream.la...@gmail.com on 7 Mar 2012 at 6:22

GoogleCodeExporter commented 8 years ago
Hi zusammen,

Danke für den zusätzlichen Test... Freut mich, dass es scheinbar mehrere 
Varianten gibt, das Problem zu beheben:

1. Einen englischen TVDB-Eintrag erstellen 

2. PVMC nimmt noch den "language"-Parameter mit in die Abfrage (meine 
bevorzugte Lösung - aber das will ich mir erst nochmal genauer anschauen)

3. eine valerie.info mit der korrekten TheTvDb ID im Verzeichnis erstellen 
(diese Möglichkeit fehlt leider noch im Wiki bei den Suchhilfen - werde ich 
heute aber gleich nachtragen!). Die Zeile in der valerie.info müsste dann wie 
folgt aussehen:

<tvdb>tvdb85543

Danke nochmal für die tolle Recherche & Gruß,

Erik

Original comment by erik.for...@gmail.com on 7 Mar 2012 at 6:53

GoogleCodeExporter commented 8 years ago
Ja,
Den englischen Titel hab ich mit Absicht nicht eingetragen, weil ich es nIcht 
richtig finde Infos in eine Datenbank einzutragen die es genau genommen nicht 
gibt, da die Serie einfach nicht in englisch ausgestrahlt wurde.
Das hinzufügen von dem Language String erscheint mIr hier einfach als die 
einzig richtige Alternative.
Dass das einfügen der tvdb id in die Valerie.info möglich ist habe Ich nicht 
gewusst, das wäre natürlich auch eine Möglichkeit gewesen.

Original comment by Friedl.H...@googlemail.com on 7 Mar 2012 at 7:17

GoogleCodeExporter commented 8 years ago
Hi Friedl,

ich denke, das ganze lässt sich recht schnell im Code ändern - allerdings 
muss man auch mögliche Konsequenzen bedenken, nicht dass wir jetzt eine 
"Verbesserung" einbauen und dann andere User plötzlich in Probleme rennen. :-)

Ich habe jetzt auch nochmal ein wenig rumgespielt und was mich z.B. wundert:

Wenn ich den language Parameter mit einer "gültigen" Sprache angebe und für 
diese Sprache ein Eintrag vorhanden ist, wird der zurückgeliefert, z.B.
http://thetvdb.com/api/GetSeriesByRemoteID.php?imdbid=tt0497289&language=de

Wenn die Sprache für diese Serie nicht vorhanden ist, kommt nix zurück - auch 
OK:
http://thetvdb.com/api/GetSeriesByRemoteID.php?imdbid=tt0497289&language=it

Wenn ich hingegen ein "ungültiges" Kürzel für die Sprache übergebe, kommt 
scheinbar sowas wie eine default language zurück:
http://thetvdb.com/api/GetSeriesByRemoteID.php?imdbid=tt0497289&language=xyz

Wenn ich wiederum den Parameter zwar angebe, aber nicht spezifiziere - oder den 
Parameter gar nicht angebe, bekommen wir nichts zurück:
http://thetvdb.com/api/GetSeriesByRemoteID.php?imdbid=tt0497289&language=
http://thetvdb.com/api/GetSeriesByRemoteID.php?imdbid=tt0497289

Sieht für mich erstmal inkonsistent aus: wenn ich den Parameter mit einem 
ungültigen Wert füttere, gibt es scheinbar einen fallback - wenn ich ihn gar 
nicht angebe oder nicht fülle - Englisch aber nicht vorhanden ist, gibt es 
hingegen keinen Fallback...

Nicht wirklich Klarheit bringt die Beschreibung dieser API-Funktion:
http://www.thetvdb.com/wiki/index.php/API:GetSeriesByRemoteID

=> The language id, not needed as imdb and zap2it id's are guaranteed to be 
qunique (May be deprecated)

Ich werde auch nochmal versuchen, mit den Jungs Kontakt aufzunehmen - 
vielleicht bekommen wir dann etwas Licht in's Dunkel... :-)

Gruß, Erik

Original comment by erik.for...@gmail.com on 7 Mar 2012 at 8:30

GoogleCodeExporter commented 8 years ago
http://forums.thetvdb.com/viewtopic.php?f=4&t=9183
Das ist der thread den ich aufgemacht habe.

Ist die Anfrage, die bei mir gescheitert ist, nur für die tvdb-id zuständig? 
Dann sollte die Sprache ja keine Rolle spielen..
Die Sprache muss ja irgendwo ausgefiltert werden (nur offensichtlich nicht bei 
der ersten Anfrage)
die Anfrage wie im Log wird aber immer eine englische Ausgabe verursachen, weil 
englisch Default für tvdb ist...
Wenn die Anfrage also nur für die id ist, könnte man ja auch einfach sagen: 
falls du über die IMDB id alleine keine Infos bekommst, dann probier's mit 
&language="syncsprache" so sollten keine Probleme  für alte User auftauchen 
oder?
So ähnlich müsste es ja auch für Episodentitel gelöst sein oder? Es werden 
ja zb auch englische Episodentitel Angezeigt falls keine deutschen vorhanden 
sind?

Harry

Original comment by Friedl.H...@googlemail.com on 7 Mar 2012 at 10:16

GoogleCodeExporter commented 8 years ago
Hi Harry,

> Ist die Anfrage, die bei mir gescheitert ist, nur für 
> die tvdb-id zuständig? Dann sollte die Sprache ja keine Rolle spielen..

Yeap - und das dürfte der Grund sein, warum wir an dieser Stelle bisher auch 
nichts mit der Sprache gemacht haben...

Die Sprache kommt erst später im Sync-Prozess zum Einsatz, wenn wir die 
Beschreibungen holen. Da wird der language code aber direkt in die 
Verzeichnisstruktur eingebaut, z.B.

http://www.thetvdb.com/data/series/105521/en.xml

oder 

http://www.thetvdb.com/data/series/105521/de.xml

Der Kollege im Thread schreibt ja selbst, dass das ein Problem in deren API ist 
und schlägt leider nur Workarounds vor, d.h. da wird wohl so schnell nix auf 
deren Seite passieren. Ich werde also mal schauen, ob wir das auf unserer Seite 
halbwegs sauber gelöst bekommen.

Allerdings: ich habe z.Zt. noch eine andere größere PVMC-Baustelle - das kann 
durchaus noch ein paar Tage dauern, bis ich zu dieser Sache hier komme. Für 
die Zwischenzeit kannst Du ja mal testen, ob Dich die Lösung mit der TvDB ID 
in der valerie.info weiter bringt.

Danke auch für den Link & Gruß,

Erik

Original comment by erik.for...@gmail.com on 7 Mar 2012 at 10:38

GoogleCodeExporter commented 8 years ago
Alles klar :) Danke

Original comment by Friedl.H...@googlemail.com on 7 Mar 2012 at 8:49

GoogleCodeExporter commented 8 years ago
Internal note

Kurzes Update zu dieser Sache:
Der "&language"-Parameter ließe sich relativ einfach implementieren - Problem 
ist allerdings, dass uns dann die WebGrabber.url_fix() Funktion einen Strich 
durch die Rechnung macht, denn die verwandelt unsere ursprüngliche (korrekte) 
URL

http://thetvdb.com/api/GetSeriesByRemoteID.php?imdbid=tt0285403&language=de

in sowas hier:

http://thetvdb.com/api/GetSeriesByRemoteID.php?imdbid=tt0285403%26language=de

und diese ("gefixte") URL wird von TheTvDB dann nicht mehr korrekt verarbeitet 
und wir bekommen ein leeres result-set zurück.

Verzichte ich testweise auf den Aufruf dieser url_fix() Funktion, läuft alles 
wie gewünscht, aber das ist IMHO keine Lösung, da das in anderen Fällen dann 
zu Problemen führen könnte.

Ein möglicher "really dirty hack" wäre, nur für TheTvDB-URLs auf diesen 
url_fix()-Aufruf zu verzichten.

Original comment by erik.for...@gmail.com on 21 Mar 2012 at 9:26

GoogleCodeExporter commented 8 years ago

Original comment by erik.for...@gmail.com on 21 Mar 2012 at 9:28