-
Notifications
You must be signed in to change notification settings - Fork 2
Scripte
Hier werden diverse Komandozeilen-Tools im Umfang von Offenes Köln beschrieben.
Alle Scripte sollten im Ordner scripts liegen. Sie werden normalerweise vom Hauptverzeichnis aus ausgeführt. Ausnahmen werden gesondert erwähnt.
Dient der Extraktion von Texten aus PDFs.
Ohne dieses Script würde die Suche nur über Metadaten (Titel, Kurzbeschreibungen) laufen.
Dieses Script sollte periodisch oder nach jedem Scrapen ausgeführt werden. Es greift auf die Datenbank zu und findet dort Einträge in der Collection attachments, die noch keine Volltext-Einträge haben oder deren Volltext-Einträge veraltet sind, weil sich die Datei geändert hat. Für diese Einträge werden dann die Volltexte extrahiert und in der Datenbank abgelegt.
Das Script greift auf das Programm pdftotext zu, das Bestandteil von XPDF ist.
Erzeugt Vorschaubilder zu Datei-Anlagen
Dieses Script sollte periodisch oder nach jedem Scrapen ausgeführt werden. Es durchsucht in der Datenbank die Collection attachments nach Einträgen, die bisher noch keine Vorschaubilder haben oder wo die Vorschaubilder veraltet sein könnten.
Die Vorschaubilder werden im konfigurierten Pfad im Dateisystem abgelegt. Hierbei werden Unterverzeichnisse angelegt, um in allen Dateisystemen einen performanten Dateizugriff zu gewährleisten.
Die Thumbnail-Erzeugung macht Gebrauch von Ghostscript.
Erzeugt Geo-Referenzen zu Vorlagen*
Das Script durchsucht alle Vorlagen (Collection submissions) nach Einträgen ohne Geo-Referenzen. Dort, wo keine vorhanden sind, durchsucht es den Volltext der zugehörigen Anlagen (attachments). Gefundene Geo-Referenzen werden zur submission hinzugefügt.
Geo-Referenzen sind im aktuellen Stadium sehr primitiv. Es wird einfach eine Liste der im Volltext gefundenen Straßennamen (in der kanonischen Schreibweise) geführt. Dies erlaubt jedoch, die entsrechenden Vorlagen über eine Suche nach dem kanonischen Straßennamen aufzufinden.
Das Script wird nach generate_fulltext.py ausgeführt, da es die hinterlegten Volltexte verarbeitet.
Füllt den Index der Suchmaschine
Die Volltextsuche von Offenes Köln läuft über ElasticSearch (ES). Das Script elasticsearch_import.py erstellt bei jedem Durchlauf einen neuen ES-Index und import die für die Suche relevanten Inhalte aus MongoDB in diesen Index. Der bestehende Index bleibt während diesem Vorgang weiter nutzbar. Sobald der Import abgeschlossen ist, wird der alte Index entfernt und der neue Index für die Suche genutzt.
Das Script sollte immer dann ausgeführt werden, wenn durch Scrapen neue Inhalte hinzu gekommen sind. Zuvor sollten allerdings generate_fulltext.py und generate_georeferences.py gelaufen sein, da diese zusätzliche Inhalte für die Suche generieren.
Erzeugt RSS-Feed der Vorlagen
Dieses Script generiert einen RSS-Feed mit den neusten Vorlagen (submissions). Es sollte daher periodisch oder nach dem Scrapen ausgeführt werden. Das Ergebnis wird als statische XML-Datei im /static/ Verzeichnis abgelegt, wo sie von Webnutzern abgerufen werden kann.
Die jeweils vorhandene XML Datei wird nur dann überschrieben, wenn neue Inhalte vorhanden sind. So wird der unnötige Abruf der Feed-Datei durch Clients unterbunden.
Erzeugt XML-Sitemaps für Vorlagen (submissions) und Anhänge (attachments)
Für die bessere Indexierung der Inhalte durch Suchmaschinen werden XML-Sitemaps mit allen URLs von Anhängen und Vorlagen generiert.
Dieses Script sollte nach einem Scraper-Durchlauf ausgeführt werden.
Erzeugt statische Daten-Dumps
Hiermit werden die Daten-Dumps generiert, die im Web unter /daten/ angeboten werden. Das Script erzeugt Dumps für alle öffentlichen MongoDB Collections, packt diese in einem .tar.bz2 Paket und schiebt dieses an die richtige Stelle.
Das Script kann so oft ausgeführt werden, wie es notwendig erscheint.
Exportiert die Datei-Anhänge für einen bestimmten Datumsbereich
Mit diesem Script können bei Bedarf alle Attachments, die in einem bestimmten Datumsbereich gescrapet wurden, aus der Datenbank in ein .tar.bz2 Archiv exportiert werden. So können beispielsweise neue Attachments zur Sichtung effizient vom Server herunter geladen werden.
Löscht alle Vorschaubilder aus der Datenbank
Ein Helferlein zum Entfernen aller Thumbnail-Einträge aus der Datenbank. Die eigentlichen Thumbnail-Dateien im Dateisystem werden nicht gelöscht - das geht einfach mit rm -r webapp/static/thumbs/*.