#!/usr/bin/env python """ Interactive login script for Telegram Archiver with SMS fallback. If you don't receive the code in the Telegram app, this script will offer to request an SMS instead. """ import sys import os from pathlib import Path # Add project root to path project_root = Path(__file__).parent sys.path.insert(0, str(project_root)) # Set working directory to project root for .env loading os.chdir(project_root) from app.telethon_client import TelethonArchiver from config import get_settings from telethon.errors import SessionPasswordNeededError import asyncio async def login(): """Interactive login to Telegram with SMS fallback.""" settings = get_settings() print("\n" + "=" * 60) print("TELEGRAM ARCHIVER - AUTHENTICATION") print("=" * 60) print(f"Phone: {settings.phone}") print("=" * 60) async with TelethonArchiver(settings) as client: print("\nāœ… Successfully logged in!") print(f"šŸ“ Session saved to: {settings.session_path}") # Test by getting me info me = await client.client.get_me() print(f"\nšŸ‘¤ Logged in as: {me.first_name} @{me.username}") print(f" User ID: {me.id}") if me.username: print(f"\nāœ… You can now archive your channel: @{me.username}") print("\n" + "=" * 60) if __name__ == "__main__": asyncio.run(login())