Heise-Newsticker parsen (2)
Das Parsen und Einlesen der neuen News ist nun fertig gestellt. Dabei gabs noch einen ärgerlichen Fehler bei der Bestimmung des Datums einer Meldung.
Die Routine zum Parsen habe ich gestern fertig gestellt. Mit 7 News als Tests siehts zwar harmlos aus aber ich war sehr froh als das Parsen aller hier im Proxy-Cache sitzenden News endlich ohne Fehlermeldung durchlief. Die eine oder andere Variante wirds aber wohl noch geben.
So mal sortieren, was das Skript nun in einzelnen machen soll:
- Liste der Meldungen (NewsID, Datum, Titel, URL) vom Server holen.
- Welche Meldungen sind neu bzw. wurden aktualisiert?
- Neue und aktualisierte Meldungen vom Server holen - beginnend mit der ältesten.
- Meldung speichern:
- Text, Bilder in einem Verzeichnis. Als Verzeichnisname wird die NewsID benutzt.
- NewsID, Datum, Titel und die Reihenfolge in der Datenbank speichern.
Beim Heise-Newsticker werden aktualisierte Meldungen im Titel um ein '[Update]' ergänzt. Bedeutet allerdings auch, dass Änderungen an den Meldungen nur erkannt werden, wenn sich auch der Titel verändert.
Stopmarkierung:
Um beim ersten Start nicht endlos viele Meldungen einzulesen, gibt
es zusätzlich eine Stopmarkierung. Sie sorgt dafür, dass beim
ersten Aufruf nur die Meldungen des aktuellen Tages eingelesen
werden. Beim ersten Testen dieses Features fehlten aber zwei
Meldungen des ersten Tages. Argl, als Datum der Meldungen in
der Liste hatte ich die Datumsangabe aus der URL (jow-23.10.03-000)
genommen und das muss beim Heise-Newsticker nicht mit dem
Veröffentlichungsdatum übereinstimmen, was mir bisher nicht aufgefallen
ist. Die Routine zum Einlesen der Liste war aber schnell korrigiert,
so dass nun das Datum genommen wird, was den Meldung in Fettschrift
voran steht. Worauf dann alle Meldungen dieses Tages folgen.
Betroffen war von diesem Fehler aber auch die Testsuite. Um nicht alles per Hand einzugeben. Hatte ich einfach im nach hinein die vom Skript generierte Ausgabe benutzt, um die Ausgabe zu überprüfen - was allerdings auch nicht so ganz Sinn einer Testsuite ist. Wobei mir der Fehler mit dem Datum nicht aufgefallen war, so dass nun mit der Korrektur im Skript die Tests negativ ausfallen und die Daten angepasst werden müssen.
