Всем привет!
Подскажите, пожалуйста, как можно решить вопрос объединения двух кодов в один, последовательный.
Идея в следующем: В бот отправляют qr-code, бот возвращает значение и пересылает его на основании полученного значения.
Вот первая часть:
import telebot
#Код для пересылки по значениям
bot = telebot.TeleBot('********')
my_id = int('-*********') #chat AS
chat_id = int('-************') #chat BS
@bot.message_handler(commands=['start'])
def start(message):
print(message)
@bot.message_handler(regexp="AS", content_types=['text'])
def repeat_all_messages(message):
bot.forward_message(my_id, message.chat.id, message.id)
@bot.message_handler(regexp="BS", content_types=['text'])
def repeat_all_messages(message):
bot.forward_message(chat_id, message.chat.id, message.id)
bot.polling(none_stop=True)
и Еще один, на обработку QR:
from telegram import Update, InlineKeyboardMarkup, InlineKeyboardButton
from telegram.ext import Updater, Filters, MessageHandler, CallbackContext
# QR Code
from pyzbar.pyzbar import decode
# System libraries
import os
from os import listdir
from os.path import isfile, join
from io import BytesIO
from PIL import Image
import telebot #for resend
TOKEN = "******"
def decode_qr(update: Update, context: CallbackContext):
chat_id = update.message.chat_id
if update.message.photo:
id_img = update.message.photo[-1].file_id
else:
return
foto = context.bot.getFile(id_img)
new_file = context.bot.get_file(foto.file_id)
new_file.download('qrcode.png')
try:
result = decode(Image.open('qrcode.png'))
context.bot.sendMessage(chat_id=chat_id, text=result[0].data.decode("utf-8"))
os.remove("qrcode.png")
except Exception as e:
return
def main():
updater = Updater(TOKEN, request_kwargs={'read_timeout': 20, 'connect_timeout': 20}, use_context=True)
dp = updater.dispatcher
dp.add_handler(MessageHandler(Filters.photo, decode_qr))
updater.start_polling()
updater.idle()
if __name__ == '__main__':
bot.polling(none_stop = True)
Заранее спасибо за помощь :)