Skip to content

buschwaker/homework_bot

Repository files navigation

Проект homework telegram bot

Цель

Для получение оперативного ответа об изменении статуса проверки домашней работы ревьюрем Яндекс практикума, был написан проект, который будет обращаться к API сервиса Практикум.Домашка и узнавать статус домашней работы: взята ли домашка в ревью, проверена ли она, а если проверена — то принял её ревьюер или вернул на доработку.

Функции бота

  • раз в 10 минут опрашивать API сервиса Практикум.Домашка и проверять статус отправленной на ревью домашней работы;
  • при обновлении статуса анализировать ответ API и отправлять соответствующее уведомление в Telegram;
  • логировать свою работу и сообщать о важных проблемах сообщением в Telegram.

Структура проекта

  • Функция main(): в ней описана основная логика работы программы. Все остальные функции запускаются из неё. Последовательность действий:
    • Сделать запрос к API.
    • Проверить ответ.
    • Если есть обновления — получить статус работы из обновления и отправить сообщение в Telegram. Подождать некоторое время и сделать новый запрос.
  • Функция check_tokens() проверяет доступность переменных окружения, которые необходимы для работы программы. Если отсутствует хотя бы одна переменная окружения — функция должна вернуть False, иначе — True.
  • Функция get_api_answer() делает запрос к единственному эндпоинту API-сервиса. В качестве параметра функция получает временную метку. В случае успешного запроса должна вернуть ответ API, преобразовав его из формата JSON к типам данных Python.
  • Функция check_response() проверяет ответ API на корректность. В качестве параметра функция получает ответ API, приведенный к типам данных Python. Если ответ API соответствует ожиданиям, то функция должна вернуть список домашних работ (он может быть и пустым), доступный в ответе API по ключу 'homeworks'.
  • Функция parse_status() извлекает из информации о конкретной домашней работе статус этой работы. В качестве параметра функция получает только один элемент из списка домашних работ. В случае успеха, функция возвращает подготовленную для отправки в Telegram строку, содержащую один из вердиктов словаря HOMEWORK_STATUSES.
  • Функция send_message() отправляет сообщение в Telegram чат, определяемый переменной окружения TELEGRAM_CHAT_ID. Принимает на вход два параметра: экземпляр класса Bot и строку с текстом сообщени

About

Проект homework telegram bot

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published