mirror of
https://github.com/snoups/remnashop.git
synced 2026-04-21 10:22:00 +00:00
Implement SOCKS5 proxy support for Bot
Added support for SOCKS5 proxy in Bot initialization.
This commit is contained in:
@@ -2,8 +2,10 @@ from collections.abc import AsyncIterable
|
||||
|
||||
from aiogram import Bot
|
||||
from aiogram.client.default import DefaultBotProperties
|
||||
from aiogram.client.session.aiohttp import AiohttpSession
|
||||
from aiogram.enums import ParseMode
|
||||
from aiogram_dialog import BgManagerFactory
|
||||
from aiohttp_socks import ProxyConnector
|
||||
from dishka import Provider, Scope, from_context, provide
|
||||
from loguru import logger
|
||||
|
||||
@@ -19,9 +21,17 @@ class BotProvider(Provider):
|
||||
async def get_bot(self, config: AppConfig) -> AsyncIterable[Bot]:
|
||||
logger.debug("Initializing Bot instance")
|
||||
|
||||
session = None
|
||||
if config.bot.proxy_url:
|
||||
proxy = config.bot.proxy_url.get_secret_value()
|
||||
logger.info(f"Using SOCKS5 proxy for Telegram: {proxy}")
|
||||
connector = ProxyConnector.from_url(proxy)
|
||||
session = AiohttpSession(connector=connector)
|
||||
|
||||
async with Bot(
|
||||
token=config.bot.token.get_secret_value(),
|
||||
default=DefaultBotProperties(parse_mode=ParseMode.HTML),
|
||||
session=session,
|
||||
) as bot:
|
||||
yield bot
|
||||
|
||||
|
||||
Reference in New Issue
Block a user