Привет, делаю бот-обменник. Нужно сделать чтобы когда бот запрашивал адрес кошелька бот выдавал ошибку если там нет букв и сообщение меньше 34 символов. Подскажите пожалуйста как это сделать.
Сейчас диалог выглядит примерно так:
То-есть на сообщений 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)