From 8b88344faceee1afeb969b26cae74b3524a48d43 Mon Sep 17 00:00:00 2001 From: Admin Date: Tue, 13 Oct 2026 20:52:48 +0400 Subject: [PATCH] fix(scheduler): disable public chat weather broadcasts for LenKom37 --- services/scheduler.py | 61 +++++++++++++++++++++++++++---------------- 1 file changed, 39 insertions(+), 22 deletions(-) diff --git a/services/scheduler.py b/services/scheduler.py index 3bc0920..2872a58 100644 --- a/services/scheduler.py +++ b/services/scheduler.py @@ -21,7 +21,7 @@ class Scheduler: def __init__(self, bot): self.bot = bot - self.scheduler = AsyncIOScheduler() + self.scheduler = AsyncIOScheduler(timezone='Europe/Ulyanovsk') def start(self): """Запуск планировщика""" @@ -141,25 +141,24 @@ class Scheduler: ) logger.info('✅ Добавлена задача ежедневного прогноза погоды для админа') - # Еженедельный прогноз в чат по понедельникам (в 09:00) - self.scheduler.add_job( - self.monday_chat_weather, - CronTrigger.from_crontab('0 9 * * 1'), # Пн в 09:00 - id='monday_chat_weather', - name='Прогноз погоды в чат (Понедельник)', - replace_existing=True - ) - logger.info('✅ Добавлена задача прогноза погоды в чат по понедельникам') - - # Еженедельный прогноз в чат по четвергам (в 09:00) - self.scheduler.add_job( - self.thursday_chat_weather, - CronTrigger.from_crontab('0 9 * * 4'), # Чт в 09:00 - id='thursday_chat_weather', - name='Прогноз погоды в чат (Четверг)', - replace_existing=True - ) - logger.info('✅ Добавлена задача прогноза погоды в чат по четвергам') + # [ОТКЛЮЧЕНО ПО ТЗ] Еженедельный прогноз в чат по понедельникам и четвергам отключен для группы дома + # Жильцы начали активнее общаться, прогноз погоды в общей группе больше не требуется. + # Личный прогноз для Александра (daily_admin_weather) выше остается активным. + # self.scheduler.add_job( + # self.monday_chat_weather, + # CronTrigger.from_crontab('0 9 * * 1'), + # id='monday_chat_weather', + # name='Прогноз погоды в чат (Понедельник)', + # replace_existing=True + # ) + # self.scheduler.add_job( + # self.thursday_chat_weather, + # CronTrigger.from_crontab('0 9 * * 4'), + # id='thursday_chat_weather', + # name='Прогноз погоды в чат (Четверг)', + # replace_existing=True + # ) + logger.info('ℹ️ Прогноз погоды в общий чат дома отключен по требованию председателя') # Еженедельный дайджест Александра (суббота в 08:00) self.scheduler.add_job( @@ -550,8 +549,17 @@ class Scheduler: """Прогноз в чат по понедельникам (на 3 дня)""" try: from services.weather import WeatherService - from config import ADMIN_CHAT_ID + from config import ADMIN_CHAT_ID, ADMIN_USER_ID forecast = await WeatherService.get_3day_forecast() + if not forecast or forecast.startswith("❌"): + logger.warning(f"Monday weather forecast failed: {forecast}") + await self.bot.send_message( + ADMIN_USER_ID, + f"⚠️ Внимание: Не удалось сгенерировать прогноз погоды на понедельник для общего чата:\n{forecast}", + parse_mode='HTML' + ) + return + await self.bot.send_message( ADMIN_CHAT_ID, forecast, @@ -565,8 +573,17 @@ class Scheduler: """Прогноз в чат по четвергам (на остаток недели и выходные)""" try: from services.weather import WeatherService - from config import ADMIN_CHAT_ID + from config import ADMIN_CHAT_ID, ADMIN_USER_ID forecast = await WeatherService.get_thursday_weekend_broadcast() + if not forecast or forecast.startswith("❌"): + logger.warning(f"Thursday weather forecast failed: {forecast}") + await self.bot.send_message( + ADMIN_USER_ID, + f"⚠️ Внимание: Не удалось сгенерировать прогноз погоды на четверг для общего чата:\n{forecast}", + parse_mode='HTML' + ) + return + await self.bot.send_message( ADMIN_CHAT_ID, forecast,