Diffliste
-
Hallo,
ich hab vor, in meinem Plugin auch die Difflisten zu nutzen (spart ja auch Traffic).
Dazu habe ich habe mal einige Fragen an die Entwickler:- Auf welche Liste bezieht sich die Diffliste? Auf die erste Liste des Tages?
- Sind in der Liste nur neue Einträge oder gibt es auch Änderungen zu schon vorhandenen Einträgen in der aktuellen Liste?
- Wenn auch Änderungen enthalten sind, wie kann ich die entsprechenden Einträge in der aktuellen Liste finden?
Ich glaube, ich hab das schon mal irgendwo gelesen, aber keine Ahnung mehr, wo das war.
MfG Micha
-
Es gibt die Filmliste-akt.xz und von der werden mehrere diff’s am Tag abgeleitet. Die akt wird täglich neu erstellt.
-
Danke für die Info, dann werde ich mal mein Glück versuchen heute Abend. Falls ich noch Fragen habe, melde ich mich noch mal.
-
Ich hoffe zumindest dass ich das so richtig verstanden habe ^^
-
Die akt wird aber normalerweise mehrmals am Tag aktualisiert. Welche ist dann die Grundlage für die diff-Listen?
-
@mvsfsvm Ich denke mal, die erste Liste Morgens (so ca. 05:20 Uhr).
-
@micha-bbg
Es gibt eine “Org” Liste, (in der Früh gebaut).Die Filmliste-akt und Filmliste-diff werden bei jedem Suchen neu gebaut und sind immer aktuell. Dabei wird die dif als Differenz zwischen der Org und der jetzt neu erstellen akt gebaut.
In akt und diff sind also immer die zuletzt gesuchten Filme enthalten.Sollte sich ein Film im Laufe des Tages ändern, ist das auch in akt und diff enthalten.
-
@xaver
So weit ist klar, aber jetzt hab ich doch noch zwei Fragen:
Die Kennzeichnung neu == true in der diff bedeutet “neuer Eintrag” und neu == false bedeutet “geänderter Eintrag”?
Und nach welchen Kriterien muss ich in der Org Liste suchen um den Eintrag zu finden, der geändert wurde? Reicht Sender/Thema/Titel und vielleicht noch Datum/Zeit aus?
So langsam arbeite ich mich im Programm zu der Stelle vor, wo es relevant wird… -
@xaver sagte in Diffliste:
@micha-bbg
Es gibt eine “Org” Liste, (in der Früh gebaut).Die Filmliste-akt und Filmliste-diff werden bei jedem Suchen neu gebaut und sind immer aktuell. Dabei wird die dif als Differenz zwischen der Org und der jetzt neu erstellen akt gebaut.
In akt und diff sind also immer die zuletzt gesuchten Filme enthalten.Sollte sich ein Film im Laufe des Tages ändern, ist das auch in akt und diff enthalten.
ach von der org wird es abgeleitet ok. also macht mein slave immer eine ableitung vom master okok danke nochmal fürs auffrischen.
-
das Feld “neu” im Film wird vom Gui beim user gesetzt, Filme die er in seiner Liste aktuell (also JETZT vor dem Suchen) noch nicht hatte bekommen “neu”. (Wenn ich meine Filmliste vor dem Aktualsieren löschen, sind also alle Filme nach den Neuladen der Filmliste “neu”).
Wenn du alle Filme haben willst, musst du bis ~10:00 Uhr die “akt” laden, ab dann kannst du eine “diff” laden. Beim einfügen der diff musst aber schauen, was schon da ist, sonst hast du doppelte Einträge.
Der Index eines Films wird hier gebaut:
https://github.com/mediathekview/MLib/blob/master/src/main/java/de/mediathekview/mlib/daten/DatenFilm.javapublic String getIndex() {
// liefert einen eindeutigen Index für die Filmliste
// URL beim KiKa und ORF ändern sich laufend!
return (arr[FILM_SENDER] + arr[FILM_THEMA]).toLowerCase() + getUrl();
}ist: Sender, Thema und (ein Teil der) URL
-
@xaver sagte in Diffliste:
das Feld “neu” im Film wird vom Gui beim user gesetzt, Filme die er in seiner Liste aktuell (also JETZT vor dem Suchen) noch nicht hatte bekommen “neu”. (Wenn ich meine Filmliste vor dem Aktualsieren löschen, sind also alle Filme nach den Neuladen der Filmliste “neu”).
Gut, also brauche ich “neu” nicht zu berücksichtigen.
Wenn du alle Filme haben willst, musst du bis ~10:00 Uhr die “akt” laden, ab dann kannst du eine “diff” laden.
Ich hab zum Test die Liste von 05:20 Uhr genommen und dann mit den darauffolgenden Diffs experimentiert.
Beim einfügen der diff musst aber schauen, was schon da ist, sonst hast du doppelte Einträge.
Der Index eines Films wird hier gebaut:
https://github.com/mediathekview/MLib/blob/master/src/main/java/de/mediathekview/mlib/daten/DatenFilm.javapublic String getIndex() {
// liefert einen eindeutigen Index für die Filmliste
// URL beim KiKa und ORF ändern sich laufend!
return (arr[FILM_SENDER] + arr[FILM_THEMA]).toLowerCase() + getUrl();
}ist: Sender, Thema und (ein Teil der) URL
Zum testen hab ich jetzt zum Vergleich “Sender, Thema, Titel und Datum/Zeit” genommen. Was übereinstimmt, wird durch den Eintrag aus der Diff ersetzt, alles andere wird als neuer Eintrag eingefügt.
Ich sehe, da liegt noch Einiges an Arbeit vor mir.