Телеграм бот, который по сообщению в свободном формате формирует событие и отмечает его в Google Calendar или добавляет задачу в Todoist. Бот помогает сэкономить время, обрабатывая неструктурированные текстовые запросы и создавая удобные напоминания и задачи.
-
Первоначальная настройка:
- Пользователь отправляет
/start, и бот предлагает ввести идентификаторы календаря и Todoist. - После подтверждения настроек бот приветствует пользователя и предлагает помощь.
- Пользователь отправляет
-
Добавление события:
- Пользователь отправляет сообщение вроде “Запланируй встречу с Олегом завтра в 15:20”.
- Бот парсит сообщение, распознавая ключевые элементы (время, название, место) и предлагает пользователю уточнить или подтвердить.
- После подтверждения бот создает событие в Google Calendar и отправляет подтверждение с деталями.
-
Добавление задачи:
- Пользователь пишет “Напомни сходить за продуктами в воскресенье”.
- Бот парсит по ключевым словам и создает задачу в Todoist. Пользователю приходит сообщение с подтверждением.
Telegram Bot:
- Пользовательский интерфейс. При первом использовании запрашивает у пользователя ссылки на его календарь и todo-list. Полученную информацию регистрирует в базе данных
- Принимает сообщения от пользователя и формирует из них запрос, содержащий текст сообщения, id пользователя, время и дату сообщения, после чего отправляет запрос процессору.
- После выполнения запроса возвращает пользователю ответ.
Registration module: От модуля регистрации было принято отказаться.
- Принимает данные регистрации от пользователя, проверяет их на корректность и, при корректрости, отправляет их в БД, иначе возвращает сообщение об ошибке
База данных:
- Содержит информацию о пользователях: id в telegram, ссылки на Notion и Google Calendar, статус регистрации
GPT parser
- Обрабатывает сообщение от пользователя, вместе с датой и временем сообщения
- Формирует форматированный запрос
- Отправляет запрос в Processor
Processor: От процессора было решено отказаться. Запросы обрабатыаются самими модулями, функции вызываются в теле бота.
- Обрабатывает запрос
- Получает данные из БД
- Отправляет данные в нужный модуль
- Возвразает в Telegram module возможные сообщения об ошибке
Todoist module и Google Calendar module:
- Формирует событие или задачу
-
Святослав Полонский (tg: @pururus)
- Работа с запросами через API GPT
- Работа с Google Calendar
- Работа с базой данных пользователей
-
Лиза Зорькина (tg: @lizyn)
- Frontend (сам бот)
- API Todoist
Сейчас все модули уже работают, но все еще есть некоторые моменты, требующие доработки.
-
Бот обрабатывает регистрацию пользователей, а также запросы в свободном формате, определяя их тип.
-
Парсер хорошо определяет тип запроса и название мероприятия/цели.
-
Также есть возможность указывать, какой тип запроса отправляется, через соответствующие кнопки.
-
✅Документация:
- Добавить описание ко всем функциям, методам и классам.
-
✅Оптимизация кода:
- Почистить код от избыточных условных конструкций и повторений.
-
✅Улучшение парсера:
- Доработать парсер для более точного распознавания времени, даты и формата задач.
-
Улучшение UI:
- Добавить персонализированные сообщения об ошибках и успешных действиях:
- Например, "Не удалось добавить событие. Проверьте формат времени.".
- Добавить персонализированные сообщения об ошибках и успешных действиях:
-
✅ Команды для обновления идентификаторов:
- Добавить команды
/update_calendarи/update_todoist, чтобы пользователь мог изменить свой идентификатор Google Calendar или API-токен Todoist:
-
✅Асинхронность:
- Перевести работу с базой данных и API на асинхронные функции.
-
✅Проверка валидности идентификаторов:
- Для Google Calendar: Проверять существование календаря через API.
- Для Todoist: Отправлять тестовый запрос для проверки токена.
- ✅ Добавление новых команд:
- Например, команда
/helpдля справки по использованию бота. - Команда
/statusдля проверки текущих идентификаторов.
- Расширение функционала парсера:
- Реализовать обработку повторяющихся событий (например, "каждую неделю").
По идее, успеваем это доделать к защите))
