Home-Produkte-Testarea-Kontakt-Datenschutz-Aktualisiert: 25-Oct-2003
< Voriger Tag   Nächster Tag >

Samstag, 25. Oktober 2003

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.
Das ließ sich gut schrittweise implementieren. Um festzustellen welche Meldungen neu sind, wird die Liste vom Server mit den Einträgen in der Datenbank verglichen. Falls die gewünschte NewsID dort noch nicht existiert ist die Meldung neu. Falls die NewsID schon existiert aber der Titel ein anderer ist wurde die Meldung aktualisiert.

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.

[Direktlink]

< Voriger Tag   Nächster Tag >

  RSS V0.91

<Oktober 2003 >
  0102030405
06070809101112
13141516171819
20212223242526
2728293031  

Home-Produkte-Testarea-Kontakt-Datenschutz-Aktualisiert: 25-Oct-2003
(C) 2000-2018 by Sven Drieling