Описание запуска через docker
This commit is contained in:
+2
-1
@@ -1,2 +1,3 @@
|
||||
venv/
|
||||
.venv/
|
||||
.env
|
||||
.idea/
|
||||
|
||||
@@ -1,3 +1,35 @@
|
||||
## Телеграм бот для преобразования текста в QR код
|
||||
|
||||
Присылаете боту текст, в ответ получаете QR код и небольшую информацию о тексте
|
||||
|
||||
## Инструкция по запуску
|
||||
- Создать в директории на удалённом сервере файл docker-compose.yaml
|
||||
```bash
|
||||
sudo nano docker-compose.yaml
|
||||
```
|
||||
- В него написать следующий текст:
|
||||
```txt
|
||||
services:
|
||||
bot_qr:
|
||||
image: iliamiheev/bot_qr:latest
|
||||
container_name: bot_qr
|
||||
env_file:
|
||||
- .env
|
||||
```
|
||||
Далее Ctrl + O, Enter, Ctrl + X
|
||||
- В этой же директории создать файл с переменными окружения
|
||||
```bash
|
||||
sudo nano .env
|
||||
```
|
||||
- В него занести единственную переменную — токен от телеграм бота
|
||||
```txt
|
||||
API_TOKEN={{ВАШ ТОКЕН}}
|
||||
```
|
||||
- Все приготовления завершены, запустить бота
|
||||
```bash
|
||||
sudo docker compose up -d
|
||||
```
|
||||
- Теперь на машине должен быть запущен контейнер с именем bot_qr. Проверить это можно введя
|
||||
```bash
|
||||
sudo docker ps
|
||||
```
|
||||
|
||||
@@ -15,13 +15,17 @@ if API_TOKEN is None:
|
||||
|
||||
|
||||
bot = telebot.TeleBot(API_TOKEN)
|
||||
photoName = None
|
||||
|
||||
@bot.message_handler(commands=['start'])
|
||||
def start(mess):
|
||||
bot.send_message(mess.chat.id, 'Привет. Я генерирую QR коды. Отправь мне текст и я его преобразую')
|
||||
bot.send_message(mess.chat.id, '''Привет. Я генерирую QR коды. Отправь мне текст и я его преобразую.
|
||||
Код проекта можно посмотреть в <a href="https://github.com/IliaMiheev/bot_qr">репозитории</a> на GitHub''', parse_mode='html')
|
||||
|
||||
|
||||
def gen_qr(text):
|
||||
def gen_qr(text, id):
|
||||
global photoName
|
||||
photoName = f"qrcode_{id}.png"
|
||||
# Создаем экземпляр класса QRCode
|
||||
qr = qrcode.QRCode(
|
||||
version=1,
|
||||
@@ -35,17 +39,17 @@ def gen_qr(text):
|
||||
# Создаем изображение QR-кода
|
||||
img = qr.make_image(fill_color="black", back_color="white")
|
||||
# Сохраняем изображение QR-кода
|
||||
img.save("qrcode.png")
|
||||
img.save(photoName)
|
||||
|
||||
|
||||
@bot.message_handler(content_types=['text'])
|
||||
def generate_qr_code(mess):
|
||||
gen_qr(mess.text)
|
||||
gen_qr(mess.text, mess.from_user.id)
|
||||
text = f'<b>Сообщение:</b> {mess.text}\n<b>Слов в сообщении:</b> {len(mess.text.split())}\n<b>Символов в сообщении:</b> {len(mess.text)}'
|
||||
with open('qrcode.png', 'rb') as qr_photo:
|
||||
with open(photoName, 'rb') as qr_photo:
|
||||
bot.send_photo(mess.chat.id, qr_photo)
|
||||
bot.send_message(mess.chat.id, text, parse_mode='html')
|
||||
remove('qrcode.png')
|
||||
remove(photoName)
|
||||
|
||||
print('Бот запущен')
|
||||
bot.polling()
|
||||
|
||||
Reference in New Issue
Block a user