@Chokomoko

Как сделать фильтр сообщений telebot?

Привет, делаю бот-обменник. Нужно сделать чтобы когда бот запрашивал адрес кошелька бот выдавал ошибку если там нет букв и сообщение меньше 34 символов. Подскажите пожалуйста как это сделать.
Сейчас диалог выглядит примерно так:
Скрин переписки
631b6d1113006527489977.png

То-есть на сообщений 0123456...0123 оно должно выдать ошибку "Введите свой действительный кошелек" и после сообщения "Пожалуйста, укажите ваш USDT адрес" на ответ "123" или ему подобные он должен так же ответить то что написано выше.
Вот код:
def qiwiusdt(message):
    button = types.ReplyKeyboardMarkup(resize_keyboard=True)
    button.add(types.KeyboardButton("Назад"))
    price = cg.get_price(ids='tether', vs_currencies='rub')
    msg = bot.send_message(message.chat.id, f'1 USDT = {round(price["tether"]["rub"] * 1.03, 2)} RUB\nМинимальная сумма обмена'
                                      f' составляет 1500 RUB.\nПожалуйста введите сумму вашего обмена.', reply_markup=button)
    bot.register_next_step_handler(msg, proverka_usdt)
def proverka_usdt(message):
    button = types.ReplyKeyboardRemove()
    if message.text == 'Назад':
        buy(message)
    else:
        try:
            global course
            course = {}
            proverka = {}
            proverka['qiwiusdt'] = message.text
            course = float(proverka['qiwiusdt'])
            price = cg.get_price(ids='tether', vs_currencies='rub')

            if course >= 1500:
                msg = bot.send_message(message.chat.id, f'Вы получите {round(course / (price["tether"]["rub"] * 1.03), 2)} USDT на ваш кошелёк.\n' 
                                                        f'Пожалуйста, укажите ваш USDT адрес.', reply_markup=button)
                bot.register_next_step_handler(msg, proverka_usdt2)
            else:
                bot.send_message(message.chat.id, 'Минимальная сумма обмена составляет 1500 RUB.')
                qiwiusdt(message)
        except ValueError:
            bot.send_message(message.chat.id, 'Пожалуйста, введите корректные данные.')
            qiwiusdt(message)
def proverka_usdt2(message):
    if len(message.text) >= 34:
        global wallet
        wallet = {}
        wallet['proverka_usdt'] = message.text
        button = types.ReplyKeyboardMarkup(resize_keyboard=True)
        button.add(types.KeyboardButton('Платеж подтверджаю'))

        price = cg.get_price(ids='tether', vs_currencies='rub')
        msg = bot.send_message(message.chat.id, f'Вы обмениваете {course} RUB на {round(course / (price["tether"]["rub"] * 1.03), 2)} USDT.\n'
                                                f'Ваш кошелек: {wallet["proverka_usdt"]}.\n\n'
                                                f'Ожидаем поступления средств в размере {course} RUB на данные реквизиты:\n2200730259194971\n+79778661153 (QIWI)')
        bot.register_next_step_handler(msg, finish_usdt)
    else:
        proverka_usdt(message)


def finish_usdt(message):
    price = cg.get_price(ids='tether', vs_currencies='rub')

    if message.text == 'Платеж подтверджаю':
        bot.send_message(message.chat.id, f'Ваша заявка была создана {datetime.datetime.now()}. Обычно обмен происходит в течении 30 минут.\n'
                                          'Спасибо за использование нашего обменника.\n'
                                          'Скоро администратор подтвердит поступление после чего обменяет вам криптовалюту, если поступления не было ваша заявка будет отклонена(без уведомления).')

        end(message)
  • Вопрос задан
  • 183 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
SpectrumData Екатеринбург
от 150 000 до 200 000 ₽
Гринатом Москва
от 150 000 ₽
DIGITAL SECTOR Краснодар
от 150 000 до 250 000 ₽
23 июн. 2024, в 22:19
500 руб./за проект
23 июн. 2024, в 21:35
65000 руб./за проект