Как создать гиперссылку (НЕ НА САЙТ) на саму ФУНКЦИЮ В КОДЕ

Рейтинг: 0Ответов: 1Опубликовано: 29.01.2023
import telebot
import config

bot = telebot.TeleBot(config.token)

@bot.message_handler(commands=["start"])
def hello(message):
    bot.send_message(message.chat.id, '[en](........)', '[ru](........)' parse_mode='Markdown')

def en(message):
    bot.send_message(message.caht.id, "you choose en")

def ru(message):
    bot.send_message(message.caht.id, "you choose ru")

bot.infinity_polling()

Ответы

▲ 0Принят

Вы можете сделать функции en и ru не просто функциями, а также и коммандами для бота при помощи декоратора @bot.message_handler(commands=["ru"]), где "ru" - это коммада для вызова функции. Вы также можете использовать несколько комманд для одной функции @bot.message_handler(commands=["ru", "ру", "russion", "русский"]), функция ru с таким декоратором будет срабатвать на комманды /ru, /ру, /russion, /русский. Также если я не ошибаюсь если перед каким либо словом в сообщении идёт '/', то телеграм воспринимает его как комманду, и при нажатии на этот текст на мобильных устройствах эта комманда автоматически отправиться(насчёт компьютерной версии телеграм я не уверен). Вот Ваш код с нужными декораторами:

import telebot
import config

bot = telebot.TeleBot(config.token)

@bot.message_handler(commands=["start"])
def hello(message):
    bot.send_message(message.chat.id, '/en\n/ru')

@bot.message_handler(commands=["en"])
def en(message):
    bot.send_message(message.caht.id, "you choose en")

@bot.message_handler(commands=["ru"])
def ru(message):
    bot.send_message(message.caht.id, "you choose ru")

bot.infinity_polling()