Telegram-бот, который создает задачи в Todoist через API. Создан на Python с использованием async/await для оптимальной производительности.
- ✅ Поддержка Async/Await: Построен с
AsyncTeleBotдля высокой производительности - ✅ Сообщение в Задачу: Каждое сообщение становится задачей в Todoist
- ✅ Поддержка Нескольких Пользователей: У каждого пользователя свой API токен Todoist
- ✅ Защита от Дублирования: Предотвращает повторные задачи используя ID сообщений Telegram
- ✅ Обработка Ошибок: Понятные сообщения об ошибках когда Todoist недоступен
- ✅ Безопасность: Чувствительные токены хранятся в переменных окружения
# Установить зависимости
pip install -r requirements.txt
# Установить переменные окружения
export TELEGRAM_BOT_TOKEN="ваш_токен_telegram_бота"- Токен Telegram Бота: Создайте бота через @BotFather
- Токен Todoist: Получите на странице интеграций Todoist
python -m app.main/start- Приветственное сообщение и инструкции по настройке/help- Показать справочное сообщение
Просто отправьте ваш токен Todoist боту
Просто отправьте любое текстовое сообщение чтобы создать задачу:
Пользователь: "Купить молоко"
Бот: "✅ Задача создана: Купить молоко (Входящие, P3)"
Пользователь: "Позвонить стоматологу завтра"
Бот: "✅ Задача создана: Позвонить стоматологу завтра (Входящие, P3)"
├── app/
│ ├── __init__.py
│ ├── main.py # Точка входа и обработчики бота
│ ├── todoist_client.py # Асинхронный клиент Todoist API
│ ├── models.py # Схемы Pydantic
│ └── database.py # Хранилище токенов пользователей
├── tests/
│ ├── __init__.py
│ ├── test_models.py # Тесты моделей
│ └── test_database.py # Тесты базы данных
├── requirements.txt
└── README.md
- Проект: Входящие (по умолчанию)
- Приоритет: 3 (по умолчанию)
- Срок выполнения: Нет (по умолчанию)
- Защита от дублей: Использует ID сообщения Telegram как ID запроса
TELEGRAM_BOT_TOKEN=ваш_токен_telegram_бота_здесьpytest tests/Бот обрабатывает различные сценарии ошибок:
- Неверные токены Todoist
- Таймауты API
- Проблемы с сетью
- Отсутствующие токены пользователей
Все ошибки логируются и пользователи получают понятные сообщения об ошибках.
- Чувствительные токены хранятся в переменных окружения
- Токены пользователей хранятся в памяти (в продакшене следует использовать базу данных)
- Конфиденциальная информация не логируется
Будущие версии могут включать:
- NLP анализ для дат, проектов и приоритетов
- Постоянная база данных для токенов пользователей
- Редактирование и удаление задач
- Выбор проекта
- Распознавание сроков выполнения