Path: blob/master/bot/core/telegram_manager.py
1628 views
from pyrogram import Client, enums1from pyrogram.types import LinkPreviewOptions2from asyncio import Lock34from .. import LOGGER5from .config_manager import Config678class TgClient:9_lock = Lock()10bot = None11user = None12NAME = ""13ID = 014IS_PREMIUM_USER = False15MAX_SPLIT_SIZE = 20971520001617@classmethod18async def start_bot(cls):19LOGGER.info("Creating client from BOT_TOKEN")20cls.ID = Config.BOT_TOKEN.split(":", 1)[0]21cls.bot = Client(22cls.ID,23Config.TELEGRAM_API,24Config.TELEGRAM_HASH,25proxy=Config.TG_PROXY,26bot_token=Config.BOT_TOKEN,27workdir="/app",28parse_mode=enums.ParseMode.HTML,29max_concurrent_transmissions=10,30max_message_cache_size=15000,31max_topic_cache_size=15000,32sleep_threshold=0,33link_preview_options=LinkPreviewOptions(is_disabled=True),34)35await cls.bot.start()36cls.NAME = cls.bot.me.username3738@classmethod39async def start_user(cls):40if Config.USER_SESSION_STRING:41LOGGER.info("Creating client from USER_SESSION_STRING")42try:43cls.user = Client(44"user",45Config.TELEGRAM_API,46Config.TELEGRAM_HASH,47proxy=Config.TG_PROXY,48session_string=Config.USER_SESSION_STRING,49workdir="/app",50parse_mode=enums.ParseMode.HTML,51sleep_threshold=60,52max_concurrent_transmissions=10,53max_message_cache_size=15000,54max_topic_cache_size=15000,55link_preview_options=LinkPreviewOptions(is_disabled=True),56)57await cls.user.start()58cls.IS_PREMIUM_USER = cls.user.me.is_premium59if cls.IS_PREMIUM_USER:60cls.MAX_SPLIT_SIZE = 419430400061except Exception as e:62LOGGER.error(f"Failed to start client from USER_SESSION_STRING. {e}")63cls.IS_PREMIUM_USER = False64cls.user = None6566@classmethod67async def stop(cls):68async with cls._lock:69if cls.bot:70await cls.bot.stop()71if cls.user:72await cls.user.stop()73LOGGER.info("Client(s) stopped")7475@classmethod76async def reload(cls):77async with cls._lock:78await cls.bot.restart()79if cls.user:80await cls.user.restart()81LOGGER.info("Client(s) restarted")828384