@DenisProhorovSuperChel

Телеграм Бот Python. Кнопки и переменные?

1. Суть заключается в том что при выполнении кода, все работает но на моменте где в def answer1 кнопка "продолжить" какой-то косяк. Бот просит нажать два раза кнопку "продолжить" и тогда уже выводит текст и кнопки с things.
2. Также момент - в yuans я принимаю информацию от юзера и записываю ее в переменную text. Вопрос - я смогу в других функциях использовать эту перемнную просто писав например text*3+1 формулу (в tetx будет находиться курс валюты с которым будет взаимодействовать формула)

import telebot
from telebot import types

client = telebot.TeleBot('...');


@client.message_handler(commands = ['start'])
def application(message):
    rmk1 = types.InlineKeyboardMarkup()
    rmk1 = types.ReplyKeyboardMarkup(resize_keyboard = True)
    rmk1.add(
        types.KeyboardButton("Рассчёт стоимости товара"),
        types.KeyboardButton("Канал WagOne Clo"),
        )

    msg = client.send_message(message.chat.id, "Привет. Что нужно?", reply_markup=rmk1)
    client.register_next_step_handler(msg, answer)

def answer(message):
    if message.text == "Рассчёт стоимости товара":
        msg = client.send_message(message.chat.id, 'Для этого необходимо ввести курс юаня:')
        client.register_next_step_handler(msg, yuans)
    elif message.text == "Канал WagOne Clo":
        client.send_message(message.chat.id, f"Супер, переходи на наш канал и не забывай следить за новыми постами. Мы - @wagoneclo")
        client.register_next_step_handler(msg)

def yuans(message):
    text = message.text
    msg = client.send_message(message.chat.id, f"Курс: {text}")
    rmk2 = types.InlineKeyboardMarkup()
    rmk2 = types.ReplyKeyboardMarkup(resize_keyboard = True)
    rmk2.add(
        types.KeyboardButton("Продолжить"),
        types.KeyboardButton("Изменить курс"),
        )
    msg = client.send_message(message.chat.id, f"Хочешь изменить курс или продолжить рассчёт?", reply_markup=rmk2)
    client.register_next_step_handler(msg, answer1)

def answer1(message):
    if message.text == "Продолжить":
        msg = client.send_message(message.chat.id, f'Необходимо выбрать тип товара')
        client.register_next_step_handler(msg, things)
    elif message.text == "Изменить курс":
        client.send_message(message.chat.id, f"Супер, переходи на наш канал и не забывай следить за новыми постами. Мы - @wagoneclo")
        client.register_next_step_handler(msg)

def things(message):
    rmk_things = types.InlineKeyboardMarkup()
    rmk_things = types.ReplyKeyboardMarkup(resize_keyboard = True)
    rmk_things.add(
        types.KeyboardButton("Кроссовки"),
        types.KeyboardButton("Ботинки"),
        types.KeyboardButton("Кофта/Худи/Свитер"),
        types.KeyboardButton("Футболка") 
        )
    msg = client.send_message(message.chat.id, 'Выбери один товар', reply_markup=rmk_things)
    client.register_next_step_handler(msg, answer2)

def answer2(message):
    client.send_message(message.chat.id, "Круто")

client.enable_save_next_step_handlers(delay=2)
client.load_next_step_handlers()
client.polling()
  • Вопрос задан
  • 355 просмотров
Решения вопроса 1
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Телеграм Бот Python. Кнопки и переменные?
Нет!
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Lord_of_Rings
@Lord_of_Rings
Python developer
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы