import sys
import os

# Aggiungiamo forzatamente il percorso della libreria
sys.path.append('/home/nidran/.local/lib/python3.12/site-packages')

try:
    # Tentativo 1: Importazione con maiuscole (standard del repo)
    from StreamingCommunity.api import StreamingCommunityAPI
    from StreamingCommunity.downloader import Downloader
    print("Libreria caricata (StreamingCommunity)")
except ImportError:
    try:
        # Tentativo 2: Importazione tutto minuscolo (standard PyPI)
        from streamingcommunity.api import StreamingCommunityAPI
        from streamingcommunity.downloader import Downloader
        print("Libreria caricata (streamingcommunity)")
    except ImportError:
        print("Errore: Impossibile trovare la libreria anche nel percorso specificato.")
        sys.exit(1)

def main():
    url = input("\nInserisci il link di StreamingCommunity: ").strip()
    if not url:
        return

    try:
        api = StreamingCommunityAPI()
        content = api.get_content_from_url(url)
        print(f"\nContenuto: {content['name']} [{content['type']}]")

        # Se è una serie (tv)
        if content['type'] == 'tv':
            sid = input("Stagione (es. 1): ")
            eps = api.get_episodes(content['id'], sid)
            for e in eps:
                print(f"{e['number']}. {e['name']}")
            
            scelta = input("\nEpisodio (numero o 'all'): ")
            da_scaricare = eps if scelta == 'all' else [e for e in eps if str(e['number']) == scelta]
            
            for e in da_scaricare:
                print(f"Scaricando: {e['name']}...")
                url_m3u8 = api.get_stream_url(content['id'], e['id'])
                Downloader().download(url_m3u8, f"{content['name']}_S{sid}E{e['number']}.mp4")
        
        # Se è un film
        else:
            url_m3u8 = api.get_stream_url(content['id'])
            Downloader().download(url_m3u8, f"{content['name']}.mp4")

    except Exception as err:
        print(f"Errore durante l'esecuzione: {err}")

if __name__ == "__main__":
    main()