Wie letzte Woche erwähnt, werde ich jetzt kurz etwas zu inbox.py
schreiben. Wie schon am Namen zu vermuten ist, handelt es sich hierbei um ein
Modul, dass neue Artikel bearbeitet. Hierzu stehen folgende Methoden der
Inbox-Klasse bereit:
scan()
listet alle Dateien im Eingangsverzeichnis auf und teilt diese in
Artikel-Dateien (enden mit einer Erweiterung wie "mkd" oder "html") und
andere Dateien auf, die Artikel werden anschließend anhand ihres
Erstellungsdatums sortiert: _sort_artciles_by_time_created()dispatch()
is das eigentliche Arbeitstier in diesem Modul. Zuerst wird ein Artikel
eingelesen. Dadurch werden auch alle Metaangaben in der Datei überprüft
beziehungsweise ergänzt. Der Eintrag wird dann anhand seines
Erstellungsdatums in das Artikelarchiv kopiert – inklusive der ergänzten
Angaben. Um die Sortierung später zu erleichtern erhält jeder Artikel eine
zweistellige Nummer vorangestelt, sofern er noch keine besitzt. Danach
werden die lokalen Verknüpfungen (siehe article.py) ermittelt
und die entsprechenden Dateien auch in das Artikelarchiv kopiert.cleanup()
Zu guter Letzt werden die bisher nur kopierten Dateien gelöscht.inbox.py und inventory.py spielen gut zusammen, sofern man die
Reihenfolge beachtet. Zuerst sollten die Einträge im Eingangskorb bearbeitet
werden und erst danach die Bestandsaufnahme erfolgen. Da eine Suche nach
geänderten Dateien durch inventory.py das Änderungs- und nicht das
Erstellungsdatum beachtet werden dadurch neue Artikel automatisch gefunden, ohne
das eine Datenübergabe zwischen den beiden Modulen erfolgen muss. Des weiteren
entfällt durch diese Reihenfolge das Einsortieren neuer Artikel (bzw. deren
Elternknoten) in die gefundenen Knoten.