From f5de0eeacfc6cd8244ff1c0446dd875d6f6d49e5 Mon Sep 17 00:00:00 2001 From: Badiboy Date: Thu, 19 Aug 2021 22:46:12 +0300 Subject: [PATCH 1/2] Simplify and speedup _test_filter --- README.md | 18 +----------------- telebot/__init__.py | 33 +++++++++++++++++++++------------ 2 files changed, 22 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index d1baef7..09e45a7 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ ##

Supported Bot API version: 5.3! -##Contents +## Contents * [Getting started.](#getting-started) * [Writing your first bot](#writing-your-first-bot) @@ -636,23 +636,8 @@ apihelper.proxy = {'https':'socks5://userproxy:password@proxy_address:port'} * ✔ [Bot API 2.0](https://core.telegram.org/bots/api-changelog#april-9-2016) -## Change log - -27.04.2020 - Poll and Dice are up to date. -Python2 conformance is not checked any more due to EOL. - -11.04.2020 - Refactoring. new_chat_member is out of support. Bugfix in html_text. Started Bot API conformance checking. - -06.06.2019 - Added polls support (Poll). Added functions send_poll, stop_poll - ## F.A.Q. -### Bot 2.0 - -April 9,2016 Telegram release new bot 2.0 API, which has a drastic revision especially for the change of method's interface.If you want to update to the latest version, please make sure you've switched bot's code to bot 2.0 method interface. - -[More information about pyTelegramBotAPI support bot2.0](https://github.com/eternnoir/pyTelegramBotAPI/issues/130) - ### How can I distinguish a User and a GroupChat in message.chat? Telegram Bot API support new type Chat for message.chat. @@ -682,7 +667,6 @@ Bot instances that were idle for a long time might be rejected by the server whe Get help. Discuss. Chat. * Join the [pyTelegramBotAPI Telegram Chat Group](https://telegram.me/joinchat/Bn4ixj84FIZVkwhk2jag6A) -* We now have a Telegram Channel as well! Keep yourself up to date with API changes, and [join it](https://telegram.me/pytelegrambotapi). ## More examples diff --git a/telebot/__init__.py b/telebot/__init__.py index e9aaff6..29fabe0 100644 --- a/telebot/__init__.py +++ b/telebot/__init__.py @@ -3040,19 +3040,28 @@ class TeleBot: def _test_filter(message_filter, filter_value, message): """ Test filters - :param message_filter: - :param filter_value: - :param message: - :return: + :param message_filter: Filter type passed in handler + :param filter_value: Filter value passed in handler + :param message: Message to test + :return: True if filter conforms """ - test_cases = { - 'content_types': lambda msg: msg.content_type in filter_value, - 'regexp': lambda msg: msg.content_type == 'text' and re.search(filter_value, msg.text, re.IGNORECASE), - 'commands': lambda msg: msg.content_type == 'text' and util.extract_command(msg.text) in filter_value, - 'func': lambda msg: filter_value(msg) - } - - return test_cases.get(message_filter, lambda msg: False)(message) + # test_cases = { + # 'content_types': lambda msg: msg.content_type in filter_value, + # 'regexp': lambda msg: msg.content_type == 'text' and re.search(filter_value, msg.text, re.IGNORECASE), + # 'commands': lambda msg: msg.content_type == 'text' and util.extract_command(msg.text) in filter_value, + # 'func': lambda msg: filter_value(msg) + # } + # return test_cases.get(message_filter, lambda msg: False)(message) + if message_filter == 'content_types': + return message.content_type in filter_value + elif message_filter == 'regexp': + return message.content_type == 'text' and re.search(filter_value, message.text, re.IGNORECASE) + elif message_filter == 'commands': + return message.content_type == 'text' and util.extract_command(message.text) in filter_value + elif message_filter == 'func': + return filter_value(message) + else: + return False def _notify_command_handlers(self, handlers, new_messages): """ From 3efc2cf86902318cf4e37a78f4ce2e0a1ba352cf Mon Sep 17 00:00:00 2001 From: Badiboy Date: Thu, 19 Aug 2021 23:36:37 +0300 Subject: [PATCH 2/2] Typo --- telebot/__init__.py | 64 ++++++++++++++++++--------------------------- 1 file changed, 26 insertions(+), 38 deletions(-) diff --git a/telebot/__init__.py b/telebot/__init__.py index 29fabe0..49a24ca 100644 --- a/telebot/__init__.py +++ b/telebot/__init__.py @@ -2544,11 +2544,11 @@ class TeleBot: :return: decorated function """ handler_dict = self._build_handler_dict(callback, - content_types=content_types, - commands=commands, - regexp=regexp, - func=func, - **kwargs) + content_types=content_types, + commands=commands, + regexp=regexp, + func=func, + **kwargs) self.add_message_handler(handler_dict) def edited_message_handler(self, commands=None, regexp=None, func=None, content_types=None, **kwargs): """ @@ -2595,11 +2595,11 @@ class TeleBot: :return: decorated function """ handler_dict = self._build_handler_dict(callback, - content_types=content_types, - commands=commands, - regexp=regexp, - func=func, - **kwargs) + content_types=content_types, + commands=commands, + regexp=regexp, + func=func, + **kwargs) self.add_edited_message_handler(handler_dict) def channel_post_handler(self, commands=None, regexp=None, func=None, content_types=None, **kwargs): """ @@ -2646,11 +2646,11 @@ class TeleBot: :return: decorated function """ handler_dict = self._build_handler_dict(callback, - content_types=content_types, - commands=commands, - regexp=regexp, - func=func, - **kwargs) + content_types=content_types, + commands=commands, + regexp=regexp, + func=func, + **kwargs) self.add_channel_post_handler(handler_dict) def edited_channel_post_handler(self, commands=None, regexp=None, func=None, content_types=None, **kwargs): """ @@ -2697,11 +2697,11 @@ class TeleBot: :return: decorated function """ handler_dict = self._build_handler_dict(callback, - content_types=content_types, - commands=commands, - regexp=regexp, - func=func, - **kwargs) + content_types=content_types, + commands=commands, + regexp=regexp, + func=func, + **kwargs) self.add_edited_channel_post_handler(handler_dict) def inline_handler(self, func, **kwargs): @@ -2734,9 +2734,7 @@ class TeleBot: :param func: :return: decorated function """ - handler_dict = self._build_handler_dict(callback, - func=func, - **kwargs) + handler_dict = self._build_handler_dict(callback, func=func, **kwargs) self.add_inline_handler(handler_dict) def chosen_inline_handler(self, func, **kwargs): @@ -2769,9 +2767,7 @@ class TeleBot: :param func: :return: decorated function """ - handler_dict = self._build_handler_dict(callback, - func=func, - **kwargs) + handler_dict = self._build_handler_dict(callback, func=func, **kwargs) self.add_chosen_inline_handler(handler_dict) @@ -2805,9 +2801,7 @@ class TeleBot: :param func: :return: decorated function """ - handler_dict = self._build_handler_dict(callback, - func=func, - **kwargs) + handler_dict = self._build_handler_dict(callback, func=func, **kwargs) self.add_callback_query_handler(handler_dict) def shipping_query_handler(self, func, **kwargs): @@ -2840,9 +2834,7 @@ class TeleBot: :param func: :return: decorated function """ - handler_dict = self._build_handler_dict(callback, - func=func, - **kwargs) + handler_dict = self._build_handler_dict(callback, func=func, **kwargs) self.add_shipping_query_handler(handler_dict) def pre_checkout_query_handler(self, func, **kwargs): @@ -2875,9 +2867,7 @@ class TeleBot: :param func: :return: decorated function """ - handler_dict = self._build_handler_dict(callback, - func=func, - **kwargs) + handler_dict = self._build_handler_dict(callback, func=func, **kwargs) self.add_pre_checkout_query_handler(handler_dict) def poll_handler(self, func, **kwargs): @@ -3015,9 +3005,7 @@ class TeleBot: :param func: :return: decorated function """ - handler_dict = self._build_handler_dict(callback, - func=func, - **kwargs) + handler_dict = self._build_handler_dict(callback, func=func, **kwargs) self.add_chat_member_handler(handler_dict) def _test_message_handler(self, message_handler, message):