@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


Проблема в том, что если использовать такой способ, то в группах, когда ты ввёл команду, тебя могут перебить, и будет записан другой текст, а не твоё сообщение. Есть способ сразу записывать аргумент после команды?
Например: тест (здесь текст для редактирования)
И оно сразу же записывало текст после команды?
  • Вопрос задан
  • 385 просмотров
Решения вопроса 1
@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'
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@robprane
Как написал Steven Konrov можно разбивать сообщение на команду и аргументы, но это неудобно для пользователей и чревато ошибками.
Если у вас есть база данных, то можно запоминать текущую команду каждого пользователя и в зависимости от этого обрабатывать следующие сообщения. Так и сообщения в группах не спутаются.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы