diff --git a/README.md b/README.md index db44835..f7a8467 100644 --- a/README.md +++ b/README.md @@ -395,6 +395,11 @@ fragt den Stand ab; die Zeile unter den Knöpfen zeigt den Fortschritt und am Ende den Pfad. Getrennt vom Bildexport, in beide Richtungen: „Alle Slides als ZIP" enthält kein Video, und dieser Knopf rendert kein Bild. +**Die Datei landet zweimal.** In `~/Downloads`, wie die Bilder, zum Hochladen. +Und in `animation/` im Repo, wo sie versioniert ist und nach einem Pull auf +der anderen Maschine liegt. In Downloads wird nichts überschrieben: eine +zweite Ausgabe heißt `…-1.mp4`, genau wie beim Bildexport. + Auf der Kommandozeile geht dasselbe: ```sh @@ -403,7 +408,8 @@ node animation.mjs post6.html # alle Animationen des Projekts node animation.mjs post6.html animChat # nur diese ``` -Heraus kommt `animation/post6-animChat.mp4`. Angesprochen wird die Animation +Heraus kommt `animation/post6-animChat.mp4` (auf der Kommandozeile nur dort, +ohne die Kopie in Downloads). Angesprochen wird die Animation über ihren Schlüssel, nicht über eine Nummer: sie hat keine Position im Streifen, die sich verschieben könnte. diff --git a/animation/post6-animChat.mp4 b/animation/post6-animChat.mp4 index 22ab40f..f49dd84 100644 Binary files a/animation/post6-animChat.mp4 and b/animation/post6-animChat.mp4 differ diff --git a/serve.py b/serve.py index e50024c..88f1bb8 100755 --- a/serve.py +++ b/serve.py @@ -23,6 +23,7 @@ import http.server import json import os import re +import shutil import socketserver import subprocess import threading @@ -320,9 +321,22 @@ def _anim_lauf(kennung, projekt, key): melden(laeuft=False, fehler="kein MP4 entstanden") return groesse = ziel.stat().st_size - melden(laeuft=False, pfad="animation/" + ziel.name, - groesse=f"{groesse/1024/1024:.1f} MB", zeile="fertig") - print(f"Animation gebaut: {ziel.name} ({groesse/1024/1024:.1f} MB)") + # Zum Hochladen liegt die Datei am selben Ort wie die Bilder. Im Repo + # bleibt sie trotzdem: dort ist sie versioniert und hat auf der anderen + # Maschine nach einem Pull denselben Stand. Ueberschrieben wird in + # Downloads nichts, genau wie beim Bildexport -- eine Datei, die + # vielleicht schon hochgeladen wurde, gehoert nicht ersetzt. + TARGET.mkdir(parents=True, exist_ok=True) + abgabe = TARGET / ziel.name + n = 1 + while abgabe.exists(): + abgabe = TARGET / f"{ziel.stem}-{n}{ziel.suffix}" + n += 1 + shutil.copy2(ziel, abgabe) + melden(laeuft=False, pfad="~/Downloads/" + abgabe.name, + groesse=f"{groesse/1024/1024:.1f} MB · auch animation/{ziel.name}", + zeile="fertig") + print(f"gespeichert: {abgabe} ({groesse/1024/1024:.1f} MB)") except FileNotFoundError: melden(laeuft=False, fehler="node nicht gefunden") except Exception as e: # der Faden darf den Server nicht mitnehmen