An open API service indexing awesome lists of open source software.

https://github.com/meteopavel/homeworkstatusbot

🤖 Telegram-бот для Яндекс.Практикум — автоматические уведомления о статусе проверки домашних работ. 🔄 Запросы к API, отправка сообщений в Telegram. 💻
https://github.com/meteopavel/homeworkstatusbot

logging python-telegram-bot requests

Last synced: about 1 year ago
JSON representation

🤖 Telegram-бот для Яндекс.Практикум — автоматические уведомления о статусе проверки домашних работ. 🔄 Запросы к API, отправка сообщений в Telegram. 💻

Awesome Lists containing this project

README

          

# 🤖 HomeworkStatusBot - Telegram-бот для отслеживания статуса домашних работ

## Описание проекта

Telegram-бот автоматически отправляет уведомления о статусе проверки домашних заданий с платформы [Яндекс.Практикум](https://practicum.yandex.ru). Программа периодически запрашивает данные через API и отправляет сообщения в Telegram при изменении статуса работы.

## Возможности

- 🔄 **Автоматический опрос API**: Бот каждые 10 минут проверяет статус домашних работ.
- ✉️ **Уведомления в Telegram**: Отправляет сообщения о статусе проверки (одобрено, взято на проверку, отклонено).
- 📝 **Логирование**: Все события записываются в логи для удобства отладки.

## Технологии

- **Python**: Основной язык программирования.
- **Telegram Bot API**: Для отправки сообщений в Telegram.
- **Requests**: Для взаимодействия с API Яндекс.Практикум.
- **Logging**: Для записи логов.

## Как использовать

1. **Создайте `.env` файл**:
```env
PRACTICUM_TOKEN=ваш_токен_практикума
TELEGRAM_TOKEN=ваш_токен_телеграм_бота
TELEGRAM_CHAT_ID=ваш_id_чата
```

2. **Установите зависимости**:
```bash
pip install -r requirements.txt
```
3. **Запустите бота**:
```bash
python main.py
```
4. **Пример уведомления**:
```
Изменился статус проверки работы "Проект: Бот для проверки домашних заданий". Работа проверена: ревьюеру всё понравилось. Ура!
```

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

- `main()`: Основная логика работы бота.
- `get_api_answer()`: Получает данные от API Яндекс.Практикум.
- `check_response()`: Проверяет корректность ответа от API.
- `parse_status()`: Парсит статус работы и формирует сообщение.
- `send_message()`: Отправляет сообщение в Telegram.
- `check_tokens()`: Проверяет наличие необходимых токенов.