MediaProcessing/apps/pyWatcher/utils/readiness.py
2026-01-02 01:09:26 +01:00

22 lines
676 B
Python

import os
import asyncio
from models.event import create_event, FileReadyEvent
async def file_is_ready(path: str, wait: float = 1.0) -> bool:
try:
size1 = os.path.getsize(path)
await asyncio.sleep(wait)
size2 = os.path.getsize(path)
return size1 == size2
except Exception:
return False
async def check_ready(db, ref_id: str, file_name: str, file_uri: str, insert_event):
for _ in range(5):
await asyncio.sleep(2)
if await file_is_ready(file_uri):
ev = create_event(FileReadyEvent, file_name, file_uri, reference_id=ref_id)
insert_event(db, ev)
return ev
return None