Ерем Шахбазян › Erem01 Сбер ID
Боты и сайты под ключ | Автоматизация| Интеграции с CRM
Рейтинг
21 721
№ 44 в каталоге
Отзывы
Профессионализм
9/10
Коммуникация
9 /10
Город
Москва
Опыт работы
5 лет
На сайте с
2025 года
Юридический статус
Самозанятый

Telegram-бот напоминаний на обычном русском языке: «завтра в 15:00 позвонить клиенту», «каждый понедельник в 9 отчёт» — повторы, часовые пояса, «отложить»

Используемые навыки Bot Development Docker Python SQLite Telegram API

Описание

Обычные боты-напоминалки заставляют пролистывать календари и крутить часы кнопками — на это уходит больше времени, чем на саму задачу. Хотелось, чтобы можно было просто написать боту фразу, как человеку, и он сам понял дату, время и повтор.

За основу взял открытый бот-напоминалку dome272/Telegram-Reminder-Bot (2020 год). Он не запускался с актуальной версией библиотеки Telegram и терял все напоминания при каждом перезапуске.

Решение

Переписал бота на Python и aiogram 3 с хранением в SQLite и написал разбор напоминаний на обычном русском языке: «завтра в 15:00 …», «через полтора часа …», «в пятницу в 9:30 …», «15 октября в 18:00 …», «20.10 …», «в 7 вечера …», а также повторы — «каждый день», «по будням», «каждый понедельник», «каждое 1 число». Если фраза непонятна или время невозможное, бот объясняет, как написать правильно.

Добавил кнопки «+10 мин», «+1 час» и «Готово» у сработавшего напоминания, список с удалением, выбор часового пояса — от Калининграда до Камчатки; повторы держат местное время и при переходе на летнее/зимнее время. Напоминания хранятся в базе и переживают перезапуск: если бот был выключен в момент срабатывания, напоминание придёт после запуска с пометкой об опоздании.

Исправил ошибки оригинала: «12 PM» превращалось в полночь следующего дня, бот писал «через 10 минут», хотя срабатывал ровно в срок, часовой пояс считался от часов сервера, у нового пользователя падали команды. 59 автотестов, включая сквозные через диспетчер aiogram с управляемыми часами.

Результат

Бот, которому достаточно написать фразу — и он напомнит вовремя, один раз или по расписанию, в часовом поясе пользователя, ничего не теряя при перезапуске сервера. Такой разбор фраз можно встроить в любой бот: записи к мастеру, задачи для сотрудников, напоминания клиентам об оплате.

Проект — открытый форк с сохранением лицензии MIT и указанием автора оригинала; в README подробно расписано, что изменено и почему.

Оценили проект:

Другие проекты

Все проекты →
Веб-разработка и IT Система онлайн-продажи и проверки электронных билетов для музея
Система онлайн-продажи и проверки электронных билетов для музея
193
Веб-разработка и IT Сервис аналитики платежей с интеграциями банковских API и автоматическими отчётами
Сервис аналитики платежей с интеграциями банковских API и автоматическими отчётами
244
Веб-разработка и IT Развёртывание и настройка отказоустойчивой серверной инфраструктуры для онлайн-сервиса
Развёртывание и настройка отказоустойчивой серверной инфраструктуры для онлайн-сервиса
216
Веб-разработка и IT Восстановление сайта сервисного центра Remzzzona из веб-архива и перенос с 1С-Битрикс на WordPress: 71 страница, услуги, прайсы, заявка
Восстановление сайта сервисного центра Remzzzona из веб-архива и перенос с 1С-Битрикс на WordPress: 71 страница, услуги, прайсы, заявка
77