Wie Datumswechsel in den Rohdaten behandeln?

Hier wird dir geholfen, wenn du TV-Daten anbieten möchtest.
Jo
Site Admin
Beiträge: 11805
Registriert: 07 Apr 2006, 23:39

Wie Datumswechsel in den Rohdaten behandeln?

Beitrag von Jo »

Wie kann man am einfachsten mit einem Datumswechsel umgehen, wenn man eine modifizierte SimplePDS verwendet?
Die Startzeit wird mit
frame.addProgramField(ProgramField.create(ProgramFieldType.START_TIME_TYPE, h*60+m));
angegeben. Bei einer Sendung, die nach 0:00 Uhr anfängt (also eigentlich nächster Tag) führt das dazu, dass sie im TVB dem Morgen des aktuellen Tags zugerechnet wird.
Bisher habe ich es einfach so gemacht, dass ich bei Anfangszeiten < 5 Uhr "h+24" genommen habe. Das klappt aber nicht, wenn ich mit END_TIME_TYPE auch den Sendeschluss angeben will.
Die Funktion extract wird ja schon mit dem ProgramFrameDispatcher und dem Datum ausgeführt, deshalb kann man ja nicht einfach die Sendungen, die nach 0h anfangen auslassen und dem nächsten Tag (nächsten dispatcher) überlassen. Wie macht man es am besten?
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

also ich mach das so:
wenn die vorherige sendung eine stundenzahl > jetzige sendung hat, dann weiß ich, das der nächste tag angebrochen ist und addiere ab dem zeitpunkt immer 24 stunden hinzu
Jo
Site Admin
Beiträge: 11805
Registriert: 07 Apr 2006, 23:39

Beitrag von Jo »

Aber das klappt nicht mehr mit END_TIME_TYPE. Meine Sender haben noch so etwas wie einen Sendeschluss nachts (die älteren werden es vielleicht noch kennen). Und wenn ich keine Endzeit bei der letzten Sendung angebe, geht sie durch bis zur 1. Sendung am nächsten Tag.
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

Dann geb doch einfach bei jeder Sendung, bei der du das kannst, die End-Zeit an.
Jo
Site Admin
Beiträge: 11805
Registriert: 07 Apr 2006, 23:39

Beitrag von Jo »

Das funktioniert gerade nicht. Bei einer Sendung, die um 1h beginnt und bis 2h geht, kann ich als START_TIME 25 eingeben, aber als END_TIME nicht 26. Und das Ende der letzten Sendung bestimmt den Sendeschluss und der ist fast immer nach 0h.
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

Achso...ne, das geht nicht. Ich meinte das eher so:

1. Global Datum definieren
2. Datum auf Start-Datum des Files sezten
3. Wenn Sendungs-Zeit < Sendungs-Zeit vorherige Sendung => Datum + 24 Stunden, sprich 1 Tag hinzuadieren
4. Dispatcher immer mit globalem Datum
Jo
Site Admin
Beiträge: 11805
Registriert: 07 Apr 2006, 23:39

Beitrag von Jo »

Ich habe es noch nicht ganz verstanden, bzw. es funktioniert noch nicht ganz. Folgendes Beispiel:
Sendung beginnt 1. Jan. 23:00, endet 2. Jan. 1:00. Die Startzeit füge ich mit
frame.addProgramField(ProgramField.create(ProgramFieldType.START_TIME_TYPE, h*60+m));
hinzu. Wie bekomme ich die Endzeit hin? Nehme ich
frame.addProgramField(ProgramField.create(ProgramFieldType.END_TIME_TYPE, hEnd*60+mEnd));
dann liegt die Endzeit vor der Startzeit und wird nicht akzeptiert. Nehme ich
frame.addProgramField(ProgramField.create(ProgramFieldType.END_TIME_TYPE, (24 + hEnd) *60+mEnd));
(also Ende um 25:00 Uhr) wird das auch nicht akzeptiert.
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

Also ich rechne immer die Länge aus und gibt die dem Programm mit. So muß man das Ende nicht errechnen.

Ich habe nur eine Quelle, wo ich das Ende hinzufüge. Aber das ist bei mir immer um 5:00 oder so, so das die letzte Sendung auch immer nach 12:00 startet ;).
Jo
Site Admin
Beiträge: 11805
Registriert: 07 Apr 2006, 23:39

Beitrag von Jo »

Mit NET_PLAYING_TIME_TYPE funktioniert es auch nicht. TVB zeigt zwar die Nettozeit in Klammern, aber geht davon aus, dass die Sendung brutto bis zur nächsten am Morgen dauert. Ich weiß nicht mehr weiter.
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

Irgendwas machst du falsch ?! Kannst du mir die Sourcen und Beispieldaten zum konvertieren schicken? Dann basstel ich mal damit rum.
Jo
Site Admin
Beiträge: 11805
Registriert: 07 Apr 2006, 23:39

Beitrag von Jo »

Die Rohdaten kommen von der Website. Z.B. 3. Mai (Daten).
Die letzte Sendung ist um 23.50 "Lystløgneren", als Schluss ist Slutt: 01.12 angegeben. Der dayprogramfiletranslator zeigt für den 3.5. als letzten Eintrag:
Program ID: 52
net playing time: 82
start time: 23:50
title: Lystløgneren
...
Ich habe es auch so versucht, dass dort auch "end time 1:12" oder "end time 25:12" mit oder ohne "net playing time" steht.
Egal wie, TV-Browser zeigt in der Sendungsanzeige: "Lystløgneren 395 min (bis 6:25 - 82 min netto)" (bzw. wenn ich "net playing time" nicht angebe natürlich nicht die Nettozeit).
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

Schick mir den PDS und ich probier damit rum. Keine ahnung was da falsch läuft. Ich kann das erst sagen, wenn ich den PDS hier habe und damit experimentiere.
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

Peinlich Peinlich...anscheinend ein kleiner "Bug" im Zeit-Korrigier-System des TVBrowsers ;).
Jo
Site Admin
Beiträge: 11805
Registriert: 07 Apr 2006, 23:39

Beitrag von Jo »

Ich habe mir gedacht, dass ich als Workaround in diesen Fällen eine Sendung namens "Sendeschluss" (bzw. "Slutt") einfüge. Wäre vielleicht allgemein gut, wenn es für TVB eine "Sondersendung" Sendepause gäbe. Die könnte dann anders (oder gar nicht) im TVB angezeigt werden und an die lokale Sprache angepasst werden. Und das DataViewerPlugin würde nicht mehr meckern, dass die Daten unvollständig sind, obwohl doch nur der Sender kein 24h-Programm hat. :wink:
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

Ne, das is ja nur ein hässlicher Würk-Around. Das eigentliche Problem sollte einfacher zu beseitigen sein, als sowas einzubauen...hoffe ich jedenfalls ;)
Antworten