Я работаю над ботом Telegram на основе Telegraf
, пытаясь выполнить скрипт на основе cron
. Я также использую MongoDB
для хранения пользовательских данных.
const CronJob = require('cron').CronJob;
const job = new CronJob('*/5 * * * * *', async function() {
const user = await db.User.findOne({chat_id: ctx.chat.id});
await bot.telegram.sendMessage(user.chat_id, 'Hello World');
})
bot.command('launch', async (ctx) => {
job.start()
})
bot.command('stop', async (ctx) => {
job.stop();
})
Получение пользователей из базы данных таким способом прекрасно работает для внутренних событий, когда пользователь взаимодействует с ботом, но не работает для внешних такие события, как уведомления и ctx
в этом случае отсутствуют.
Пожалуйста, предложите, как извлечь chat_id
из базы данных, используя ctx
, или, возможно, предложите другой обходной путь, не используя ctx
.