- Update auf Python 3 des gesamten Codes
- Damit die Funktionen des Bots angefangen mit download-metadata funktionierten mussten wir zuerst die Test Dateien dummy.py und pmc_doi anpassen
- Für dummy.py probierten wir verschieden Download Dateien und reparierten kleiner Fehler
- Fügten die links als Variable der Funktion hinzu, ergänzen den Code so das er tatsächlich die files runterlädt statt sie nur zu "yielden", dies Funktionierte vielleicht in Python 2
- Viele kleine Anpassungen der Relationen der Funktionen der Dateien untereinander, Hinzufügen von Argumenten, oft ausblenden von optinoalen Parametern und Argumenten
- Anpassen der Download Struktur selbes Problem wie bei dummy.py mit dem "yielden" von Inhalten
- Hinzufügen von Download statements mit Hilfe von Carlin (externer Programmieren von WikiData)
- Oft wurde nur der Inhalt geprinted statt gespeichert
Was?
- Folgende Module wurden entfernt: gobject, pygst, gst
- Funktionen und Klassen, die nicht mehr verwendet werden, wurden entfernt: setup_all, create_all
Was?
- make_datestring aus helpers wurde importiert anstatt das gesamte Modul helpers zu importieren - Funktionen und Klassen wurden aktualisiert, um aus den entsprechenden Modulen zu importieren.
- sqlalchemy wurde hinzugefügt um die Datenbank mit sqllite zu erstellen und zu verknüpfen
Was?
- stderr.write wurde mit print ersetzt
Was?
- materials wurde geändert (keine filter --> Alles)
- path wurde entfernt (an manchen Stellen os.path hinzugefügt)
- relative Pfade hinzugefügt
- Zeilen 167 - 186 wurden neu hinzugefügt, um die Konvertierung der Dateien statt mit gobject nun mit ffmpeg zu machen
- ffmpeg Konvertierung zu .ogg Format mit vorherigem Code verknüpfen
Was?
- Erster Teil des Codes wurde Auskommentiert, da das Tool Elixir auf Python 3 nicht mehr funktioniert und somit mussten alle Variablen mit Beziehungen zu diesen Funktionen erstmal deaktiviert werden
- skip wurde auskommentiert, diese Funktion funktionierte mit dem vorhanden Code nicht mehr, dies hatte einen Python 3 oder Elixir Grund
- journal und artical.get_by wurde entfernt, contrib_authors wurde als eigene variable hinzugefügt
- get_by ist eine Elixir Variable und somit depreciated
- der Code für category wurde zunächst entfernt, weil dies in der Pipeline der find-media Funktion für Probleme mit Abhängigkeiten gesorgt hat, dafür werden die Ergebnise geprintet
Was?
- sqlalchemy, model, urllib3, filetype, importlib, requests
Was?
- eine database engine und eine Session wurde hinzugefügt, sowie Database tabellen
- hierzu wird sqllite über sqlalchemy verwendet um nach dem Format in der dummy Datei Metadaten zu speichern
Was?
- Relative Pfade die temporär in absolute Pfade geändert wurden als jeder einzelnd versuchte Probleme der Dateien zu lösen
Was?
- Umschreiben der FUnktion um Probleme in der Pipeline zu beheben
Was?
- Beginn der if-else-Anweisung loops wurde gelöscht
- .all() wurde in die Klammer gesetzt
- hinzufügen eines for-loops, um den file-path zu kontrollieren
Was?
- materials wurde session hinzugefügt und dann geprintet, soll überprüfen ob Inhalte hinzugefügt werden
- Funktion download-media funktioniert wenn eine PMC DOI in der Datei pmc_doi.py hinzugefügt wird, klappt auch mit einer Liste
Was?
- sqlalchemy, importlib, sys
Was?
- anstatt sqllite nutzen von importlib, um das source_module zu definieren.
Was?
- engine --> zum deklarieren der SQL-Umgebung
- Session --> zum definieren einer Session im Botablauf
Was?
- anderes Objekt, anstatt Entity nun Base, weil Probleme mit dem Aufruf der Variable entstanden sind vor der Änderung
- hinzufügen von 'tablename', weil Daten vorher nicht im richtigen Format gespeichert wurdem im sqllite Server
- deswegen müssen nun auch die Variablen in der Klasse geändert werden, einmal wird bei titel nicht mehr Field() genutzt sondern Column() als Update aus Python 2
- bei articels wurden relationen der Felder und Keys vergeben
Was?
- Hier wird nun eine Assoziationstabelle definiert mit dem Namen 'article_category'
- dadurch können Artikel und Kategorien über die Verknüpfungstabelle miteinander verbunden werden.
- eine Funktion in oa-get oder oa-cache fragte hier nach dieser Tabelle obwohl diese vorher nicht existierte, beim Wechsel zu Python 3 müssen an einigen Stelle Variablen verloren gegangen sein die dann später durch Trial and Error der Fehler Meldungen für die Funktionen, Download-media, Download-metadata, find-media und convert-media manuell hinzugefügt werden mussten
Was?
- Wieder anstatt Entity Base, als Anpassung an einen neuen Import
Update auf Python 3
Was?
- Ursprünglicher Pfad hat auf den eigenen Laptops nicht funktioniert, jeder musste diesen manuell ändern
- Später eine Änderung mit Relativen Pfad hinzugefügt
- Anpassung der User Config und erweiterung um spezifische lokale Variablen
Was?
- sqlite wird beim 'database_path' benötigt, damit der jeweilige Befehl die einzelnen Databases anlegen kann.
- Damit die Funktionen des Bots angefangen mit download-metadata funktionierten mussten wir zuerst die Test Dateien dummy.py und pmc_doi anpassen
- Für dummy.py probierten wir verschieden Download Dateien und reparierten kleiner Fehler
- Fügten die links als Variable der Funktion hinzu, ergänzen den Code so das er tatsächlich die files runterlädt statt sie nur zu "yielden", dies Funktionierte vielleicht in Python 2
- Viele kleine Anpassungen der Relationen der Funktionen der Dateien untereinander, Hinzufügen von Argumenten, oft ausblenden von optinoalen Parametern und Argumenten
- Anpassen der Download Struktur selbes Problem wie bei dummy.py mit dem "yielden" von Inhalten
- Hinzufügen von Download statements mit Hilfe von Carlin (externer Programmieren von WikiData)
- Oft wurde nur der Inhalt geprinted statt gespeichert