Merge pull request #2271 from BEDOLAGA-DEV/main

merge main
This commit is contained in:
PEDZEO
2026-01-12 22:25:49 +03:00
committed by GitHub
25 changed files with 3245 additions and 416 deletions
+38
View File
@@ -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
@@ -175,6 +176,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
@@ -270,6 +272,7 @@ async def main():
broadcast_service.set_bot(bot)
ban_notification_service.set_bot(bot)
traffic_monitoring_scheduler.set_bot(bot)
daily_subscription_service.set_bot(bot)
from app.services.admin_notification_service import AdminNotificationService
@@ -627,6 +630,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(
"Сервис проверки версий",
"📄",
@@ -691,6 +709,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 'Отключен'}",
]
@@ -745,6 +764,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(
"Сервис автопроверки пополнений остановился, пробуем перезапустить..."
@@ -814,6 +843,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()