diff --git a/main.py b/main.py index 5719300..4b34c6e 100644 --- a/main.py +++ b/main.py @@ -10,6 +10,7 @@ from aiogram.client.default import DefaultBotProperties from aiogram.enums import ParseMode from aiohttp_socks import ProxyConnector from dotenv import load_dotenv +from aiogram.client.session.aiohttp import AiohttpSession load_dotenv() @@ -27,16 +28,28 @@ logger = logging.getLogger("TGPublisher") bot = None async def init_bot(): - """Инициализация бота с поддержкой прокси""" + """Инициализация бота с расширенными таймаутами и SOCKS5h""" global bot - connector = ProxyConnector.from_url(PROXY_URL) - # Используем сессию с прокси коннектором + + # 1. Настройка таймаутов (увеличиваем до 90 секунд) + # Это даст прокси-серверу больше времени на 'раскачку' + session = AiohttpSession( + proxy=PROXY_URL, + timeout=90.0 # Секунды + ) + bot = Bot( token=TG_TOKEN, - connector=connector, - default=DefaultBotProperties(parse_mode=ParseMode.HTML) # Используем HTML для надежности + session=session, # Передаем настроенную сессию + default=DefaultBotProperties(parse_mode=ParseMode.HTML) ) - logger.info(f"[*] Бот инициализирован через прокси {PROXY_URL}") + + # Проверка связи при старте + try: + me = await bot.get_me() + logger.info(f"[+] Бот авторизован: @{me.username} через прокси {PROXY_URL}") + except Exception as e: + logger.error(f"[!!!] Бот НЕ СМОГ авторизоваться: {e}") async def send_to_tg(text: str) -> bool: """Отправляет сообщение в канал. Возвращает True при успехе."""