from dotenv import load_dotenv from sys import exit as sexit import os import json import telebot import qrcode # Загрузить переменные из файла .env и language.json load_dotenv() with open('./src/language.json', 'r', encoding='utf-8') as file: language = json.load(file) # Получить значение переменной API_TOKEN = os.getenv("API_TOKEN") if API_TOKEN is None or API_TOKEN == "": print(language['no_token']) sexit(1) # Завершаем программу с кодом ошибки 1 bot = telebot.TeleBot(API_TOKEN) photoName = None @bot.message_handler(commands=['start']) def start(mess): bot.send_message(mess.chat.id, language['start'], parse_mode='html') def gen_qr(text, id): global photoName photoName = f"qrcode_{id}.png" # Создаем экземпляр класса QRCode qr = qrcode.QRCode( version=1, error_correction=qrcode.constants.ERROR_CORRECT_H, box_size=10, border=1, ) # Добавляем данные в QR-код qr.add_data(text) qr.make(fit=True) # Создаем изображение QR-кода img = qr.make_image(fill_color="black", back_color="white") # Сохраняем изображение QR-кода img.save(photoName) @bot.message_handler(content_types=['text']) def generate_qr_code(mess): gen_qr(mess.text, mess.from_user.id) text = language['qr_info'].format( text=mess.text, words=len(mess.text.split()), chars=len(mess.text) ) 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') os.remove(photoName) print(language['bot_started']) bot.polling() print(language['bot_stopped'])