ytdlp / cache.py
kavion's picture
Refactor: Split app.py into modular files
f9edca2 unverified
Raw
History Blame Contribute Delete
1.23 kB
import os
import json
import time
from config import TEMP_DIR
def meta_path(file_id):
return os.path.join(TEMP_DIR, f"{file_id}.json")
def video_path(file_id):
return os.path.join(TEMP_DIR, f"{file_id}.mp4")
def save_meta(file_id, filename, expires_at):
"""Simpan metadata file ke disk."""
with open(meta_path(file_id), "w") as f:
json.dump({"filename": filename, "expires_at": expires_at}, f)
def load_meta(file_id):
"""Baca metadata file dari disk. Return None jika tidak ada."""
p = meta_path(file_id)
if not os.path.exists(p):
return None
try:
with open(p) as f:
return json.load(f)
except Exception:
return None
def cleanup_expired():
"""Hapus file temp (video + meta) yang sudah expired."""
now = time.time()
for fname in os.listdir(TEMP_DIR):
if not fname.endswith(".json"):
continue
fid = fname[:-5]
meta = load_meta(fid)
if meta and meta["expires_at"] < now:
try:
vp = video_path(fid)
if os.path.exists(vp):
os.remove(vp)
os.remove(meta_path(fid))
except Exception:
pass