fix payment

This commit is contained in:
Yuriy Yuriev
2026-05-22 15:44:46 +07:00
parent 679cb40ec1
commit 61cf029744
8 changed files with 389 additions and 69 deletions
+24 -1
View File
@@ -13,6 +13,8 @@ from core.logger import setup_logger
from managers.proxy_manager import ProxyManager
from managers.background_tasks import BackgroundTaskManager
from services.browser_service import BrowserService
from services.browser_pool import BrowserPool
from services.webhook_server import HelketWebhookServer
from handlers.commands import BotInterface
from managers.storage import TaskStorage, ChatStorage
@@ -45,13 +47,16 @@ class BotApplication:
self.proxy_manager = ProxyManager()
self.background_tasks = BackgroundTaskManager()
self.browser_service = BrowserService(self.proxy_manager)
self.browser_pool = BrowserPool(settings.BROWSER_POOL_SIZE, self.browser_service)
self.storage = TaskStorage()
self.chat_storage = ChatStorage()
self.webhook_server: HelketWebhookServer = None # создаём после инициализации bot
self.interface = BotInterface(
background_tasks=self.background_tasks,
proxy_manager=self.proxy_manager,
browser_service=self.browser_service,
browser_pool=self.browser_pool,
storage=self.storage,
chat_storage=self.chat_storage,
bot_ref=self,
@@ -82,6 +87,21 @@ class BotApplication:
# Определяем типы прокси без явного протокола
await self.proxy_manager.detect_types()
# Запускаем пул браузеров
await self.browser_pool.start()
logger.info(f"Browser pool: {settings.BROWSER_POOL_SIZE} workers")
# Запускаем webhook-сервер для Heleket (только если настроен)
if settings.HELEKET_API_KEY:
self.webhook_server = HelketWebhookServer(
payment_storage=self.interface.payment_storage,
balance_storage=self.interface.balance_storage,
rub_storage=self.interface.rub_storage,
bot=self.bot,
port=settings.HELEKET_WEBHOOK_PORT,
)
await self.webhook_server.start()
# Восстанавливаем задачи
await self._restore_tasks()
@@ -165,6 +185,9 @@ class BotApplication:
await self.storage.save_tasks(tasks)
await self.background_tasks.cancel_all()
await self.browser_pool.stop()
if self.webhook_server:
await self.webhook_server.stop()
await self.browser_service.cleanup()
if self.bot:
await self.bot.session.close()