#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
default.py – punto di ingresso dell'add-on plugin.video.torproxy

Modalità di utilizzo:
  1. Addon standalone  → apre il menu principale (schedule sport, canali)
  2. Proxy per altri addon → riceve mode=proxy&url=... e riproduce lo stream
"""

import sys
import xbmc
import xbmcaddon
from urllib.parse import parse_qsl

from tor_manager import TorManager, test_tor

try:
    from main import router
except Exception as exc:
    xbmc.log(f"[TorThegroove] ERRORE import router: {exc}", xbmc.LOGERROR)
    router = None


def _log(msg: str, level: int = xbmc.LOGINFO) -> None:
    xbmc.log(f"[TorThegroove] {msg}", level)


def run() -> None:
    # Legge i parametri passati da Kodi / addon chiamante
    params = dict(parse_qsl(sys.argv[2][1:])) if len(sys.argv) > 2 else {}
    mode   = params.get('mode', '')

    # ── Modalità proxy (chiamata da TheGroove o altri addon) ─────────────
    # In questo caso saltiamo test e inizializzazione pesante —
    # andiamo direttamente al router che gestirà play_via_tor()
    if mode == 'proxy':
        if router:
            try:
                router(params)
            except Exception as exc:
                _log(f"ERRORE nel router (proxy): {exc}", xbmc.LOGERROR)
        return

    # ── Modalità standalone (utente apre l'addon direttamente) ───────────
    _log("=== AVVIO ADDON STANDALONE ===")
    _log("Test Tor: " + test_tor())

    if router:
        try:
            router(params)
        except Exception as exc:
            _log(f"ERRORE nel router: {exc}", xbmc.LOGERROR)
    else:
        _log("Router non disponibile.", xbmc.LOGWARNING)


if __name__ == "__main__":
    try:
        run()
    except Exception as exc:
        _log(f"ERRORE IMPREVISTO: {exc}", xbmc.LOGERROR)
        raise
