Трудности с изученем обработчика сообщений 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.
Я не смог найти ответ на этот вопрос.