#!/usr/bin/env python3
"""
Interactive User Account Login Script for Telegram MTProto.
Creates and saves 'user_session.session' for downloading large files using a Telegram User Account.

API_ID: 26297341
API_HASH: 321267735440187bdd1f54fcb1f25612
"""

import os
import sys

API_ID = 26297341
API_HASH = "321267735440187bdd1f54fcb1f25612"

def main():
    base_dir = os.path.dirname(os.path.abspath(__file__))
    session_dir = os.path.join(base_dir, "temp")
    session_name = os.path.join(session_dir, "user_session")
    os.makedirs(session_dir, exist_ok=True)

    print("==========================================")
    print(" 🔑 Telegram User Account Login Utility")
    print("==========================================")
    print(f"API_ID: {API_ID}")
    print(f"Session Path: {session_name}.session")
    print("------------------------------------------")

    try:
        from pyrogram import Client

        print("\nConnecting using Pyrogram...")
        app = Client(session_name, api_id=API_ID, api_hash=API_HASH, workdir=session_dir)
        app.start()
        me = app.get_me()
        print("\n✅ Successfully logged in!")
        print(f"👤 User: {me.first_name} (ID: {me.id}, Username: @{me.username or 'N/A'})")
        print(f"📁 Session saved at: {session_name}.session")
        app.stop()
        sys.exit(0)

    except ImportError:
        pass

    try:
        from telethon import TelegramClient

        print("\nConnecting using Telethon...")
        client = TelegramClient(session_name, API_ID, API_HASH)
        client.start()
        me = client.loop.run_until_complete(client.get_me())
        print("\n✅ Successfully logged in!")
        print(f"👤 User: {getattr(me, 'first_name', 'User')} (ID: {getattr(me, 'id', 'N/A')}, Username: @{getattr(me, 'username', 'N/A')})")
        print(f"📁 Session saved at: {session_name}.session")
        client.disconnect()
        sys.exit(0)

    except ImportError:
        print("\n❌ Error: Neither 'pyrogram' nor 'telethon' is installed.")
        print("Run: pip install pyrogram tgcrypto  OR  pip install telethon")
        sys.exit(1)

if __name__ == "__main__":
    main()
