mirror of
https://github.com/BEDOLAGA-DEV/remnawave-bedolaga-telegram-bot.git
synced 2026-01-20 03:40:26 +00:00
Update main.py
This commit is contained in:
38
main.py
38
main.py
@@ -36,6 +36,7 @@ from app.services.referral_contest_service import referral_contest_service
|
||||
from app.services.contest_rotation_service import contest_rotation_service
|
||||
from app.services.nalogo_queue_service import nalogo_queue_service
|
||||
from app.services.traffic_monitoring_service import traffic_monitoring_scheduler
|
||||
from app.services.daily_subscription_service import daily_subscription_service
|
||||
from app.utils.startup_timeline import StartupTimeline
|
||||
from app.utils.timezone import TimezoneAwareFormatter
|
||||
from app.utils.log_handlers import LevelFilterHandler, ExcludePaymentFilter
|
||||
@@ -174,6 +175,7 @@ async def main():
|
||||
maintenance_task = None
|
||||
version_check_task = None
|
||||
traffic_monitoring_task = None
|
||||
daily_subscription_task = None
|
||||
polling_task = None
|
||||
web_api_server = None
|
||||
telegram_webhook_enabled = False
|
||||
@@ -240,6 +242,7 @@ async def main():
|
||||
maintenance_service.set_bot(bot)
|
||||
broadcast_service.set_bot(bot)
|
||||
traffic_monitoring_scheduler.set_bot(bot)
|
||||
daily_subscription_service.set_bot(bot)
|
||||
|
||||
from app.services.admin_notification_service import AdminNotificationService
|
||||
|
||||
@@ -597,6 +600,21 @@ async def main():
|
||||
traffic_monitoring_task = None
|
||||
stage.skip("Мониторинг трафика отключен настройками")
|
||||
|
||||
async with timeline.stage(
|
||||
"Суточные подписки",
|
||||
"💳",
|
||||
success_message="Сервис суточных подписок запущен",
|
||||
) as stage:
|
||||
if daily_subscription_service.is_enabled():
|
||||
daily_subscription_task = asyncio.create_task(
|
||||
daily_subscription_service.start_monitoring()
|
||||
)
|
||||
interval_minutes = daily_subscription_service.get_check_interval_minutes()
|
||||
stage.log(f"Интервал проверки: {interval_minutes} мин")
|
||||
else:
|
||||
daily_subscription_task = None
|
||||
stage.skip("Суточные подписки отключены настройками")
|
||||
|
||||
async with timeline.stage(
|
||||
"Сервис проверки версий",
|
||||
"📄",
|
||||
@@ -661,6 +679,7 @@ async def main():
|
||||
f"Мониторинг: {'Включен' if monitoring_task else 'Отключен'}",
|
||||
f"Техработы: {'Включен' if maintenance_task else 'Отключен'}",
|
||||
f"Мониторинг трафика: {'Включен' if traffic_monitoring_task else 'Отключен'}",
|
||||
f"Суточные подписки: {'Включен' if daily_subscription_task else 'Отключен'}",
|
||||
f"Проверка версий: {'Включен' if version_check_task else 'Отключен'}",
|
||||
f"Отчеты: {'Включен' if reporting_service.is_running() else 'Отключен'}",
|
||||
]
|
||||
@@ -715,6 +734,16 @@ async def main():
|
||||
traffic_monitoring_scheduler.start_monitoring()
|
||||
)
|
||||
|
||||
if daily_subscription_task and daily_subscription_task.done():
|
||||
exception = daily_subscription_task.exception()
|
||||
if exception:
|
||||
logger.error(f"Сервис суточных подписок завершился с ошибкой: {exception}")
|
||||
if daily_subscription_service.is_enabled():
|
||||
logger.info("🔄 Перезапуск сервиса суточных подписок...")
|
||||
daily_subscription_task = asyncio.create_task(
|
||||
daily_subscription_service.start_monitoring()
|
||||
)
|
||||
|
||||
if auto_verification_active and not auto_payment_verification_service.is_running():
|
||||
logger.warning(
|
||||
"Сервис автопроверки пополнений остановился, пробуем перезапустить..."
|
||||
@@ -784,6 +813,15 @@ async def main():
|
||||
except asyncio.CancelledError:
|
||||
pass
|
||||
|
||||
if daily_subscription_task and not daily_subscription_task.done():
|
||||
logger.info("ℹ️ Остановка сервиса суточных подписок...")
|
||||
daily_subscription_service.stop_monitoring()
|
||||
daily_subscription_task.cancel()
|
||||
try:
|
||||
await daily_subscription_task
|
||||
except asyncio.CancelledError:
|
||||
pass
|
||||
|
||||
logger.info("ℹ️ Остановка сервиса отчетов...")
|
||||
try:
|
||||
await reporting_service.stop()
|
||||
|
||||
Reference in New Issue
Block a user