Бот для отправки уведомлений о проверенных работах devman.org в Telegram
Бот создан в учебных целях для отправки уведомлений о проверенных домашних работах в telegram.
Вам понадобится установленный Python 3.6-3.9, аккаунт в telegram и git.
Склонируйте репозиторий или скачайте код в виде архива:
$ git clone [email protected]:IlyaG96/devman_homework_bot.git
Создайте в этой папке виртуальное окружение:
$ python3 -m venv [полный путь до папки devman_homework_bot] env
Активируйте виртуальное окружение и установите все необходимые пакеты:
$ cd devman_homework_bot
$ source env/bin/activate
$ pip install -r requirements.txt
Заполните прилагающийся .env.example файл и переименуйте его в .env или иным образом задайте переменные среды:
DEVMAN_TOKEN=""
TG_TOKEN=""
CHAT_ID=""
DEVMAN_TOKEN
- есть здесьTG_TOKEN
- токен бота teleram - написать @botfatherCHAT_ID
- ваш telegram id, нужен для отправки сообщения именно вам - написать @userinfobot Простейший способ запустить бота:
$ python request_to_devman.py
Если одна из ваших работ будет проверена в тот момент, когда бот запущен, вы получите в телеграм следующего вида:
- Если есть ошибки:
Ваш урок 'Джедайские техники рассылки спама' проверен. К сожалению, есть ошибки
Ссылка для перехода к уроку: https://dvmn.org/modules/mac-linux-command-line/lesson/mail-config/
- Если нет ошибок:
Ваш урок 'Джедайские техники рассылки спама' проверен. Ошибок нет! Поздравляем!
Ссылка для перехода к уроку: https://dvmn.org/modules/mac-linux-command-line/lesson/mail-config/
Деплой на heroku.com
По материалам уроков devman.org
- Для того, чтобы бот работал, его необходимо разместить на сервере. Зарегистрируйтесь Здесь для того, чтобы получить бесплатный сервер.
- Создайте в папке с ботом файл Procfile c содержимым:
bot: python3 название_бота.py
- Убедитесь, что файл requirements.txt есть в папке и заполнен.
- Опубликуйте свой код на github.com.
- Привяжите аккаунт GitHub к аккаунту Heroku и нажмёте Deploy Branch внизу страницы. Загорятся зелёные галочки справа, как на скриншоте.
.
- Переменные окружения можно задать во вкладке Settings на сайте Heroku. Заполните Config Vars в соответствии с примером из env.example.
- Убедитесь, что бот работает. Установите Heroku CLI инструкция
- Просмотрите логи командой.
heroku logs -a название_приложения
- Кроме логов, вы должны наблюдать надпись Build succeeded
В данной версии каждые 90 секунд бут будет писать в лог крайне информативные сообщения о том, что он жив и пытается достучаться до сайта.
- Соберите контейнер
docker build -t devman-homework .
- Запустите образ контейнера:
docker run -d --env-file ./.env devman-homework
-d
- запускает образ в фоновом режиме.--env-file
- определяет путь до файла с переменными окружения.--rm
- удалит контейнер после завершения его работы (фича для тех у кого мааааленький сервер :).- Ссылка на документацию
Для того, чтобы увидеть список всех работающих образов, введите команду:
docker images
Для удаления образа найдите в списке образов id своего образа (IMAGE ID) и выполните команду:
docker rmi IMAGE_ID