update
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user