TransWikia.com

Как делаются команды с опциями? Python Telegram бот

Stack Overflow на русском Asked on December 28, 2020

Пример:
/check (Текст)
(Текст) должно записываться в переменную

2 Answers

Вам поможет split():

Отправим боту: /check 1 2 3

@bot.message_handler(commands=['check'])
def check(message):
    print(message.text.split())

>>> ['/check', '1', '2', '3']

    print(message.text.split()[1])  # [0] будет выводить /check
    print(message.text.split()[2])
    print(message.text.split()[3])

>>> 1
    2
    3

только не забывайте обрабатывать len() и delimiter

Correct answer by Violet on December 28, 2020

Никак. Такого прям синтаксиса или готовых методов библиотеки нет. Вы видите команду в пакете пришедшем от Телеграм, и дальше просто производите парсинг всей оставшейся строки. Только вручную. Так как прям синтаксиса команды с параметрами в самом Телеграме не зафиксировано ни какого. Можно так:

/command1567

в этом лучае нужно будет парсить само тело команды что бы выделить из него параметр 1567

можно так:

/command 1567

в этом случае нужно будет парсить оставшуюся строчку после команды

а можно придумать и свои варианты типа:

/command param=value

тогда парсинг команды будет в разы проще, но как единая ссылка работать эта команда не сможет, а значит её и второй мной указанный вариант будет сложней использовать пользователю вашего бота

Answered by Сабир Исламов on December 28, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP