mirror of
https://github.com/python-telegram-bot/python-telegram-bot.git
synced 2025-03-16 12:25:45 +01:00
commit
c15371e8c0
2 changed files with 72 additions and 6 deletions
|
@ -214,13 +214,68 @@ class Filters(object):
|
|||
|
||||
class _StatusUpdate(BaseFilter):
|
||||
|
||||
class _NewChatMembers(BaseFilter):
|
||||
|
||||
def filter(self, message):
|
||||
return bool(message.new_chat_members)
|
||||
|
||||
new_chat_members = _NewChatMembers()
|
||||
|
||||
class _LeftChatMember(BaseFilter):
|
||||
|
||||
def filter(self, message):
|
||||
return bool(message.left_chat_member)
|
||||
|
||||
left_chat_member = _LeftChatMember()
|
||||
|
||||
class _NewChatTitle(BaseFilter):
|
||||
|
||||
def filter(self, message):
|
||||
return bool(message.new_chat_title)
|
||||
|
||||
new_chat_title = _NewChatTitle()
|
||||
|
||||
class _NewChatPhoto(BaseFilter):
|
||||
|
||||
def filter(self, message):
|
||||
return bool(message.new_chat_photo)
|
||||
|
||||
new_chat_photo = _NewChatPhoto()
|
||||
|
||||
class _DeleteChatPhoto(BaseFilter):
|
||||
|
||||
def filter(self, message):
|
||||
return bool(message.delete_chat_photo)
|
||||
|
||||
delete_chat_photo = _DeleteChatPhoto()
|
||||
|
||||
class _ChatCreated(BaseFilter):
|
||||
|
||||
def filter(self, message):
|
||||
return bool(message.group_chat_created or message.supergroup_chat_created or
|
||||
message.channel_chat_created)
|
||||
|
||||
chat_created = _ChatCreated()
|
||||
|
||||
class _Migrate(BaseFilter):
|
||||
|
||||
def filter(self, message):
|
||||
return bool(message.migrate_from_chat_id or message.migrate_to_chat_id)
|
||||
|
||||
migrate = _Migrate()
|
||||
|
||||
class _PinnedMessage(BaseFilter):
|
||||
|
||||
def filter(self, message):
|
||||
return bool(message.pinned_message)
|
||||
|
||||
pinned_message = _PinnedMessage()
|
||||
|
||||
def filter(self, message):
|
||||
return bool(message.new_chat_members or message.left_chat_member
|
||||
or message.new_chat_title or message.new_chat_photo
|
||||
or message.delete_chat_photo or message.group_chat_created
|
||||
or message.supergroup_chat_created or message.channel_chat_created
|
||||
or message.migrate_to_chat_id or message.migrate_from_chat_id
|
||||
or message.pinned_message)
|
||||
return bool(self.new_chat_members(message) or self.left_chat_member(message) or
|
||||
self.new_chat_title(message) or self.new_chat_photo(message) or
|
||||
self.delete_chat_photo(message) or self.chat_created(message) or
|
||||
self.migrate(message) or self.pinned_message(message))
|
||||
|
||||
status_update = _StatusUpdate()
|
||||
|
||||
|
|
|
@ -123,46 +123,57 @@ class FiltersTest(BaseTest, unittest.TestCase):
|
|||
|
||||
self.message.new_chat_members = ['test']
|
||||
self.assertTrue(Filters.status_update(self.message))
|
||||
self.assertTrue(Filters.status_update.new_chat_members(self.message))
|
||||
self.message.new_chat_members = None
|
||||
|
||||
self.message.left_chat_member = 'test'
|
||||
self.assertTrue(Filters.status_update(self.message))
|
||||
self.assertTrue(Filters.status_update.left_chat_member(self.message))
|
||||
self.message.left_chat_member = None
|
||||
|
||||
self.message.new_chat_title = 'test'
|
||||
self.assertTrue(Filters.status_update(self.message))
|
||||
self.assertTrue(Filters.status_update.new_chat_title(self.message))
|
||||
self.message.new_chat_title = ''
|
||||
|
||||
self.message.new_chat_photo = 'test'
|
||||
self.assertTrue(Filters.status_update(self.message))
|
||||
self.assertTrue(Filters.status_update.new_chat_photo(self.message))
|
||||
self.message.new_chat_photo = None
|
||||
|
||||
self.message.delete_chat_photo = True
|
||||
self.assertTrue(Filters.status_update(self.message))
|
||||
self.assertTrue(Filters.status_update.delete_chat_photo(self.message))
|
||||
self.message.delete_chat_photo = False
|
||||
|
||||
self.message.group_chat_created = True
|
||||
self.assertTrue(Filters.status_update(self.message))
|
||||
self.assertTrue(Filters.status_update.chat_created(self.message))
|
||||
self.message.group_chat_created = False
|
||||
|
||||
self.message.supergroup_chat_created = True
|
||||
self.assertTrue(Filters.status_update(self.message))
|
||||
self.assertTrue(Filters.status_update.chat_created(self.message))
|
||||
self.message.supergroup_chat_created = False
|
||||
|
||||
self.message.migrate_to_chat_id = 100
|
||||
self.assertTrue(Filters.status_update(self.message))
|
||||
self.assertTrue(Filters.status_update.migrate(self.message))
|
||||
self.message.migrate_to_chat_id = 0
|
||||
|
||||
self.message.migrate_from_chat_id = 100
|
||||
self.assertTrue(Filters.status_update(self.message))
|
||||
self.assertTrue(Filters.status_update.migrate(self.message))
|
||||
self.message.migrate_from_chat_id = 0
|
||||
|
||||
self.message.channel_chat_created = True
|
||||
self.assertTrue(Filters.status_update(self.message))
|
||||
self.assertTrue(Filters.status_update.chat_created(self.message))
|
||||
self.message.channel_chat_created = False
|
||||
|
||||
self.message.pinned_message = 'test'
|
||||
self.assertTrue(Filters.status_update(self.message))
|
||||
self.assertTrue(Filters.status_update.pinned_message(self.message))
|
||||
self.message.pinned_message = None
|
||||
|
||||
def test_entities_filter(self):
|
||||
|
|
Loading…
Add table
Reference in a new issue