@dzzaad

Бот не хочет после «Отлично. Начинаю шифровать!» переходить к функции get_process, пока не получит какое либо сообщение в чат. Как исправить?

<code lang="python">
import telebot
from telebot import types

bot = telebot.TeleBot(token)
msg = []

@bot.message_handler(commands=['start', 'help', 'info'])
def welcome(message):
    bot.send_message(message.chat.id, 'Привет. Я бот Cryptographer. \nЯ буду шифровать твои сообщения шифром Виженера!\n\nНажмите на /encryption')

@bot.message_handler(commands=['encryption'])
def encryption(message):
    markup_rply_keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
    item_yes = types.KeyboardButton(text='ДА')
    item_no = types.KeyboardButton(text='НЕТ')
    markup_rply_keyboard.add(item_yes, item_no)
    bot.send_message(message.chat.id, 'Шифруем?', reply_markup=markup_rply_keyboard)
    bot.register_next_step_handler(message, answer)

def answer(message):
    if message.text == 'ДА':
        markup_reply_keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
        button_sms = types.KeyboardButton('Сообщение')
        button_code = types.KeyboardButton('Ключ шифрования')
        markup_reply_keyboard.add(button_sms, button_code)
        bot.send_message(message.chat.id, 'Выберите, что хотите первым написать: Сообщение, которе нужно зашифроать или ключ для шифрования', reply_markup=markup_reply_keyboard)
        bot.register_next_step_handler(message, get_text)
    elif message.text == 'НЕТ':
         bot.send_message(message.chat.id, 'Нет, так нет')

def get_text(message):
    if message.text == 'Сообщение':
        bot.send_message(message.chat.id, 'Введите сообщение, которое нужно зашифровать: ')
        bot.register_next_step_handler(message, get_code_from_sms)
    elif message.text == 'Ключ шифрования':
        bot.send_message(message.chat.id, 'Введите ключ для шифрования: ')
        bot.register_next_step_handler(message, get_sms_from_code)

def get_code_from_sms(message):
    text = message.text
    msg.append(text)
    bot.send_message(message.chat.id, 'Введите ключ для шифрования: ')
    bot.register_next_step_handler(message, get_code)
def get_sms_from_code(message):
    text = message.text
    msg.append(text)
    bot.send_message(message.chat.id, 'Введите сообщение, которое нужно зашифровать: ')
    bot.register_next_step_handler(message, get_sms)

def get_code(message):
    markup_reply_second_keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
    button_yes = types.KeyboardButton('✅ДА✅')
    button_no = types.KeyboardButton('❌НЕТ❌')
    markup_reply_second_keyboard.add(button_yes, button_no)
    text = message.text
    msg.append(text)
    bot.send_message(message.chat.id, f'Шифруемеое сообщение: {str(msg[0])}\nКлюч шифрования: {str(msg[1])}\n\nЕсли все правильно, то нажмите ДА, иначе НЕТ', reply_markup=markup_reply_second_keyboard)
    bot.register_next_step_handler(message, check)
def get_sms(message):
    markup_reply_second_keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
    button_yes = types.KeyboardButton('✅ДА✅')
    button_no = types.KeyboardButton('❌НЕТ❌')
    markup_reply_second_keyboard.add(button_yes, button_no)
    text = message.text
    msg.append(text)
    bot.send_message(message.chat.id, f'Шифруемеое сообщение: {str(msg[1])}\nКлюч шифрования: {str(msg[0])}\n\nЕсли все правильно, то нажмите ДА, иначе НЕТ', reply_markup=markup_reply_second_keyboard)
    bot.register_next_step_handler(message, check)


def check(message):   
    if message.text == '✅ДА✅':    
            bot.send_message(message.chat.id, "Отлично. Начинаю шифровать!")
            bot.register_next_step_handler(message, get_process)
    elif message.text == '❌НЕТ❌':
        bot.send_message(message.chat.id, 'Что-то пошло не так.\nПовторите попытку. Нажмите на /encryption')



def get_process(message):
    bot.send_message(message.chat.id, 'Условынй текст')
    

bot.polling(non_stop=True, interval=0)


</code>
  • Вопрос задан
  • 98 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
В чем заключается исправление? Вы вызвали метод, который ожидает сообщения пользователя и отправляет его в функцию. Если хотите вызвать функцию - вызывайте. get_process(message)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы