UPDATE 0.10.3 - ORTSBEZEICHNUNG NACH MASSENAENDERUNG

NEU IN 0.10.3
Nach einer Massenkorrektur von GPS-Daten und Ortsbezeichnung werden die
Angaben auch in einem bereits geoeffneten Detailfenster aktualisiert.
Dadurch zeigt es keine alten Ortsangaben mehr an und schreibt diese beim
spaeteren Speichern eigener Notizen nicht wieder zurueck. Das gilt auch
fuer die separate Massenkorrektur der Ortsbezeichnung.
Nicht betroffene Detailfenster werden nicht neu geladen.

GPS UND ORTSBEZEICHNUNG ZUSAMMEN AENDERN
Fotos und Videos markieren, "Standort fuer ausgewaehlte Dateien ..."
oeffnen und den neuen Kartenpunkt waehlen. Fuer eine gemeinsame
Ortsbezeichnung das Kaestchen "Ortsbezeichnung ebenfalls fuer alle
ausgewaehlten Dateien aendern" aktivieren und den Namen eintragen.
Speichern und die gemeinsame Aenderung bestaetigen. Ohne das Kaestchen
werden nur die GPS-Koordinaten geaendert.

NEU SEIT 0.10.2
Beim Verschieben wird nur die SQLite-Katalogdatenbank gesichert. Die
zeitaufwendige vollstaendige Sicherung aller Foto- und Videovorschauen
entfaellt fuer diese Aktion. Die Datenbank enthaelt die Metadaten und
Zuordnungen aller Medien vor dem Verschieben.

Vorhandene Zieldateien werden bei gleicher Dateigroesse anhand einer
frisch berechneten SHA-256-Pruefsumme mit dem eingehenden Bild verglichen.
Sind die gesamten Dateiinhalte byteidentisch, gibt es keine dauerhafte
Originalsicherung des bisherigen Ziels. Die temporaere Rueckhalte-Datei
fuer eine Fehler-Wiederherstellung wird nach erfolgreichem Abschluss
entfernt. Andere Original-Zieldateien werden weiterhin gesichert.

Identisch bedeutet: einschliesslich eingebetteter EXIF/IPTC/XMP-Daten
gleicher Dateiinhalt. Gleiche Dateinamen, Groessen oder gleich aussehende
Bilder genuegen nicht. Unterschiedliche Katalogangaben koennen auch bei
byteidentischen Dateien auftreten und bleiben einzeln auswaehlbar. Deshalb
bleibt die Datenbanksicherung auch bei identischen Originalen erhalten.

Bericht.json vermerkt pro Bild identical_target=true/false und nennt
einen Originalsicherungspfad nur, wenn eine solche Sicherung vorliegt.
Bei einer unerwarteten Dateiaenderung oder einer Dateisperre wird eine
Rueckhalte-Datei vorsichtshalber erhalten und im Bericht genannt.

FORTSCHRITT UND DATEIKENNUNGS-KORREKTUR (SEIT 0.10.1)
Der Verschiebedialog zeigt sofort die laufende Vorbereitung und sperrt
den Startbutton gegen einen zweiten Aufruf. Die Sicherung der
Katalogdatenbank ohne Vorschauen wird als eigene Phase angezeigt. Sie betrifft den
gesamten Katalog, nicht nur die ausgewaehlten Fotos. Statusabfragen bleiben
waehrend dieser Sicherung erreichbar. Anschliessend erscheinen Schreiben,
Pruefen und Katalogaktualisierung mit "Bild x von y".

Die Sicherheitspruefung nach dem temporaeren Umbenennen der Quelle wurde
korrigiert. Manche Dateisysteme aendern dabei die Dateikennung. In diesem
Fall wird nun der tatsaechliche Quellbildinhalt per SHA-256 mit der bereits
geprueften Zielkopie verglichen. Eine geaenderte Kennung allein verhindert
das Verschieben nicht mehr. Abweichender Bildinhalt fuehrt weiterhin zum
Abbruch und zur Wiederherstellung. Echte Windows-Datentraeger bitte mit
zwei oder drei Bildern pruefen, bevor ein groesserer Vorgang gestartet wird.

AKTUALISIERUNG
Programm vollstaendig beenden. Aus diesem Paket app.py, ui.js, index.html
und die NEUE Datei move_images.py in den bisherigen Programmordner kopieren.
Alternativ das vollstaendige Paket in einen neuen Programmordner entpacken.
Eigene tools, Python-Umgebung und Einstellungen bei einer Aktualisierung
beibehalten. STARTEN.cmd neu starten, im Browser Strg+F5 druecken.
Keine erneute Einrichtung erforderlich; keine neuen Python-Abhaengigkeiten.
Die Kataloganpassung erfolgt beim Start mit vorheriger SQLite-Sicherung
(sicherungen/Katalog-vor-0.10.0-*.sqlite).
Die bebilderte Installationsanleitung von 0.9.0 gilt weiterhin fuer die
Grundinstallation; die neue Funktion ist hier beschrieben.

SO GEHT ES
1. In den Suchergebnissen Fotos mit den Auswahlkaestchen markieren.
   Die Auswahl gilt ueber mehrere Ergebnisseiten. Ein Filterwechsel hebt
   sie auf. Videos werden von dieser Verschiebefunktion nicht erfasst.
2. "Bilder verschieben ..." anklicken und einen vorhandenen Zielordner
   waehlen. Maximal 200 Bilder je Vorgang.
3. Quell- und Zielpfade sowie Dateinamenskonflikte pruefen. Ein gleicher
   Name ist kein Nachweis fuer identischen Bildinhalt.
   Ein Ziel ausserhalb registrierter Quellen wird erst beim bestaetigten
   Start als neue Katalogquelle registriert.
4. Bei Konflikten ist zunaechst "Ueberspringen" ausgewaehlt. Zum Ersetzen
   ausdruecklich "Zieldatei ueberschreiben" waehlen.
   Abweichende Angaben stehen nebeneinander. Fuer JEDE Angabe Quelle oder
   bisheriges Ziel waehlen. Standard ist Quelle. Das betrifft:
   eigene Notizen, eigene Schlagwoerter, Ortsbezeichnung, GPS-Koordinaten
   als zusammengehoeriges Paar, Aufnahmedatum, Kamera, KI-Bildbeschreibung
   und KI-Suchbegriffe. Auch leere Zielwerte koennen uebernommen werden.
   Die ausgelesenen Originalmetadaten sind zusaetzlich einsehbar.
5. "Auswahl verschieben ..." anklicken und die abschliessende Abfrage
   bestaetigen. Bei Ueberschreibungen nennt sie die Zahl der Zieldateien.
6. Fortschritt unter "Scan-Fortschritt" verfolgen. "Scan pausieren" stoppt
   den Vorgang; bereits fertig verschobene Bilder bleiben am neuen Ort.
   Noch offene bzw. fehlgeschlagene Bilder spaeter erneut auswaehlen.

WAS ERHALTEN BLEIBT
Die ID des eingehenden Bildes, seine Vorschau und Katalogangaben bleiben
beim normalen Verschieben erhalten. Bei Ueberschreibungen werden die
gewaehlten Katalogangaben zusammengefuehrt; der bisherige Zieleintrag wird
ersetzt. Die neue Katalogzuordnung, der Dateipfad, Dateigroesse und Hash
werden aktualisiert. Dateizahlen, Katalog-Dateisummen, erreichbarer freier
Speicherplatz und Kartenpunkte werden nach Abschluss neu geladen.
Gewaehlte Zielwerte fuer GPS, Aufnahmedatum und Kamera bleiben bei weiteren
Scans erhalten, ebenso die eigenen Angaben und KI-Texte.

Die Auswahl aendert KATALOGANGABEN. Eingebettete EXIF/IPTC/XMP-Daten werden
nicht vermischt oder umgeschrieben: sie bleiben Teil des eingehenden
Originalbildes. Bildabmessungen und weitere technische Eigenschaften
stammen ebenfalls aus diesem Bild. Alte Zielmetadaten sind in der
Katalogsicherung und im Einzelbericht enthalten.

SICHERUNGEN UND FEHLER
Vor jedem Verschiebestart wird nur die Katalogdatenbank unter dem
Katalog-Datenordner/sicherungen als Katalog-vor-Verschieben-*.sqlite
gesichert. Das Kopieren und Komprimieren der Vorschauen entfaellt.
Die manuelle vollstaendige ZIP-Sicherung mit Vorschauen bleibt verfuegbar.
Auch das Entfernen einer ganzen Katalogquelle bleibt vollstaendig gesichert.
Eine abweichende bisherige Zieldatei bleibt bei einer Ueberschreibung
in einem Unterordner des Zielordners:
.medienarchiv-originale-Verschieben-...
Diese Ordner sind von Scans ausgeschlossen. Sie benoetigen Speicherplatz
und koennen nach Pruefung manuell archiviert oder entfernt werden. Das
Verschieben selbst loescht diese Sicherungen nicht.

Eine temporaere Zielkopie wird vollstaendig geschrieben und per SHA-256
geprueft. Erst danach werden Dateipfade und Katalog aktualisiert und die
Quelle entfernt. Bei Fehlern waehrend einer einzelnen Verschiebung wird
versucht, Quelle, Ziel und Katalog auf den vorherigen Stand zurueckzusetzen.
Eine zwischenzeitlich entstandene oder geaenderte Datei wird nicht still
ueberschrieben. Verarbeitung anderer Bilder kann trotz eines Einzelfehlers
fortgesetzt werden. Ein Vorgang kann daher teilweise abgeschlossen sein.

Unter Katalog-Datenordner/verschiebeberichte/Verschieben-... stehen
Bericht.json und Einzelberichte mit Quell-/Zielpfad, Metadatenauswahl und
Sicherungspfaden. Meldet ein Bericht eine verbliebene Quellsicherheitskopie
oder fehlgeschlagene Wiederherstellung, diese Pfade vor dem Entfernen von
Dateien pruefen. Nach einem erzwungenen Programmabbruch oder Ausfall des
Datentraegers anhand der Berichte und Sicherungen pruefen, welche Bilder
bereits angekommen sind. Es gibt keine automatische Wiederaufnahme einer
unterbrochenen Verschiebung.

PRUEFSTAND
178 Python-Tests und 17 JavaScript-Testdateien bestanden. Darunter:
Verschieben innerhalb einer Quelle und in eine neue Quelle, Ueberschreiben,
gemischte Metadaten, Vollscan nach Verschiebung, Katalog- und Dateiaenderungen
nach dem Vergleich, Dateinamenskonflikte, fehlende Zieldatei, Speichermangel,
Datenbankfehler mit Wiederherstellung, Pause, API-Zugriffsschutz und Dialog.
Tests liefen unter Linux; Windows-Dateisperren und echte Wechsel zwischen
physischen Windows-Datentraegern bitte zunaechst mit Testbildern pruefen.
