Загрузить файлы в «/»
This commit is contained in:
67
_config.py
Normal file
67
_config.py
Normal file
@@ -0,0 +1,67 @@
|
||||
from concurrent.futures import ThreadPoolExecutor
|
||||
import threading
|
||||
from cachetools import TTLCache
|
||||
import threading
|
||||
import shutil
|
||||
import tempfile
|
||||
import os
|
||||
import glob
|
||||
import time
|
||||
from YTProcessing import *
|
||||
import redis
|
||||
|
||||
CHUNK_SIZE = 256 * 1024
|
||||
PRE_BUFFER_MB = 5
|
||||
QUEUE_SIZE = 64
|
||||
HOME_HTML = 'templates/Home.html'
|
||||
PLAYER_HTML = 'templates/Player.html'
|
||||
|
||||
executor = ThreadPoolExecutor(max_workers=8)
|
||||
info_cache = TTLCache(maxsize=50, ttl=1800)
|
||||
cache_lock = threading.Lock()
|
||||
_progress: dict = {}
|
||||
|
||||
def cleanup_old_tempfiles():
|
||||
while True:
|
||||
try:
|
||||
tmp_base = tempfile.gettempdir()
|
||||
cutoff = time.time() - 3600
|
||||
for folder in glob.glob(os.path.join(tmp_base, 'tmp*')):
|
||||
if os.path.isdir(folder) and os.path.getmtime(folder) < cutoff:
|
||||
shutil.rmtree(folder, ignore_errors=True)
|
||||
except Exception:
|
||||
pass
|
||||
time.sleep(600)
|
||||
|
||||
try:
|
||||
redis_client = redis.Redis(host='localhost', port=6379, db=0, decode_responses=True)
|
||||
redis_client.ping()
|
||||
USE_REDIS = True
|
||||
print("Redis connected — using Redis for progress tracking.")
|
||||
except Exception:
|
||||
USE_REDIS = False
|
||||
print("Redis not available — using in-memory progress tracking.")
|
||||
|
||||
|
||||
|
||||
|
||||
def cleanup_old_tempfiles():
|
||||
while True:
|
||||
try:
|
||||
cutoff = time.time() - 3600
|
||||
for folder in glob.glob(os.path.join(tempfile.gettempdir(), 'tmp*')):
|
||||
if os.path.isdir(folder) and os.path.getmtime(folder) < cutoff:
|
||||
shutil.rmtree(folder, ignore_errors=True)
|
||||
except Exception:
|
||||
pass
|
||||
time.sleep(600)
|
||||
|
||||
threading.Thread(target=cleanup_old_tempfiles, daemon=True).start()
|
||||
def set_progress(url: str, data: dict):
|
||||
_progress[url] = data
|
||||
|
||||
def get_progress(url: str) -> dict:
|
||||
return _progress.get(url, {'percent': 0, 'speed': '', 'eta': ''})
|
||||
|
||||
def clear_progress(url: str):
|
||||
_progress.pop(url, None)
|
||||
Reference in New Issue
Block a user