extend morning job kwargs

This commit is contained in:
Dmitry Afanasyev 2022-09-15 11:19:28 +03:00
parent 8280e02aed
commit c9e69b72cc
2 changed files with 36 additions and 18 deletions

View File

@ -90,7 +90,9 @@ class TransportBot:
) )
@staticmethod @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: if not chat_ids:
return None return None
@ -104,10 +106,15 @@ class TransportBot:
'т19', 'т19',
], ],
) )
kwargs = {'reply_markup': TransportBot.get_keyboard()} if show_keyboard else {}
await asyncio.gather( await asyncio.gather(
*[ *[
TransportBot.bot.send_message( 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 for chat_id in chat_ids
] ]

View File

@ -9,26 +9,33 @@ bot_cron_jobs = {
'job': TransportBot.morning_bus_mailing, 'job': TransportBot.morning_bus_mailing,
'cron': [ 'cron': [
{ {
'time': {
'trigger': 'cron', 'trigger': 'cron',
'day_of_week': 'mon-fri', 'day_of_week': 'mon-fri',
'hour': 8, 'hour': 8,
'minute': 59, 'minute': 59,
'second': 0, 'second': 0,
}, },
},
{ {
'time': {
'trigger': 'cron', 'trigger': 'cron',
'day_of_week': 'mon-fri', 'day_of_week': 'mon-fri',
'hour': 9, 'hour': 9,
'minute': 4, 'minute': 4,
'second': 0, 'second': 0,
}, },
},
{ {
'time': {
'trigger': 'cron', 'trigger': 'cron',
'day_of_week': 'mon-fri', 'day_of_week': 'mon-fri',
'hour': 9, 'hour': 9,
'minute': 9, 'minute': 9,
'second': 0, 'second': 0,
}, },
'kwargs_per_job': {'show_keyboard': True},
},
], ],
'func_kwargs': { 'func_kwargs': {
'chat_ids': [ 'chat_ids': [
@ -54,7 +61,11 @@ class BotScheduler:
return None return None
for cron in cron_jobs['cron']: for cron in cron_jobs['cron']:
self.scheduler.add_job( 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}') logger.info(f'Added scheduled job: {cron_jobs["job"].__name__} {cron}')