Auch TV-Daten von alten Servern laden
Auch TV-Daten von alten Servern laden
Es gibt ja die Regel, dass die Daten auf einem Server höchstens 5 (oder 7?) Tage alt sein dürfen, sonst sucht sich TV-Browser bei einem Update einen anderen Server. Wenn nun aber alle Server "veraltet" sind, aber auf den Servern noch TV-Daten für die nächsten Tage drauf sind, könnte TVB die doch trotzdem runterladen. Bei manchen Sendern gibt es so wenig Programmänderungen, da macht es nichts, wenn der Stand der Daten 2 Wochen alt ist. Und selbst bei den anderen Sendern wäre mir als Anwender lieber, wenn ich "alte" Daten (also so alt wie bei einer geruckten TV-Zeitschrift) bekomme als gar nichts zu haben.
Biete selber TV-Daten an / Provide TV data yourself • Film-/Serienbeschreibungen → https://www.omdb.org
Soweit ich weiß steht das schon ewig auf unserer ToDo-Liste, aber es hat bis jetzt niemand geschafft das einzubauen.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Unterstütze die Weiterentwicklung von TV-Browser
Vielleicht hat auch niemand den entsprechenden Code gefunden? Ich zumindest nicht. Aber wahrscheinlich hätte ich da eh nichts machen können.
Biete selber TV-Daten an / Provide TV data yourself • Film-/Serienbeschreibungen → https://www.omdb.org
-
- Gold Member
- Beiträge: 482
- Registriert: 01 Mai 2006, 02:58
- Wohnort: Jena
Ich habe den Code doch noch gefunden (ChannelGroup) und angeguckt, blicke nicht durch, aber es scheint so zu sein, dass zumindest wenn alle Mirrors down sind trotzdem einer (der letzte) genommen wird.
Ich hatte gedacht, es wäre so, dass bei z.B 10 Mirrors mit Zufallsfunktion und nach Gewichtung einer ausgewählt wird. Ist der down/veraltet, wird aus den restlichen 9 einer gewählt etc.
Aber z.B. bei 2 Mirrors, die beide down sind (getestet), ist es so, dass erst der erste Mirror versucht wird, dann der andere, dann wieder der erste usw., solange bis MAX_UP_TO_DATE_CHECKS (=10) durch ist. Dann wird einfach der zuletzt probierte Mirror genommen (der ja down ist) und dann kommt es natürlich zu: SCHWERWIEGEND: Fehler beim Herunterladen ... at tvbrowserdataservice.ChannelGroup.updateMetaFile
Nach den Meldungen im Forum scheint das für veraltete Mirrors aber nicht zu funktionieren.
Möglicherweise hat es aber mit dem Alter nichts zu tun, sondern es funktioniert nicht, wenn auf demselben Server mehrere Sendergruppen liegen, sodass ArrayList BLOCKEDSERVERS bei der 1. Sendergruppe mit den alten/down Mirrors gefüllt wird und bei der 2. Gruppe dann kein Mirror mehr gefunden wird.
Aber wie gesagt: Obwohl ich mir das ein paar Stunden durchgeguckt habe, blicke ich nicht durch. Es ist für meine Kenntnisse zu komplex.
P.S.: Nebenbei habe ich noch einen Mini-Bug gefunden:
In tvbrowserdataservice.properties ist ein Dreher bei:
{1} und {0} müssten andersrum
Ich hatte gedacht, es wäre so, dass bei z.B 10 Mirrors mit Zufallsfunktion und nach Gewichtung einer ausgewählt wird. Ist der down/veraltet, wird aus den restlichen 9 einer gewählt etc.
Aber z.B. bei 2 Mirrors, die beide down sind (getestet), ist es so, dass erst der erste Mirror versucht wird, dann der andere, dann wieder der erste usw., solange bis MAX_UP_TO_DATE_CHECKS (=10) durch ist. Dann wird einfach der zuletzt probierte Mirror genommen (der ja down ist) und dann kommt es natürlich zu: SCHWERWIEGEND: Fehler beim Herunterladen ... at tvbrowserdataservice.ChannelGroup.updateMetaFile
Nach den Meldungen im Forum scheint das für veraltete Mirrors aber nicht zu funktionieren.
Möglicherweise hat es aber mit dem Alter nichts zu tun, sondern es funktioniert nicht, wenn auf demselben Server mehrere Sendergruppen liegen, sodass ArrayList BLOCKEDSERVERS bei der 1. Sendergruppe mit den alten/down Mirrors gefüllt wird und bei der 2. Gruppe dann kein Mirror mehr gefunden wird.
Aber wie gesagt: Obwohl ich mir das ein paar Stunden durchgeguckt habe, blicke ich nicht durch. Es ist für meine Kenntnisse zu komplex.
P.S.: Nebenbei habe ich noch einen Mini-Bug gefunden:
In tvbrowserdataservice.properties ist ein Dreher bei:
Code: Alles auswählen
ChannelGroup.error.2 = No mirror found for group {1}. Maybe you should update your Channellist.\n\nMirror list: \n{0}
Biete selber TV-Daten an / Provide TV data yourself • Film-/Serienbeschreibungen → https://www.omdb.org
Es wird für jeden Server isUpToDate (oder so ähnlich, hab' gerade keine Lust nachzusehen ) aufgerufen und wenn das für alle Server false zurück gibt, dann wird überhaupt kein Server probiert. Das führt dann aber zur gleichen Fehlermeldung als wenn der Server gar nicht erreichbar wäre.
Ich weiß jetzt allerdings auch nicht, ob es irgendwo auf dem Server eine Info gibt, in der steht, bis wann die Daten reichen. Falls es eine solche Info gäbe, könnte man das Holen der Daten von veralteten Servern recht schnell einbauen. Falls es diese Info nicht gibt, müsste vorher ein neues TvDataStarterKit herausgegeben werden.
Das Ganze ist also nicht so einfach, was auch der Grund ist, warum das bis jetzt niemand von uns angegangen ist.
Ich weiß jetzt allerdings auch nicht, ob es irgendwo auf dem Server eine Info gibt, in der steht, bis wann die Daten reichen. Falls es eine solche Info gäbe, könnte man das Holen der Daten von veralteten Servern recht schnell einbauen. Falls es diese Info nicht gibt, müsste vorher ein neues TvDataStarterKit herausgegeben werden.
Das Ganze ist also nicht so einfach, was auch der Grund ist, warum das bis jetzt niemand von uns angegangen ist.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Unterstütze die Weiterentwicklung von TV-Browser
Ich verstehe zwar nicht viel vom Code, aber ich habe das Log Beide Mirrors existieren natürlich nicht.ds10 hat geschrieben:Es wird für jeden Server isUpToDate (oder so ähnlich, hab' gerade keine Lust nachzusehen ) aufgerufen und wenn das für alle Server false zurück gibt, dann wird überhaupt kein Server probiert. Das führt dann aber zur gleichen Fehlermeldung als wenn der Server gar nicht erreichbar wäre.
22:37:29 INFO: Loading MirrorDate from http://einserver.tk/tvb-verzeichnis/mir ... lastupdate
22:37:29 INFO: The file on the server has the wrong format!
22:37:29 INFO: Mirror http://einserver.tk/tvb-verzeichnis/ is out of date or down. Choosing http://blabla.de/hallo/ instead.
22:37:29 INFO: Loading MirrorDate from http://blabla.de/hallo/mirror-test_lastupdate
22:37:29 INFO: Server http://blabla.de/hallo/mirror-test_lastupdate is down!
22:37:29 INFO: Mirror http://blabla.de/hallo/ is out of date or down. Choosing http://einserver.tk/tvb-verzeichnis/ instead.
22:37:29 INFO: Loading MirrorDate from http://einserver.tk/tvb-verzeichnis/mir ... lastupdate
22:37:29 INFO: The file on the server has the wrong format!
22:37:29 INFO: Mirror http://einserver.tk/tvb-verzeichnis/ is out of date or down. Choosing http://blabla.de/hallo/ instead.
22:37:29 INFO: Loading MirrorDate from http://blabla.de/hallo/mirror-test_lastupdate
22:37:30 INFO: Server http://blabla.de/hallo/mirror-test_lastupdate is down!
22:37:30 INFO: Mirror http://blabla.de/hallo/ is out of date or down. Choosing http://einserver.tk/tvb-verzeichnis/ instead.
22:37:30 INFO: Loading MirrorDate from http://einserver.tk/tvb-verzeichnis/mir ... lastupdate
22:37:30 INFO: The file on the server has the wrong format!
22:37:30 INFO: Mirror http://einserver.tk/tvb-verzeichnis/ is out of date or down. Choosing http://blabla.de/hallo/ instead.
22:37:30 INFO: Loading MirrorDate from http://blabla.de/hallo/mirror-test_lastupdate
22:37:31 INFO: Server http://blabla.de/hallo/mirror-test_lastupdate is down!
22:37:31 INFO: Mirror http://blabla.de/hallo/ is out of date or down. Choosing http://einserver.tk/tvb-verzeichnis/ instead.
22:37:31 INFO: Loading MirrorDate from http://einserver.tk/tvb-verzeichnis/mir ... lastupdate
22:37:31 INFO: The file on the server has the wrong format!
22:37:31 INFO: Mirror http://einserver.tk/tvb-verzeichnis/ is out of date or down. Choosing http://blabla.de/hallo/ instead.
22:37:31 INFO: Loading MirrorDate from http://blabla.de/hallo/mirror-test_lastupdate
22:37:31 INFO: Server http://blabla.de/hallo/mirror-test_lastupdate is down!
22:37:31 INFO: Mirror http://blabla.de/hallo/ is out of date or down. Choosing http://einserver.tk/tvb-verzeichnis/ instead.
22:37:31 INFO: Loading MirrorDate from http://einserver.tk/tvb-verzeichnis/mir ... lastupdate
22:37:31 INFO: The file on the server has the wrong format!
22:37:31 INFO: Mirror http://einserver.tk/tvb-verzeichnis/ is out of date or down. Choosing http://blabla.de/hallo/ instead.
22:37:31 INFO: Loading MirrorDate from http://blabla.de/hallo/mirror-test_lastupdate
22:37:32 INFO: Server http://blabla.de/hallo/mirror-test_lastupdate is down!
22:37:32 INFO: Mirror http://blabla.de/hallo/ is out of date or down. Choosing http://einserver.tk/tvb-verzeichnis/ instead.
22:37:32 INFO: Using mirror http://einserver.tk/tvb-verzeichnis/
22:37:32 INFO: Downloading 'http://einserver.tk/tvb-verzeichnis/mir ... nellist.gz' to 'C:\privat\TV-Browser\tvdata\tvbrowserdataservice.TvBrowserDataService\mirror-test_channellist.gz.new'
22:37:32 SCHWERWIEGEND: Server hat keine Kanalliste: http://einserver.tk/tvb-verzeichnis/
util.exc.TvBrowserException: Server hat keine Kanalliste: http://einserver.tk/tvb-verzeichnis/
at tvbrowserdataservice.ChannelGroup.updateChannelList(ChannelGroup.java:617)
at tvbrowserdataservice.ChannelGroup.checkForAvailableChannels(ChannelGroup.java:644)
at tvbrowserdataservice.TvBrowserDataServiceSettingsPanel.getChannelGroupByURL(TvBrowserDataServiceSettingsPanel.java:296)
at tvbrowserdataservice.TvBrowserDataServiceSettingsPanel.access$500(TvBrowserDataServiceSettingsPanel.java:79)
at tvbrowserdataservice.TvBrowserDataServiceSettingsPanel$3.run(TvBrowserDataServiceSettingsPanel.java:314)
at util.ui.progress.ProgressWindow$1.run(ProgressWindow.java:79)
Caused by: java.io.IOException: Not in GZIP format
at java.util.zip.GZIPInputStream.readHeader(Unknown Source)
at java.util.zip.GZIPInputStream.<init>(Unknown Source)
at java.util.zip.GZIPInputStream.<init>(Unknown Source)
at tvbrowserdataservice.file.ChannelList.readFromStream(ChannelList.java:115)
at tvbrowserdataservice.file.ChannelList.readFromFile(ChannelList.java:192)
at tvbrowserdataservice.ChannelGroup.updateChannelList(ChannelGroup.java:608)
... 5 more
Das macht die Sache komplizierter. Aber könnte man nicht einfach den aktuellsten Mirror versuchen, ohne zu wissen ob es dort noch brauchbare Dateien gibt? Nicht für immer, sondern nur für einige weitere Tage. Die Mirrors können ja ohnehin nur bis zu x Tage im Voraus anbieten.bodo hat geschrieben:Also die Info, bis wann es Daten gibt, liegt zwar auf dem Server, aber nur in einer binären Datei, nicht in einer Text-Datei, die man schnell abfragen könnte.
Biete selber TV-Daten an / Provide TV data yourself • Film-/Serienbeschreibungen → https://www.omdb.org
Das sollte aber nicht sein, wenn kein Mirror aktuell ist, sollte überhaupt keiner benutzt werden. Das ist also ein Bug.
Dann muss nur noch jeder Datenanbieter das neue TvDataStarterKit benutzen und es funktioniert auch bei alten TV-Browser Versionen.
Das wäre aber doch sehr ungenau. Das Gleiche oder eigentlich genauer könnte man erreichen indem man den lastupdate-Wert auf den Tag der letzten Daten setzt. Das wäre auch die einfachste Variante, wenn das TvDataStarterKit in Zukunft einfach den lastupdate-Wert auf den Tag der letzten Daten setzt.Jo hat geschrieben:Das macht die Sache komplizierter. Aber könnte man nicht einfach den aktuellsten Mirror versuchen, ohne zu wissen ob es dort noch brauchbare Dateien gibt? Nicht für immer, sondern nur für einige weitere Tage. Die Mirrors können ja ohnehin nur bis zu x Tage im Voraus anbieten.
Dann muss nur noch jeder Datenanbieter das neue TvDataStarterKit benutzen und es funktioniert auch bei alten TV-Browser Versionen.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Unterstütze die Weiterentwicklung von TV-Browser
Es tritt ja gar nicht so oft auf.ds10 hat geschrieben:Das wäre aber doch sehr ungenau.
Dann würde aber von einem Mirror, der nicht down ist aber auch nicht mehr aktualisiert werden kann, möglicherweise noch über Wochen Daten geladen, obwohl auf anderen Mirrors aktuellere Daten liegen.ds10 hat geschrieben:Das wäre auch die einfachste Variante, wenn das TvDataStarterKit in Zukunft einfach den lastupdate-Wert auf den Tag der letzten Daten setzt.
Daher ergänzende Idee: Der Datenanbieter kann selbst angeben, nach wievielen Tagen die Daten als alt gelten sollen (und Maximum ist der Tag der letzten Daten).
Biete selber TV-Daten an / Provide TV data yourself • Film-/Serienbeschreibungen → https://www.omdb.org
Damit wären wir ja wieder bei dem, was der Datenanbieter jetzt schon (manuell) machen kann: Datum in die Zukunft setzen. Das halte ich aber eigentlich doch nicht für eine gute Lösung, weil die Wahrscheinlichkeit steigt, dass ein Nutzer alte Daten bekommt, trotz Aktualisierung und obwohl aktuelle Daten vorhanden wären, nur weil ein Mirror nicht auf dem neuesten Stand ist.Jo hat geschrieben:Dann würde aber von einem Mirror, der nicht down ist aber auch nicht mehr aktualisiert werden kann, möglicherweise noch über Wochen Daten geladen, obwohl auf anderen Mirrors aktuellere Daten liegen.ds10 hat geschrieben:Das wäre auch die einfachste Variante, wenn das TvDataStarterKit in Zukunft einfach den lastupdate-Wert auf den Tag der letzten Daten setzt.
Daher ergänzende Idee: Der Datenanbieter kann selbst angeben, nach wievielen Tagen die Daten als alt gelten sollen (und Maximum ist der Tag der letzten Daten).
Weil die Rubrik ja Verbesserungsvorschläge heißt:
- a) Möglichkeit für den Datenanbieter selbst anzugeben, ab wann die Daten als veraltet gelten sollen (wie oft er gedenkt upzudaten)
- b) Sind alle Daten nach der Angabe veraltet, werden trotzdem noch brauchbare Daten vom aktuellsten Server geladen.
Biete selber TV-Daten an / Provide TV data yourself • Film-/Serienbeschreibungen → https://www.omdb.org