Как запретить отправлять определенные типы смс telebot Python?
Как можно запретить отправлять любой тип сообщений кроме текста?
Просто у меня есть форма регистрации которая при отправке любого вида сообщения кроме текста крашит бота. Ну и мне приходится его вручную поднимать. Хотел бы просто запретить любые типы кроме текста, так как всё равно ничего кроме текста в бот отправляться не будет.
Если интересно, то вот код регистрации:
@bot.message_handler(content_types=['text'])
def register(message):
if message.text == '/reg':
global userID
global username
userID = message.from_user.id
username = message.from_user.username
bot.send_message(message.from_user.id, "Введите Ваше имя.")
bot.register_next_step_handler(message, get_name) # следующий шаг – функция get_name
def get_name(message): # Получаем имя
global name
name = message.text
bot.send_message(message.from_user.id, 'Введите Вашу фамилию.')
bot.register_next_step_handler(message, get_surname)
def get_surname(message): # Получаем фамилию
global surname
surname = message.text
bot.send_message(message.from_user.id, 'Введите Ваш возраст.')
bot.register_next_step_handler(message, get_age)
def get_age(message): # Получаем возраст
global age
age = message.text
if age.isnumeric():
bot.send_message(message.from_user.id, 'Введите Ваш дискорд.')
bot.register_next_step_handler(message, get_discord)
else:
bot.send_message(message.from_user.id, 'Цифрами, пожалуйста!')
bot.register_next_step_handler(message, get_age)
def get_discord(message): # Получаем дискорд
global discord
discord = message.text
keyboard = types.InlineKeyboardMarkup()
key_yes = types.InlineKeyboardButton(text='Да', callback_data='yes')
keyboard.add(key_yes)
key_no = types.InlineKeyboardButton(text='Нет', callback_data='no')
keyboard.add(key_no)
question = "Подведем итоги. Вас зовут " + name + " " + surname + ", Вам " + str(
age) + " лет. Ваш дискорд: " + discord + ". Если всё верно, то подтвердите это нажав 'ДА' снизу."
bot.send_message(message.from_user.id, text=question, reply_markup=keyboard) ```
Ответы (1 шт):
Автор решения: MyZik
→ Ссылка
Очень просто. Перед обработкой поставьте условие на проверку текста в сообщении.
def get_name(message): # Получаем имя
global name
if message.text is None:
bot.send_message(message.from_user.id, 'Сообщение должно быть текстом!')
return None
...