From c9e69b72ccec7b37a222a83b466a50aba1a57c69 Mon Sep 17 00:00:00 2001 From: Dmitry Afanasyev Date: Thu, 15 Sep 2022 11:19:28 +0300 Subject: [PATCH] extend morning job kwargs --- app/core/bot.py | 11 +++++++++-- app/core/scheduler.py | 43 +++++++++++++++++++++++++++---------------- 2 files changed, 36 insertions(+), 18 deletions(-) diff --git a/app/core/bot.py b/app/core/bot.py index 490fa66..8a11e39 100644 --- a/app/core/bot.py +++ b/app/core/bot.py @@ -90,7 +90,9 @@ class TransportBot: ) @staticmethod - async def morning_bus_mailing(chat_ids: list[int] | None) -> None: + async def morning_bus_mailing( + chat_ids: list[int] | None, show_keyboard: bool = False + ) -> None: if not chat_ids: return None @@ -104,10 +106,15 @@ class TransportBot: 'т19', ], ) + kwargs = {'reply_markup': TransportBot.get_keyboard()} if show_keyboard else {} + await asyncio.gather( *[ TransportBot.bot.send_message( - chat_id=chat_id, text=text, parse_mode=types.ParseMode.HTML + chat_id=chat_id, + text=text, + parse_mode=types.ParseMode.HTML, + **kwargs ) for chat_id in chat_ids ] diff --git a/app/core/scheduler.py b/app/core/scheduler.py index ad6c1a2..ab29bdc 100644 --- a/app/core/scheduler.py +++ b/app/core/scheduler.py @@ -9,25 +9,32 @@ bot_cron_jobs = { 'job': TransportBot.morning_bus_mailing, 'cron': [ { - 'trigger': 'cron', - 'day_of_week': 'mon-fri', - 'hour': 8, - 'minute': 59, - 'second': 0, + 'time': { + 'trigger': 'cron', + 'day_of_week': 'mon-fri', + 'hour': 8, + 'minute': 59, + 'second': 0, + }, }, { - 'trigger': 'cron', - 'day_of_week': 'mon-fri', - 'hour': 9, - 'minute': 4, - 'second': 0, + 'time': { + 'trigger': 'cron', + 'day_of_week': 'mon-fri', + 'hour': 9, + 'minute': 4, + 'second': 0, + }, }, { - 'trigger': 'cron', - 'day_of_week': 'mon-fri', - 'hour': 9, - 'minute': 9, - 'second': 0, + 'time': { + 'trigger': 'cron', + 'day_of_week': 'mon-fri', + 'hour': 9, + 'minute': 9, + 'second': 0, + }, + 'kwargs_per_job': {'show_keyboard': True}, }, ], 'func_kwargs': { @@ -54,7 +61,11 @@ class BotScheduler: return None for cron in cron_jobs['cron']: self.scheduler.add_job( - cron_jobs['job'], kwargs=cron_jobs.get('func_kwargs'), **cron + cron_jobs['job'], + kwargs=dict( + **cron_jobs.get('func_kwargs'), **cron.get('kwargs_per_job', {}) + ), + **cron['time'], ) logger.info(f'Added scheduled job: {cron_jobs["job"].__name__} {cron}')