Better scraper
Das hier ist deshalb in einem extra branch, weil es vielleicht nicht schlecht wäre, dass hier vorm einchecken in den master noch ein paar andere Paare Augen draufschauen. Außerdem müsst ihr bestimmt eure DB's killen.
Habe den Scraper recht stark verändert. Er erkennt jetzt verschobene und geänderte Dateien. Auch liest er schon selbst ein paar Metadaten (Audiodateien z.B. ID3 und bei Serien/Filmen über guessit library aus dem Dateinamen)
Der Grund dafür war, dass (Kategorie), Metadaten und Tags bei einer Verschiebung bestehen bleiben sollen. Das war vorher nicht der Fall. Habe viel mit SQLAlchemy rumgefrickelt um irgendwie Kategorie, Tag und Metadata (in extra Table) über den SHA zu verknüpfen. Es gäbe dann pro SHA nur einen Eintrag. Gelöscht werden sollte der Eintrag auch nie. Das hat irgendwie überhaupt nicht funktioniert.
Deshalb jetzt gleichbleibendes Schema (da gibt es aber auch noch einiges zu verbessern) aber den Scraper verbessert.
Der liest jetzt schon beim Deltas bilden die SHA's um zu checken ob eine gelöschte Datei unter anderem Namen wieder aufgetaucht ist.
Auch das Inserten später habe ich umgeschrieben. Es gibt weiterhin Multiprocessing aber anders. Ich habe eine Art "Pipeline". In machen Schritten (SHA, Metadaten, Thumb) wird Multiprocessing verwendet aber immer nur in sehr kleinen Bereichen.
Tests habe ich sowohl fürs deltas erstellen als auch fürs applyen in die DB gemacht.