python телеграм бот
как сделать одну и ту же команду к примеру bot.send_message(message.chat.id, "LOL") но что бы работало на 2 разных команды
Ответы (2 шт):
Автор решения: Денис
→ Ссылка
Два варианта... Первый:
@bot.message_handler(content_types=["text"])
def test(message):
if message.text == 'komand_one':
bot.send_message(message.chat.id, "LOL")
if message.text == 'komand_two':
bot.send_message(message.chat.id, "LOL")
Второй:
@bot.message_handler(commands = ['one'])
def test(message):
bot.send_message(message.chat.id, "LOL")
@bot.message_handler(commands = ['two'])
def test(message):
bot.send_message(message.chat.id, "LOL")
Автор решения: oleksandrigo
→ Ссылка
Хоть ответ уже есть напишу, более, скажем так, красивый вариант. Но думаю стоит для начала немного прояснить некоторые моменты.
Вы работаете с системой где вы ловите данные от телеграмма и как-то обрабатываете их, имеется ввиду хендлеры. То бишь если вы сделаете хендлер, который ловит написание юзером определенной команды (по факту это слеш с текстом, но фильтр для хендлера другой) то, то что вы напишите в хендлере будет выполнятся. Даже если это страшно-ужасное повторение кода, он будет работать.
# ещё кое-что, если вы намерены ловить исключительно текст, то писать
# content_types=["text"] не обязательно, это стоит по умолчанию
# юзаем фильтр где проверяем будет ли наш текст равен определенным строкам
# Это при условии что вы ловите не команды, а просто текст
@bot.message_handler(func=lambda message: message.text in ["command_one", "command_two"])
def text_one_two(message):
bot.send_message(message.chat.id, "LOL")
# Это при условии что ловите команды, тут красивее
@bot.message_handler(commands=['command_one', 'command_two'])
def command_one_two(message):
bot.send_message(message.chat.id, "LOL")