Подправлена структура проекта, сообщения бота вынесены из кода, обновлены зависимости

Бот вынесен из корня в src/bot_qr.py.
Строки интерфейса вынесены в language.json, чтобы не хардкодить
их в коде. В requirements.txt обновлены зависимости под новый запуск.
This commit is contained in:
Ilia Miheev
2026-08-30 10:45:14 +03:00
parent d04312808d
commit 5b62112ab2
3 changed files with 26 additions and 11 deletions
BIN
View File
Binary file not shown.
+19 -11
View File
@@ -1,16 +1,21 @@
from dotenv import load_dotenv from dotenv import load_dotenv
from sys import exit as sexit from sys import exit as sexit
from os import remove, getenv import os
import json
import telebot import telebot
import qrcode import qrcode
# Загрузить переменные из файла .env # Загрузить переменные из файла .env и language.json
load_dotenv() load_dotenv()
with open('./src/language.json', 'r', encoding='utf-8') as file:
language = json.load(file)
# Получить значение переменной # Получить значение переменной
API_TOKEN = getenv("API_TOKEN") API_TOKEN = os.getenv("API_TOKEN")
if API_TOKEN is None:
print('Отсутствует токен телеграм бота. Загрузи токен в переменные окружения и бот сможет начать работу') if API_TOKEN is None or API_TOKEN == "":
print(language['no_token'])
sexit(1) # Завершаем программу с кодом ошибки 1 sexit(1) # Завершаем программу с кодом ошибки 1
@@ -19,8 +24,7 @@ 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, language['start'], parse_mode='html')
Код проекта можно посмотреть в <a href="https://github.com/IliaMiheev/bot_qr">репозитории</a> на GitHub''', parse_mode='html')
def gen_qr(text, id): def gen_qr(text, id):
@@ -45,12 +49,16 @@ def gen_qr(text, id):
@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, mess.from_user.id) 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 = language['qr_info'].format(
text=mess.text,
words=len(mess.text.split()),
chars=len(mess.text)
)
with open(photoName, '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(photoName) os.remove(photoName)
print('Бот запущен') print(language['bot_started'])
bot.polling() bot.polling()
print('Бот отключён') print(language['bot_stopped'])
+7
View File
@@ -0,0 +1,7 @@
{
"start": "Привет. Я генерирую QR коды. Отправь мне текст и я его преобразую. Код проекта можно посмотреть в <a href=\"https://github.com/IliaMiheev/bot_qr\">репозитории</a> на GitHub",
"no_token": "Отсутствует токен телеграм бота. Загрузи токен в переменные окружения и бот сможет начать работу",
"bot_started": "Бот запущен",
"bot_stopped": "Бот отключён",
"qr_info": "<b>Сообщение:</b> {text}\n<b>Слов в сообщении:</b> {words}\n<b>Символов в сообщении:</b> {chars}"
}