GRPUI
@GRPUI

Что нужно исправить в коде, чтобы в сообщении «*текст* — верное название» вместо !создать клан, было сообщение пользователя?

Бот не правильно реагирует на следующий шаг

Как примерно должно быть:
- !создать клан
- Назовите клан:
- Учиха
- Учиха - верное название?

@bot.message_handler(content_types=['text'])
def get_text_messages(message):
    if message.text == ('!Создать Клан') or message.text == ('!Создать клан') or message.text == (
            '!создать клан') or message.text == ('!СОЗДАТЬ КЛАН'):
        chat_id = message.chat.id
        bot.send_message(message.chat.id, 'Назовите клан:',)
        bot.register_next_step_handler_by_chat_id(chat_id,get_text_messages,get_name(message))
    if message.text == ('!Вступить в Клан') or message.text == ('!вступить в клан') or message.text == (
            '!Вступить в клан') or message.text == ('!ВСТУПИТЬ В КЛАН'):
        chat_id1 = message.chat.id
        bot.send_message(message.chat.id, 'В какой клан хотите вступить?', reply_to_message_id=message.message_id, reply_markup=markup_menu_1)
        return (chat_id1)
    elif message.text == 'Что я умею❓':
        bot.send_message(message.from_user.id,
                         "Я умею назначать роли участникам группы, создавать кланы и организации, а также добавлять в них участников.")
    elif message.text == 'Как добавить бота в чат❓':
        bot.send_message(message.from_user.id,
                         'Для того чтобы подлючить бота к чату нужно:\nПредоставить права администратора в чате, остальное он сделает сам')
def get_name(message):
    cht_id = message.from_user.id
    new_name = message.text
    bot.send_message(message.chat.id, new_name + ' - верное название?')

5f4f4c50d851e439654118.jpeg
  • Вопрос задан
  • 112 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
1.
if message.text == ('!Создать Клан') or message.text == ('!Создать клан') or message.text == (
            '!создать клан') or message.text == ('!СОЗДАТЬ КЛАН'):

заменить на
if message.text.lower().startswith('!создать клан'):


2.
bot.register_next_step_handler_by_chat_id(chat_id,get_text_messages,get_name(message))

на
bot.register_next_step_handler_by_chat_id(result, get_name)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Proffs
@Proffs
Недопрограммист
Можно сделать вот так:
1.Немного переделать ифы
if message.text.startwith('Создать клан'):
   . . .

2.В этом ифе разделить сообщение на слова:
if message.text.startwith('Создать клан'):
   mess_split = message.text.split() #разделится на слова.

3.И сделать проверку на третье слово:
if message.text.startwith('Создать клан'):
   mess_split = message.text.split()
   if mess_split.__len__ - 1 != 2:
		#сделать, что-то.

Надеюсь помог.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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