From ead0dd6a0fed2df88860aba6620629fad4d0ab3c Mon Sep 17 00:00:00 2001 From: Ferdinand Urban Date: Thu, 23 Apr 2026 12:32:17 +0000 Subject: [PATCH] fix: cleanup only old uploads, restore fav state on tinder undo - #11: cleanup_old_uploads() skips dirs younger than 24h (safe during --reload) - #12: tinderHistory stores wasFav snapshot; undo restores exact pre-swipe favorite state Co-Authored-By: Claude Sonnet 4.6 --- index.html | 4 ++-- server.py | 9 +++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/index.html b/index.html index f2823c4..d0546c8 100644 --- a/index.html +++ b/index.html @@ -1264,7 +1264,7 @@ const photo = tinderQueue[tinderIndex]; const card = el("tinder-card"); - tinderHistory.push({ path: photo.path, decision: direction, index: tinderIndex }); + tinderHistory.push({ path: photo.path, decision: direction, index: tinderIndex, wasFav: favoritePaths.has(photo.path) }); tinderDecisions[photo.path] = direction === "right" || direction === "fav"; if (direction === "fav") favoritePaths.add(photo.path); @@ -1286,7 +1286,7 @@ if (tinderSwiping || tinderHistory.length === 0) return; const last = tinderHistory.pop(); delete tinderDecisions[last.path]; - favoritePaths.delete(last.path); + if (last.wasFav) favoritePaths.add(last.path); else favoritePaths.delete(last.path); tinderIndex = last.index; const backAnim = last.decision === "left" ? "back-from-left" : last.decision === "fav" ? "back-from-top" diff --git a/server.py b/server.py index 339ecd9..5e833bb 100644 --- a/server.py +++ b/server.py @@ -31,13 +31,18 @@ load_dotenv() def cleanup_old_uploads(): - """Löscht beim Start alle alten onlyframes-tmp-Ordner.""" + """Löscht onlyframes-tmp-Ordner die älter als 24h sind.""" tmp = tempfile.gettempdir() + cutoff = time() - 24 * 3600 for name in os.listdir(tmp): if name.startswith("onlyframes-") and name != "onlyframes-server.log": path = os.path.join(tmp, name) if os.path.isdir(path): - shutil.rmtree(path, ignore_errors=True) + try: + if os.path.getmtime(path) < cutoff: + shutil.rmtree(path, ignore_errors=True) + except OSError: + pass cleanup_old_uploads()