@jasdfjibyf

Как отправить сообщение через APScheduler, не передавая аргумент message?

Функция, которую я хочу передать в scheduler
@dp.message_handler(commands=['цитата'])
async def random_quote(message: types.Message):
    x= quotes[randint(0,388)]
    await bot.send_message(message.from_user.id,x)


sync def hour_changer(callback_query: types.CallbackQuery):
    if callback_query.data == 'current_time|06:00': 
        await bot.send_message(callback_query.from_user.id,' \nХорошо, буду присылать сообщения в 06:00')
        await bot.answer_callback_query(callback_query.id,text='Выбрано') 
        scheduler= AsyncIOScheduler(timezone="Europe/Moscow")
        scheduler.add_job(random_quote,'cron',day_of_week='mon-sun', hour=19,minute=6,kwargs={'message': 'message.from_user.id'})


До этого была ошибка : The following arguments have not been supplied: message, пока я не вставил в scheduler kwargs={'message': 'message.from_user.id'}, теперь просто ничего не происходит, ни ошибки, ни выполнения кода
  • Вопрос задан
  • 554 просмотра
Решения вопроса 1
Wispik
@Wispik
Сделай отдельную функцию:
async def send_random_quote(message_id):
    x= quotes[randint(0,388)]
    await bot.send_message(message_id, x)

И используй ее:
scheduler.add_job(send_random_quote,'cron',day_of_week='mon-sun', hour=19,minute=6,kwargs={'message_id':  callback_query.from_user.id})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы