Описание запуска через docker
This commit is contained in:
+2
-1
@@ -1,2 +1,3 @@
|
|||||||
venv/
|
.venv/
|
||||||
.env
|
.env
|
||||||
|
.idea/
|
||||||
|
|||||||
@@ -1,3 +1,35 @@
|
|||||||
## Телеграм бот для преобразования текста в QR код
|
## Телеграм бот для преобразования текста в QR код
|
||||||
|
|
||||||
Присылаете боту текст, в ответ получаете 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)
|
bot = telebot.TeleBot(API_TOKEN)
|
||||||
|
photoName = None
|
||||||
|
|
||||||
@bot.message_handler(commands=['start'])
|
@bot.message_handler(commands=['start'])
|
||||||
def start(mess):
|
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
|
# Создаем экземпляр класса QRCode
|
||||||
qr = qrcode.QRCode(
|
qr = qrcode.QRCode(
|
||||||
version=1,
|
version=1,
|
||||||
@@ -35,17 +39,17 @@ def gen_qr(text):
|
|||||||
# Создаем изображение QR-кода
|
# Создаем изображение QR-кода
|
||||||
img = qr.make_image(fill_color="black", back_color="white")
|
img = qr.make_image(fill_color="black", back_color="white")
|
||||||
# Сохраняем изображение QR-кода
|
# Сохраняем изображение QR-кода
|
||||||
img.save("qrcode.png")
|
img.save(photoName)
|
||||||
|
|
||||||
|
|
||||||
@bot.message_handler(content_types=['text'])
|
@bot.message_handler(content_types=['text'])
|
||||||
def generate_qr_code(mess):
|
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)}'
|
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_photo(mess.chat.id, qr_photo)
|
||||||
bot.send_message(mess.chat.id, text, parse_mode='html')
|
bot.send_message(mess.chat.id, text, parse_mode='html')
|
||||||
remove('qrcode.png')
|
remove(photoName)
|
||||||
|
|
||||||
print('Бот запущен')
|
print('Бот запущен')
|
||||||
bot.polling()
|
bot.polling()
|
||||||
|
|||||||
Reference in New Issue
Block a user