This commit is contained in:
2026-06-13 22:47:31 +02:00
parent add3da5177
commit d1446fc452
8032 changed files with 2650751 additions and 1551 deletions

View File

@@ -8,6 +8,7 @@ import os
import shutil
import subprocess
import tempfile
import time
import wave
from datetime import datetime
from typing import List, Optional
@@ -45,6 +46,46 @@ def persist_audio_safe(temp_path: str) -> str:
return safe_path
def wait_for_audio_file_stable(
path: str,
*,
min_size: int = 1,
timeout: float = 3.0,
interval: float = 0.15,
) -> bool:
"""Wartet bis Audiodatei existiert, lesbar ist und die Groesse stabil bleibt."""
deadline = time.time() + max(0.1, float(timeout))
last_size = -1
stable_reads = 0
while time.time() < deadline:
try:
if not os.path.isfile(path):
stable_reads = 0
time.sleep(interval)
continue
size = os.path.getsize(path)
if size < min_size:
stable_reads = 0
last_size = size
time.sleep(interval)
continue
if size == last_size:
stable_reads += 1
else:
stable_reads = 0
last_size = size
time.sleep(interval)
continue
if stable_reads >= 2:
with open(path, "rb") as fh:
fh.read(1)
return True
except Exception:
stable_reads = 0
time.sleep(interval)
return False
def cleanup_old_audio_backups(max_age_days: int = 30):
"""Löscht Audio-Backups älter als max_age_days (nur erfolgreich transkribierte)."""
backup_dir = get_audio_backup_dir()