import logging import os from pyrogram import Client from config import get_settings logger = logging.getLogger(__name__) settings = get_settings() class TelegramClient: def __init__(self): self._ensure_session_directory() self.client = Client( name="pyro_bridge", api_id=settings["tg_api_id"], api_hash=settings["tg_api_hash"], workdir=settings["session_path"], ) def _ensure_session_directory(self): try: os.makedirs(settings["session_path"], exist_ok=True) logger.debug(f'Session directory created/verified: {settings["session_path"]}') except Exception as e: logger.error(f'Failed to create session directory {settings["session_path"]}: {str(e)}') raise async def start(self): try: if not self.client.is_connected: await self.client.start() logger.info("Telegram client connected successfully") except Exception as e: logger.error(f"Failed to start Telegram client: {str(e)}") raise async def stop(self): if self.client.is_connected: await self.client.stop() logger.info("Telegram client disconnected")