Auch TV-Daten von alten Servern laden

Ideen, wie TV-Browser verbessert werden kann
Antworten
Jo
Site Admin
Beiträge: 11836
Registriert: 07 Apr 2006, 23:39

Auch TV-Daten von alten Servern laden

Beitrag von Jo »

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.
ds10
Site Admin
Beiträge: 19146
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Beitrag von ds10 »

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
Jo
Site Admin
Beiträge: 11836
Registriert: 07 Apr 2006, 23:39

Beitrag von Jo »

Vielleicht hat auch niemand den entsprechenden Code gefunden? :wink: Ich zumindest nicht. Aber wahrscheinlich hätte ich da eh nichts machen können.
Morethantv
Gold Member
Beiträge: 482
Registriert: 01 Mai 2006, 02:58
Wohnort: Jena

Beitrag von Morethantv »

Würde ich auch sehr begrüßen, wenn es einmal möglich sein sollte :)
Jo
Site Admin
Beiträge: 11836
Registriert: 07 Apr 2006, 23:39

Beitrag von Jo »

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:

Code: Alles auswählen

ChannelGroup.error.2           = No mirror found for group {1}. Maybe you should update your Channellist.\n\nMirror list: \n{0}
{1} und {0} müssten andersrum
ds10
Site Admin
Beiträge: 19146
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Beitrag von ds10 »

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. ;-)
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

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.
Jo
Site Admin
Beiträge: 11836
Registriert: 07 Apr 2006, 23:39

Beitrag von Jo »

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.
Ich verstehe zwar nicht viel vom Code, aber ich habe das Log :wink: Beide Mirrors existieren natürlich nicht.
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
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.
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.
ds10
Site Admin
Beiträge: 19146
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Beitrag von ds10 »

Das sollte aber nicht sein, wenn kein Mirror aktuell ist, sollte überhaupt keiner benutzt werden. Das ist also ein Bug.
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.
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.

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
Jo
Site Admin
Beiträge: 11836
Registriert: 07 Apr 2006, 23:39

Beitrag von Jo »

ds10 hat geschrieben:Das wäre aber doch sehr ungenau.
Es tritt ja gar nicht so oft auf.
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.
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.
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).
Jo
Site Admin
Beiträge: 11836
Registriert: 07 Apr 2006, 23:39

Beitrag von Jo »

Jo hat geschrieben:
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.
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.
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).
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.
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.
Antworten