- Python
- pytest
- python-telegram-bot
- telegram
- http
Telegram-бот, который будет обращаться к API сервиса Практикум.Домашка и узнавать статус вашей домашней работы: взята ли ваша домашка в ревью, проверена ли она, а если проверена — то принял её ревьюер или вернул на доработку.
Что должен делать бот: раз в 10 минут опрашивать API сервиса Практикум.Домашка и проверять статус отправленной на ревью домашней работы; при обновлении статуса анализировать ответ API и отправлять вам соответствующее уведомление в Telegram; логировать свою работу и сообщать вам о важных проблемах сообщением в Telegram.
Функция main(): в ней описана основная логика работы программы. Все остальные функции должны запускаться из неё. Последовательность действий в общем виде должна быть примерно такой:
- Сделать запрос к API.
- Проверить ответ.
- Если есть обновления — получить статус работы из обновления и отправить сообщение в Telegram.
- Подождать некоторое время и вернуться в пункт 1.
- Функция check_tokens() проверяет доступность переменных окружения, которые необходимы для работы программы. Если отсутствует хотя бы одна переменная окружения — продолжать работу бота нет смысла.
- Функция get_api_answer() делает запрос к единственному эндпоинту API-сервиса. В качестве параметра в функцию передается временная метка. В случае успешного запроса должна вернуть ответ API, приведя его из формата JSON к типам данных Python.
- Функция check_response() проверяет ответ API на соответствие документации из урока API сервиса Практикум.Домашка. В качестве параметра функция получает ответ API, приведенный к типам данных Python.
- Функция parse_status() извлекает из информации о конкретной домашней работе статус этой работы. В качестве параметра функция получает только один элемент из списка домашних работ. В случае успеха, функция возвращает подготовленную для отправки в Telegram строку, содержащую один из вердиктов словаря HOMEWORK_VERDICTS.
- Функция send_message() отправляет сообщение в Telegram чат, определяемый переменной окружения TELEGRAM_CHAT_ID. Принимает на вход два параметра: экземпляр класса Bot и строку с текстом сообщения.
Каждое сообщение в журнале логов должно состоять как минимум из даты и времени события, уровня важности события, описания события.
Клонировать репозиторий и перейти в него в командной строке:
git clone git@github.com:SemenovY/homework_bot
Создать и активировать виртуальное окружение:
python3 -m venv env
source env/bin/activate
Установить зависимости из файла requirements.txt:
python3 -m pip install --upgrade pip
pip install -r requirements.txt
- Python 3.9
Над проектом работал:
- Семёнов Юрий | GitHub: SemenovY | Python developer.