Files
pyrogram-bridge/telegram_client.py
T

40 lines
1.3 KiB
Python

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")