@ZERRITO
Пустой ноль

Как принимать введённые аргументы в сообщении пользователя в Telegram API?

Мне нужно чтобы бот принимал аргументы (текст после команды в боте) введённые пользователем сразу после команды, как в других Telegram ботах. Использую pyTelegramBotApi библиотеку.
Вот кусок кода:

code = ''
@bot.message_handler(content_types=['text'])
def echo(message):
    if message.text == "тест":
        global code
        bot.register_next_step_handler(message, code_edit)

def code_edit(message):
    global code
    code = message.text


Проблема в том, что если использовать такой способ, то в группах, когда ты ввёл команду, тебя могут перебить, и будет записан другой текст, а не твоё сообщение. Есть способ сразу записывать аргумент после команды?
Например: тест (здесь текст для редактирования)
И оно сразу же записывало текст после команды?
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ответы на вопрос 2
hydrugz
@hydrugz
Может и не лучший вариант, но я у себя в php использую подобие этого:
>>> msg = '/cmd ping pong argumenty'
>>> args = msg.split(' ') ## переводим в массив
>>> args
['/cmd', 'ping', 'pong', 'argumenty']
>>> del args[0] ## убираем первый элемент
>>> args = ' '.join(args) ## соединяем обратно
>>> args
'ping pong argumenty'
Ответ написан
@robprane
Как написал Steven Konrov можно разбивать сообщение на команду и аргументы, но это неудобно для пользователей и чревато ошибками.
Если у вас есть база данных, то можно запоминать текущую команду каждого пользователя и в зависимости от этого обрабатывать следующие сообщения. Так и сообщения в группах не спутаются.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
от 150 000 до 200 000 ₽
АО «НРТБ» Москва
от 150 000 до 170 000 ₽
OnederX Москва
от 100 000 до 120 000 ₽
21 сент. 2020, в 00:07
10000 руб./за проект
20 сент. 2020, в 23:49
10000 руб./за проект
20 сент. 2020, в 23:44
20000 руб./за проект