Трудности с изученем обработчика сообщений PyTelegramBotApi

Да, понимаю, может это и какой-то глупый вопрос, но тем не менее я не могу найти ответа. Проблема заключается в том, что в документации данного модуля есть следующее:

@bot.message_handler(commands=['hello'])
@bot.message_handler(func=lambda msg: msg.text.encode("utf-8") == SOME_FANCY_EMOJI)
def send_something(message):
    pass

Это сложенный обработчик, который создаёт некую "функцию", которая ответит на команду /hello или на любой эмоджи (вот как раз про второе и будет идти речь).

Именно часть ( ... msg: msg.text.encode("utf-8") == SOME_FANCY_EMOJI) является мне не понятной.

Начнём по порядку.

  • "msg: " написанное после функции, определяет "вид сообщения" (?!)
  • "msg.text.encode("utf-8:")" обозначает кодировку, но зачем её вписывать???
  • ... == SOME_FANCY_EMOJI) самое непонятное для меня: "сообщение: кодировка == переменная"... что?

Решил я, значит, проверить это всё на практике, и получаю ошибку о несуществовании переменной SOME_FANCY_EMOJI. Создаю эту переменную, но обработчик не реагирует на эмоджи (по понятным на то причинам пустоты переменной).
Лезу в pypi и ищу там модуль 'emoji', и перед обработчиком написал следующее:

SOME_FANCY_EMOJI = ':thumbs_up:'

Ошибок нет, но не реагирует на эмоцию. Переделываю:

SOME_FANCY_EMOJI = :thumbs_up:

Ошибка есть. Меняю:

SOME_FANCY_EMOJI = '?'

Ошибки нет, но всё ещё не реагирует, караул!!!!

В этом и состоит вся моя проблема: непонимание строения "сообщение: кодировка == переменная", и то, что бот не реагирует на эмоции

P.S.

Я не смог найти ответ на этот вопрос.


Ответы (0 шт):