Задать вопрос
@david_androsenkopro
Учусь писать телеграм-ботов на Python

Как создать напоминание в телеграм боте? Напоминалка каждый месяц?

Помогите сделать бота, который каждый месяц будет присылать
сообщение напоминание каждому пользователю бота
То есть:
- напоминание каждый месяц
- всем пользователям бота
  • Вопрос задан
  • 3953 просмотра
Подписаться 2 Простой Комментировать
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
0. Ставишь aiogram и читаешь Quick start, чтобы понять, как в целом будет устроен бот.
1. Создаёшь и ведёшь базу пользователей бота, например, в sqlite3. Как её наполнять, это уже второй вопрос. Также может потребоваться отдельная таблица напомнинаний, но тебе виднее что за напоминания будут.
2. В боте создаёшь через asyncio.create_task() бесконечную задачу, которая
- проверяет время
- если сейчас подходящее время (скажем, полдень, 1е число месяца, плюс-минус 30 секунд), вызывает корутину уведомления пользователей,
- засыпает на минуту с помощью await asyncio.sleep() (ни в коем случае не time.sleep()).
3. Корутина уведомления пользователей должна извлекать из твоей базы уведомления, которые нужно отправить и id пользователей, которым эти уведомления нужно отправить (см. доки по sqlite3 как извлекать данные из БД запросом SELECT). Затем для каждого пользователя она должна отправить текст (см. доки по aiogram) и обработать возможное исключение (например, если пользователь заблокировал бота).
4. Может потребоваться пара обработчиков команд, чтобы добавлять/менять текст напоминаний.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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