Animation: das MP4 landet auch in Downloads, wie die Bilder

Der Export legte die Datei nur unter animation/ im Repo ab. Die Bilder gehen
seit jeher nach ~/Downloads, und von dort laedt man hoch -- ein Video an einem
anderen Ort ist eine Inkonsequenz, die man erst merkt, wenn man es sucht.

Jetzt beides: Downloads zum Hochladen, animation/ zum Versionieren. Wie beim
Bildexport wird in Downloads nichts ueberschrieben, eine zweite Ausgabe heisst
"-1" -- eine Datei, die vielleicht schon hochgeladen wurde, gehoert nicht
ersetzt.

Der Weg ueber die Kommandozeile schreibt weiterhin nur ins Repo.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
dejanandClaude Opus 5 committed 2026-08-25 23:55:55 +02:00
1 parent c7c05a85cc
commit 9e8b2ea607
3 files changed
+24 -4

No files matched your search

+7 -1
View File
@@ -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.
Binary file not shown.
+17 -3
View File
@@ -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