я создал бота, который принимает картинку, текст из сообщения, и шифрует его, а потом присылает тот самый текст.
вот код:
import random
import telebot
from stegano import lsb
import os
bot = telebot.TeleBot('')
img_name = None
@bot.message_handler(commands=['start'])
def start(message):
user_name = message.from_user.first_name
bot.reply_to(message, 'Привет, {0}!'.format(user_name) + '\nОтправьте мне изображение и текстовое сообщение для шифрования!')
@bot.message_handler(commands=['get_img'])
def get_image(message):
bot.send_message(message.chat.id, 'Отправьте изображение: ')
bot.register_next_step_handler(message, save_image)
def save_image(message):
if not message.document:
bot.send_message(message.chat.id, 'пожалуйста, отправьте документ с изображением')
return
global downloaded_file
file_info = bot.get_file(message.document.file_id)
downloaded_file = bot.download_file(file_info.file_path)
global img_name
img_name = 'img_' + str(random.randint(1, 100)) + '.jpg'
with open(img_name, 'wb') as file:
file.write(downloaded_file)
with open('C:/Users/motor/OneDrive/Рабочий стол/pythonProject1/' + img_name, 'wb') as file:
file.write(downloaded_file)
bot.send_message(message.chat.id, 'введите сообщение, которое вы хотите зашифровать: ')
bot.register_next_step_handler(message, get_encrypted_message)
def get_encrypted_message(message):
text = message.text
if img_name is None:
bot.send_message(message.chat.id, 'пожалуйста, загрузите изображение с помощью команды /get_img')
return
password = text
secret = lsb.hide(f'{img_name}', f'{password}')
new_img_name = 'img_' + str(random.randint(1, 100)) + '.png'
secret.save(new_img_name)
with open(new_img_name, 'wb') as file:
file.write(downloaded_file)
with open('C:/Users/motor/OneDrive/Рабочий стол/pythonProject1/' + new_img_name, 'wb') as file:
file.write(downloaded_file)
with open(new_img_name, 'rb') as f:
bot.send_photo(message.chat.id, f)
secret = lsb.reveal(f'{new_img_name}')
bot.send_message(message.chat.id, f'Ваше сообщение: {secret}')
os.remove(img_name)
os.remove(new_img_name)
bot.infinity_polling()
но возникает ошибка IndexError: Impossible to detect message
Скриншот фрагмента кода удалён модератором.
как ее решить, в чем проблема?