В этом приложении реализован Telegram-бот, который обращается к API сервиса Практикум.Домашка и узнает статус вашей домашней работы: взята ли ваша домашка в ревью, проверена ли она, а если проверена — то принял её ревьюер или вернул на доработку.
Что умеет делать бот:
- раз в 10 минут опрашивать API сервиса Практикум.Домашка и проверять статус отправленной на ревью домашней работы;
- при обновлении статуса анализировать ответ API и отправлять вам соответствующее уведомление в Telegram;
- логировать свою работу и сообщать вам о важных проблемах сообщением в Telegram.
Краткая документация к API-сервису и примеры запросов доступны в шпаргалке «API сервиса Практикум.Домашка»:
Удобно использовать принцип copy-paste - копировать команды из GitHub Readme и вставлять в командную строку Git Bash или IDE (например VSCode).
Развернуть
Предполагается, что пользователь:
Локальный запуск
- Клонируйте репозиторий с GitHub:
git clone https://github.com/alexpro2022/homework_bot.git && \
cd homework_bot && \
cp env_example .env && \
nano .env
- В открывшемся новом .env-файле введите данные для переменных окружения:
PRACTICUM_TOKEN=
TELEGRAM_TOKEN=
TELEGRAM_CHAT_ID=
- Получить PRACTICUM_TOKEN можно по ссылке
- Получить токен вашего бота можно у бота @BotFather командой /mybots и далее API Token.
- Узнать свой ID можно у бота @userinfobot.
Если у вас нет аккаунта бота в Телеграм, его нужно создать
-
Создайте и активируйте виртуальное окружение:
- Если у вас Linux/macOS
python -m venv venv && source venv/bin/activate
- Если у вас Windows
python -m venv venv && source venv/Scripts/activate
-
Установите в виртуальное окружение все необходимые зависимости из файла requirements.txt:
python -m pip install --upgrade pip && pip install -r requirements.txt
- Для запуска выполните команду:
python homework.py
- Остановить приложение можно комбинацией клавиш Ctl-C.
Запуск на удаленном сервере
-
Сделайте форк в свой репозиторий.
-
Создайте
Actions.Secrets
согласно списку ниже:
# переменные окружения из env_example файла:
PRACTICUM_TOKEN=
TELEGRAM_TOKEN=
TELEGRAM_CHAT_ID=
PROJECT_NAME
DOCKERHUB_USERNAME
DOCKERHUB_PASSWORD
# Данные удаленного сервера и ssh-подключения:
HOST # публичный IP-адрес вашего удаленного сервера
USERNAME
SSH_KEY
PASSPHRASE
- Запустите вручную
workflow
, чтобы автоматически развернуть проект в docker-контейнере на удаленном сервере.
Для удаления проекта выполните команду:
cd .. && rm -fr homework_bot && deactivate