#!/usr/bin/env python3
# -*- coding: utf-8 -*-

#======================================================================
# 1. POPIS
#======================================================================
#
# Skript automaticky rozpozná operačný systém:
#
#   Windows  -> použije Windows cesty
#   Linux    -> použije Linux/Raspberry Pi cesty
#
# Vďaka tomu môžeš používať jeden Python skript na Windows aj
# Raspberry Pi bez ručnej zmeny INPUT_M3U a OUTPUT_M3U.
#
#======================================================================


#======================================================================
# 2. IMPORT KNIŽNÍC
#======================================================================

import platform
import requests
import re
import json
import time

from pathlib import Path
from datetime import datetime, timezone, timedelta


#======================================================================
# 3. ROZPOZNANIE OPERAČNÉHO SYSTÉMU
#======================================================================
#
# platform.system() vráti napríklad:
#
#   Windows
#   Linux
#   Darwin
#
#======================================================================

SYSTEM = platform.system()

print()
print("Operačný systém:", SYSTEM)


#======================================================================
# 4. NASTAVENIE CIEST PODĽA OS
#======================================================================
#
# Windows:
#   D:\RPI5\PREMIUM\
#
# Linux / Raspberry Pi:
#   /media/apk/test_sweet/Generator/PREMIUM/
#
#======================================================================

if SYSTEM == "Windows":

    BASE_DIR = Path(
        r"D:\RPI5\PREMIUM"
    )

elif SYSTEM == "Linux":

    BASE_DIR = Path(
        "/media/apk/test_sweet/Generator/PREMIUM"
    )

else:

    print()
    print("CHYBA: Nepodporovaný operačný systém:", SYSTEM)

    raise SystemExit(1)


#======================================================================
# 5. VSTUPNÝ A VÝSTUPNÝ SÚBOR
#======================================================================
#
# Cesty sa vytvoria automaticky podľa zisteného OS.
#
# Windows:
#   D:\RPI5\PREMIUM\vod.m3u
#
# Linux:
#   /media/apk/test_sweet/Generator/PREMIUM/vod.m3u
#
#======================================================================

INPUT_M3U = BASE_DIR / "vod.m3u"

OUTPUT_M3U = BASE_DIR / "catchup_hu1.m3u"


#======================================================================
# 6. KONTROLA CESTY
#======================================================================

print("BASE DIR :", BASE_DIR)
print("INPUT    :", INPUT_M3U)
print("OUTPUT   :", OUTPUT_M3U)


#======================================================================
# 7. FREE KANÁLY
#======================================================================
#
# CID uvedené tu používajú OpenStream BEZ Bearer tokenu.
#
#======================================================================

FREE_CIDS = {
    "2967",
}


#======================================================================
# 8. ACCESS TOKEN
#======================================================================
#
# Token pre ostatné kanály.
#
#======================================================================

ACCESS_TOKEN = "SEM_VLOZ_TVOJ_TOKEN"


#======================================================================
# 9. API
#======================================================================

OPEN_STREAM_API = (
    "https://api.sweet.tv/TvService/OpenStream.json"
)

EPG_URL_TEMPLATE = (
    "https://staticeu.sweet.tv/tv/epg/v3/{cid}/{date}/hu.json"
)


#======================================================================
# 10. NASTAVENIA
#======================================================================

DAYS_BACK = 7

TIMEOUT = 20

DELAY = 0.15

USER_AGENT = "LiveTV"


#======================================================================
# 11. ĎALŠÍ KÓD SKRIPTU
#======================================================================
#
# Od tejto časti môže pokračovať pôvodný skript:
#
#   session
#   auth_headers()
#   load_channels()
#   get_epg()
#   open_dvr()
#   format_time()
#   main()
#
# Nemusíš už meniť INPUT_M3U ani OUTPUT_M3U.
#
#======================================================================

