import xml.etree.ElementTree as ET
from datetime import datetime, timedelta

INPUT = "/opt/epg/sweet_archiv_epg.xml"
OUTPUT = "/opt/epg/catchup.m3u"
BASE_URL = "https://epg-sw.duckdns.org/archive"

# Archív: posledné 3 dni + dnes
DAYS_BACK = 3

tree = ET.parse(INPUT)
root = tree.getroot()

now = datetime.now()
oldest_date = (now - timedelta(days=DAYS_BACK)).strftime("%Y%m%d")

with open(OUTPUT, "w", encoding="utf-8") as f:

    f.write("#EXTM3U\n\n")

    for programme in root.findall("programme"):

        cid = programme.get("channel")
        start = programme.get("start", "")[:14]

        title = programme.findtext("title") or "Unknown"

        if not cid or len(start) != 14:
            continue

        # iba posledné 3 dni + dnešok
        if start[:8] < oldest_date:
            continue

        url = f"{BASE_URL}/{cid}/{start}"

        f.write(
            f'#EXTINF:-1 tvg-id="{cid}" '
            f'tvg-name="{title}" '
            f'group-title="Catch-up",{title}\n'
        )

        f.write(f"{url}\n\n")


print(f"Catch-up M3U vytvorené: {OUTPUT}")