1
0
mirror of https://github.com/eternnoir/pyTelegramBotAPI.git synced 2023-08-10 21:12:57 +03:00

is_private

This commit is contained in:
coder2020official 2021-09-10 17:30:17 +05:00
parent dc9f8db556
commit 644c6b9082

View File

@ -2476,7 +2476,7 @@ class TeleBot:
else: else:
self.default_middleware_handlers.append(handler) self.default_middleware_handlers.append(handler)
def message_handler(self, commands=None, regexp=None, func=None, content_types=None, **kwargs): def message_handler(self, commands=None, regexp=None, func=None, content_types=None, is_private=None, **kwargs):
""" """
Message handler decorator. Message handler decorator.
This decorator can be used to decorate functions that must handle certain types of messages. This decorator can be used to decorate functions that must handle certain types of messages.
@ -2491,6 +2491,11 @@ class TeleBot:
def command_help(message): def command_help(message):
bot.send_message(message.chat.id, 'Did someone call for help?') bot.send_message(message.chat.id, 'Did someone call for help?')
# Handles messages in private chat
@bot.message_handler(is_private=True)
def command_help(message):
bot.send_message(message.chat.id, 'Private chat detected, sir!')
# Handle all sent documents of type 'text/plain'. # Handle all sent documents of type 'text/plain'.
@bot.message_handler(func=lambda message: message.document.mime_type == 'text/plain', @bot.message_handler(func=lambda message: message.document.mime_type == 'text/plain',
content_types=['document']) content_types=['document'])
@ -2508,6 +2513,7 @@ class TeleBot:
:param func: Optional lambda function. The lambda receives the message to test as the first parameter. :param func: Optional lambda function. The lambda receives the message to test as the first parameter.
It must return True if the command should handle the message. It must return True if the command should handle the message.
:param content_types: Supported message content types. Must be a list. Defaults to ['text']. :param content_types: Supported message content types. Must be a list. Defaults to ['text'].
:param is_private: True for private chat
""" """
if content_types is None: if content_types is None:
@ -2518,6 +2524,7 @@ class TeleBot:
content_types=content_types, content_types=content_types,
commands=commands, commands=commands,
regexp=regexp, regexp=regexp,
is_private=is_private,
func=func, func=func,
**kwargs) **kwargs)
self.add_message_handler(handler_dict) self.add_message_handler(handler_dict)
@ -2533,7 +2540,7 @@ class TeleBot:
""" """
self.message_handlers.append(handler_dict) self.message_handlers.append(handler_dict)
def register_message_handler(self, callback, content_types=None, commands=None, regexp=None, func=None, **kwargs): def register_message_handler(self, callback, content_types=None, commands=None, regexp=None, func=None, is_private=None, **kwargs):
""" """
Registers message handler. Registers message handler.
:param callback: function to be called :param callback: function to be called
@ -2541,6 +2548,7 @@ class TeleBot:
:param commands: list of commands :param commands: list of commands
:param regexp: :param regexp:
:param func: :param func:
:param is_private: True for private chat
:return: decorated function :return: decorated function
""" """
handler_dict = self._build_handler_dict(callback, handler_dict = self._build_handler_dict(callback,
@ -2548,15 +2556,17 @@ class TeleBot:
commands=commands, commands=commands,
regexp=regexp, regexp=regexp,
func=func, func=func,
is_private=is_private,
**kwargs) **kwargs)
self.add_message_handler(handler_dict) self.add_message_handler(handler_dict)
def edited_message_handler(self, commands=None, regexp=None, func=None, content_types=None, **kwargs): def edited_message_handler(self, commands=None, regexp=None, func=None, content_types=None, is_private=None, **kwargs):
""" """
Edit message handler decorator Edit message handler decorator
:param commands: :param commands:
:param regexp: :param regexp:
:param func: :param func:
:param content_types: :param content_types:
:param is_private: True for private chat
:param kwargs: :param kwargs:
:return: :return:
""" """
@ -2570,6 +2580,7 @@ class TeleBot:
regexp=regexp, regexp=regexp,
func=func, func=func,
content_types=content_types, content_types=content_types,
is_private=is_private,
**kwargs) **kwargs)
self.add_edited_message_handler(handler_dict) self.add_edited_message_handler(handler_dict)
return handler return handler
@ -2584,7 +2595,7 @@ class TeleBot:
""" """
self.edited_message_handlers.append(handler_dict) self.edited_message_handlers.append(handler_dict)
def register_edited_message_handler(self, callback, content_types=None, commands=None, regexp=None, func=None, **kwargs): def register_edited_message_handler(self, callback, content_types=None, commands=None, regexp=None, func=None, is_private=None, **kwargs):
""" """
Registers edited message handler. Registers edited message handler.
:param callback: function to be called :param callback: function to be called
@ -2592,6 +2603,7 @@ class TeleBot:
:param commands: list of commands :param commands: list of commands
:param regexp: :param regexp:
:param func: :param func:
:param is_private: True for private chat
:return: decorated function :return: decorated function
""" """
handler_dict = self._build_handler_dict(callback, handler_dict = self._build_handler_dict(callback,
@ -2599,6 +2611,7 @@ class TeleBot:
commands=commands, commands=commands,
regexp=regexp, regexp=regexp,
func=func, func=func,
is_private=is_private,
**kwargs) **kwargs)
self.add_edited_message_handler(handler_dict) self.add_edited_message_handler(handler_dict)
def channel_post_handler(self, commands=None, regexp=None, func=None, content_types=None, **kwargs): def channel_post_handler(self, commands=None, regexp=None, func=None, content_types=None, **kwargs):
@ -3046,6 +3059,8 @@ class TeleBot:
return message.content_type == 'text' and re.search(filter_value, message.text, re.IGNORECASE) return message.content_type == 'text' and re.search(filter_value, message.text, re.IGNORECASE)
elif message_filter == 'commands': elif message_filter == 'commands':
return message.content_type == 'text' and util.extract_command(message.text) in filter_value return message.content_type == 'text' and util.extract_command(message.text) in filter_value
elif message_filter == 'is_private':
return message.chat.type == 'private'
elif message_filter == 'func': elif message_filter == 'func':
return filter_value(message) return filter_value(message)
else: else: