This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
"""Configuration constants and EPG timespan parsing."""
|
||||
|
||||
import os
|
||||
import re
|
||||
from pathlib import Path
|
||||
|
||||
DATA_ROOT = Path("/data")
|
||||
MOVIES_ROOT = Path("/movies")
|
||||
SERIES_ROOT = Path("/series")
|
||||
CHANNELS_FILE = DATA_ROOT / "channels.json"
|
||||
VIDEO_EXTENSIONS = {".mkv", ".mp4", ".avi", ".mov", ".m4v", ".webm", ".wmv"}
|
||||
DEFAULT_DURATION_SEC = 3600
|
||||
|
||||
# EPG timespan (parsed from EPG_TIMESPAN env)
|
||||
EPG_TIMESPAN_DAYS = 14.0
|
||||
EPG_TIMESPAN_SEC = 14.0 * 24 * 3600
|
||||
SCHEDULE_CACHE_TTL_SEC = (14 * 24 - 3) * 3600
|
||||
|
||||
|
||||
def _parse_epg_timespan(value: str) -> tuple[float, float]:
|
||||
"""Parse EPG_TIMESPAN env (e.g. '2d', '14d', '48h'). Returns (days, seconds)."""
|
||||
value = (value or "").strip().lower()
|
||||
if not value:
|
||||
return 14.0, 14.0 * 24 * 3600
|
||||
m = re.match(r"^(\d+(?:\.\d+)?)\s*([dh])?$", value)
|
||||
if not m:
|
||||
return 14.0, 14.0 * 24 * 3600
|
||||
num = float(m.group(1))
|
||||
unit = m.group(2) or "d"
|
||||
days = num / 24.0 if unit == "h" else num
|
||||
sec = days * 24 * 3600
|
||||
return days, sec
|
||||
|
||||
|
||||
def init_epg_timespan() -> None:
|
||||
"""Load EPG_TIMESPAN from env and set EPG_* and SCHEDULE_CACHE_TTL_SEC."""
|
||||
global EPG_TIMESPAN_DAYS, EPG_TIMESPAN_SEC, SCHEDULE_CACHE_TTL_SEC
|
||||
days, sec = _parse_epg_timespan(os.environ.get("EPG_TIMESPAN", ""))
|
||||
EPG_TIMESPAN_DAYS = days
|
||||
EPG_TIMESPAN_SEC = sec
|
||||
schedule_ttl = sec - 3 * 3600
|
||||
SCHEDULE_CACHE_TTL_SEC = max(3600, schedule_ttl)
|
||||
|
||||
|
||||
init_epg_timespan()
|
||||
|
||||
# TMDB (The Movie Database) for EPG metadata — Dutch (nl). Set TMDB_API_KEY.
|
||||
TMDB_API_BASE = "https://api.themoviedb.org/3"
|
||||
TMDB_LANGUAGE = "nl"
|
||||
TMDB_CACHE_TTL_SEC = 24 * 3600
|
||||
TMDB_RATE_LIMIT_REQUESTS = 40
|
||||
TMDB_RATE_LIMIT_WINDOW_SEC = 10.0
|
||||
TMDB_CACHE_DIR = DATA_ROOT / "tmdb_cache"
|
||||
TMDB_IMAGE_BASE = "https://image.tmdb.org/t/p"
|
||||
TMDB_IMAGE_STILL_SIZE = "w500"
|
||||
|
||||
# Preferred audio languages for streaming
|
||||
PREFERRED_AUDIO_LANGUAGES = ("nld", "dut", "eng")
|
||||
Reference in New Issue
Block a user