Телеграм бот, который пришлет уведомление о проверке любого задания с курса DVMN.org и вам не придется больше обновлять страничку в томительном ожидании.
Важно! Предварительно должен быть установлен python версии не выше 3.9.x.
Скачайте код:
git clone [email protected]:danceandfight/telegrambot.gitПерейдите в каталог проекта:
cd telegrambotПроверьте, что python установлен и корректно настроен. Запустите его в командной строке:
python --versionВозможно, вместо команды python здесь и в остальных инструкциях этого README придётся использовать python3. Зависит это от операционной системы и от того, установлен ли у вас Python старой второй версии.
В каталоге проекта создайте виртуальное окружение:
python -m venv venvАктивируйте его. На разных операционных системах это делается разными командами:
- Windows:
.\venv\Scripts\activate - MacOS/Linux:
source venv/bin/activate
Установите зависимости в виртуальное окружение:
pip install -r requirements.txtЗарегестрируйте двух новых ботов с помощью @BotFather в телеграме: первый будет присылать уведомления о проверках, а второй сообщать, если что-то пойдет не так. Вам потребуются их токены, которые выдаст @BotFather после регистрации.
Найдите свой токен devman в профиле:
Создайте файл .env в каталоге telegrambot/ и положите туда код такого вида, заменив токены на свои:
TELEGRAM_BOT_TOKEN='123456789:SFefseEGhyfJyj4jKUutkuASFhrtjhyJ42g'
TELEGRAM_BOT_LOGGER_TOKEN='987654321:DSGJHEQIhvhu2g4hfsduf21jif4fi3jinfk'
TELEGRAM_CHAT_ID=308193329
DVMN_TOKEN=46f539vfsjngi4359860ewgnirgnri39341vmor1Запустите бота:
python main.pyУстановите Docker любым удобным способом: https://docs.docker.com/engine/install/
В репозитории уже есть необходимый Dockerfile. Не запускайте бота через команду: python main.py, вместо это нужно создать image и container в докере.
Для создания image используйте команду:
docker build -t <название бота> .<название бота> может быть произвольным, например, tg-bot.
Для запуска контейнера используйте команду:
docker run --publish 8000:5000 <название бота>- После регистрации на heroku.com, создайте новое приложение:
Create new app - Подключите GitHub во вкладке
Deployment Methodи активируйтеAutomatic Deploys, тогда при каждом обновлении репозитория на GitHub код будет автоматически обновлятся. С помощьюManual Deploy/Deploy Branchможно запушить код вручную. - Добавьте переменные окружения из
.envво вкладкеSettings/Config Vars - Во вкладке Resources будет строка
bot python3 main.py- нужно активировать запуск бота переключателем
В репозитории уже есть необходимый Dockerfile и файл .yml.
- Залогиньтесь в heroku:
heroku container:login - Переключите
stackc heroku-22 на container командой:heroku stack:set container- измнение будет видно во вкладкеSettings/stack - Во вкладке
Deployment MethodиспользуйтеManual Deploy/Deploy Branch, чтобы запушить код вручную. В логах будет видно, что для установки используется Dockerfile.
Начните диалоги с двумя вашими ботами, использовав команду /start в диалоге. Для того, чтобы проверить работоспособность бота, отправьте любую работу на проверку и затем верните ее. Бот должен прислать уведовление с указанием название урока.
Код написан в учебных целях — это урок в курсе по Python и веб-разработке на сайте Devman.