Rename "build" to "create" (friendlier name)
This commit is contained in:
parent
d45caa6371
commit
7f1dd6d67e
@ -22,7 +22,7 @@ from .filter import Filter
|
|||||||
from ..types.bots import InlineKeyboardMarkup, ReplyKeyboardMarkup
|
from ..types.bots import InlineKeyboardMarkup, ReplyKeyboardMarkup
|
||||||
|
|
||||||
|
|
||||||
def build(name: str, func: callable, **kwargs) -> type:
|
def create(name: str, func: callable, **kwargs) -> type:
|
||||||
d = {"__call__": func}
|
d = {"__call__": func}
|
||||||
d.update(kwargs)
|
d.update(kwargs)
|
||||||
|
|
||||||
@ -33,109 +33,109 @@ class Filters:
|
|||||||
"""This class provides access to all Filters available in Pyrogram.
|
"""This class provides access to all Filters available in Pyrogram.
|
||||||
Filters are intended to be used with the :obj:`MessageHandler <pyrogram.MessageHandler>`."""
|
Filters are intended to be used with the :obj:`MessageHandler <pyrogram.MessageHandler>`."""
|
||||||
|
|
||||||
bot = build("Bot", lambda _, m: bool(m.from_user and m.from_user.is_bot))
|
bot = create("Bot", lambda _, m: bool(m.from_user and m.from_user.is_bot))
|
||||||
"""Filter messages coming from bots"""
|
"""Filter messages coming from bots"""
|
||||||
|
|
||||||
incoming = build("Incoming", lambda _, m: not m.outgoing)
|
incoming = create("Incoming", lambda _, m: not m.outgoing)
|
||||||
"""Filter incoming messages."""
|
"""Filter incoming messages."""
|
||||||
|
|
||||||
outgoing = build("Outgoing", lambda _, m: m.outgoing)
|
outgoing = create("Outgoing", lambda _, m: m.outgoing)
|
||||||
"""Filter outgoing messages."""
|
"""Filter outgoing messages."""
|
||||||
|
|
||||||
text = build("Text", lambda _, m: bool(m.text))
|
text = create("Text", lambda _, m: bool(m.text))
|
||||||
"""Filter text messages."""
|
"""Filter text messages."""
|
||||||
|
|
||||||
reply = build("Reply", lambda _, m: bool(m.reply_to_message))
|
reply = create("Reply", lambda _, m: bool(m.reply_to_message))
|
||||||
"""Filter messages that are replies to other messages."""
|
"""Filter messages that are replies to other messages."""
|
||||||
|
|
||||||
forwarded = build("Forwarded", lambda _, m: bool(m.forward_date))
|
forwarded = create("Forwarded", lambda _, m: bool(m.forward_date))
|
||||||
"""Filter messages that are forwarded."""
|
"""Filter messages that are forwarded."""
|
||||||
|
|
||||||
caption = build("Caption", lambda _, m: bool(m.caption))
|
caption = create("Caption", lambda _, m: bool(m.caption))
|
||||||
"""Filter media messages that contain captions."""
|
"""Filter media messages that contain captions."""
|
||||||
|
|
||||||
edited = build("Edited", lambda _, m: bool(m.edit_date))
|
edited = create("Edited", lambda _, m: bool(m.edit_date))
|
||||||
"""Filter edited messages."""
|
"""Filter edited messages."""
|
||||||
|
|
||||||
audio = build("Audio", lambda _, m: bool(m.audio))
|
audio = create("Audio", lambda _, m: bool(m.audio))
|
||||||
"""Filter messages that contain :obj:`Audio <pyrogram.api.types.pyrogram.Audio>` objects."""
|
"""Filter messages that contain :obj:`Audio <pyrogram.api.types.pyrogram.Audio>` objects."""
|
||||||
|
|
||||||
document = build("Document", lambda _, m: bool(m.document))
|
document = create("Document", lambda _, m: bool(m.document))
|
||||||
"""Filter messages that contain :obj:`Document <pyrogram.api.types.pyrogram.Document>` objects."""
|
"""Filter messages that contain :obj:`Document <pyrogram.api.types.pyrogram.Document>` objects."""
|
||||||
|
|
||||||
photo = build("Photo", lambda _, m: bool(m.photo))
|
photo = create("Photo", lambda _, m: bool(m.photo))
|
||||||
"""Filter messages that contain :obj:`Photo <pyrogram.api.types.pyrogram.PhotoSize>` objects."""
|
"""Filter messages that contain :obj:`Photo <pyrogram.api.types.pyrogram.PhotoSize>` objects."""
|
||||||
|
|
||||||
sticker = build("Sticker", lambda _, m: bool(m.sticker))
|
sticker = create("Sticker", lambda _, m: bool(m.sticker))
|
||||||
"""Filter messages that contain :obj:`Sticker <pyrogram.api.types.pyrogram.Sticker>` objects."""
|
"""Filter messages that contain :obj:`Sticker <pyrogram.api.types.pyrogram.Sticker>` objects."""
|
||||||
|
|
||||||
animation = build("GIF", lambda _, m: bool(m.animation))
|
animation = create("GIF", lambda _, m: bool(m.animation))
|
||||||
"""Filter messages that contain :obj:`Animation <pyrogram.api.types.pyrogram.Animation>` objects."""
|
"""Filter messages that contain :obj:`Animation <pyrogram.api.types.pyrogram.Animation>` objects."""
|
||||||
|
|
||||||
video = build("Video", lambda _, m: bool(m.video))
|
video = create("Video", lambda _, m: bool(m.video))
|
||||||
"""Filter messages that contain :obj:`Video <pyrogram.api.types.pyrogram.Video>` objects."""
|
"""Filter messages that contain :obj:`Video <pyrogram.api.types.pyrogram.Video>` objects."""
|
||||||
|
|
||||||
voice = build("Voice", lambda _, m: bool(m.voice))
|
voice = create("Voice", lambda _, m: bool(m.voice))
|
||||||
"""Filter messages that contain :obj:`Voice <pyrogram.api.types.pyrogram.Voice>` note objects."""
|
"""Filter messages that contain :obj:`Voice <pyrogram.api.types.pyrogram.Voice>` note objects."""
|
||||||
|
|
||||||
video_note = build("Voice", lambda _, m: bool(m.video_note))
|
video_note = create("Voice", lambda _, m: bool(m.video_note))
|
||||||
"""Filter messages that contain :obj:`VideoNote <pyrogram.api.types.pyrogram.VideoNote>` objects."""
|
"""Filter messages that contain :obj:`VideoNote <pyrogram.api.types.pyrogram.VideoNote>` objects."""
|
||||||
|
|
||||||
contact = build("Contact", lambda _, m: bool(m.contact))
|
contact = create("Contact", lambda _, m: bool(m.contact))
|
||||||
"""Filter messages that contain :obj:`Contact <pyrogram.api.types.pyrogram.Contact>` objects."""
|
"""Filter messages that contain :obj:`Contact <pyrogram.api.types.pyrogram.Contact>` objects."""
|
||||||
|
|
||||||
location = build("Location", lambda _, m: bool(m.location))
|
location = create("Location", lambda _, m: bool(m.location))
|
||||||
"""Filter messages that contain :obj:`Location <pyrogram.api.types.pyrogram.Location>` objects."""
|
"""Filter messages that contain :obj:`Location <pyrogram.api.types.pyrogram.Location>` objects."""
|
||||||
|
|
||||||
venue = build("Venue", lambda _, m: bool(m.venue))
|
venue = create("Venue", lambda _, m: bool(m.venue))
|
||||||
"""Filter messages that contain :obj:`Venue <pyrogram.api.types.pyrogram.Venue>` objects."""
|
"""Filter messages that contain :obj:`Venue <pyrogram.api.types.pyrogram.Venue>` objects."""
|
||||||
|
|
||||||
private = build("Private", lambda _, m: bool(m.chat and m.chat.type == "private"))
|
private = create("Private", lambda _, m: bool(m.chat and m.chat.type == "private"))
|
||||||
"""Filter messages sent in private chats."""
|
"""Filter messages sent in private chats."""
|
||||||
|
|
||||||
group = build("Group", lambda _, m: bool(m.chat and m.chat.type in {"group", "supergroup"}))
|
group = create("Group", lambda _, m: bool(m.chat and m.chat.type in {"group", "supergroup"}))
|
||||||
"""Filter messages sent in group or supergroup chats."""
|
"""Filter messages sent in group or supergroup chats."""
|
||||||
|
|
||||||
channel = build("Channel", lambda _, m: bool(m.chat and m.chat.type == "channel"))
|
channel = create("Channel", lambda _, m: bool(m.chat and m.chat.type == "channel"))
|
||||||
"""Filter messages sent in channels."""
|
"""Filter messages sent in channels."""
|
||||||
|
|
||||||
new_chat_members = build("NewChatMembers", lambda _, m: bool(m.new_chat_members))
|
new_chat_members = create("NewChatMembers", lambda _, m: bool(m.new_chat_members))
|
||||||
"""Filter service messages for new chat members."""
|
"""Filter service messages for new chat members."""
|
||||||
|
|
||||||
left_chat_member = build("LeftChatMember", lambda _, m: bool(m.left_chat_member))
|
left_chat_member = create("LeftChatMember", lambda _, m: bool(m.left_chat_member))
|
||||||
"""Filter service messages for members that left the chat."""
|
"""Filter service messages for members that left the chat."""
|
||||||
|
|
||||||
new_chat_title = build("NewChatTitle", lambda _, m: bool(m.new_chat_title))
|
new_chat_title = create("NewChatTitle", lambda _, m: bool(m.new_chat_title))
|
||||||
"""Filter service messages for new chat titles."""
|
"""Filter service messages for new chat titles."""
|
||||||
|
|
||||||
new_chat_photo = build("NewChatPhoto", lambda _, m: bool(m.new_chat_photo))
|
new_chat_photo = create("NewChatPhoto", lambda _, m: bool(m.new_chat_photo))
|
||||||
"""Filter service messages for new chat photos."""
|
"""Filter service messages for new chat photos."""
|
||||||
|
|
||||||
delete_chat_photo = build("DeleteChatPhoto", lambda _, m: bool(m.delete_chat_photo))
|
delete_chat_photo = create("DeleteChatPhoto", lambda _, m: bool(m.delete_chat_photo))
|
||||||
"""Filter service messages for deleted photos."""
|
"""Filter service messages for deleted photos."""
|
||||||
|
|
||||||
group_chat_created = build("GroupChatCreated", lambda _, m: bool(m.group_chat_created))
|
group_chat_created = create("GroupChatCreated", lambda _, m: bool(m.group_chat_created))
|
||||||
"""Filter service messages for group chat creations."""
|
"""Filter service messages for group chat creations."""
|
||||||
|
|
||||||
supergroup_chat_created = build("SupergroupChatCreated", lambda _, m: bool(m.supergroup_chat_created))
|
supergroup_chat_created = create("SupergroupChatCreated", lambda _, m: bool(m.supergroup_chat_created))
|
||||||
"""Filter service messages for supergroup chat creations."""
|
"""Filter service messages for supergroup chat creations."""
|
||||||
|
|
||||||
channel_chat_created = build("ChannelChatCreated", lambda _, m: bool(m.channel_chat_created))
|
channel_chat_created = create("ChannelChatCreated", lambda _, m: bool(m.channel_chat_created))
|
||||||
"""Filter service messages for channel chat creations."""
|
"""Filter service messages for channel chat creations."""
|
||||||
|
|
||||||
migrate_to_chat_id = build("MigrateToChatId", lambda _, m: bool(m.migrate_to_chat_id))
|
migrate_to_chat_id = create("MigrateToChatId", lambda _, m: bool(m.migrate_to_chat_id))
|
||||||
"""Filter service messages that contain migrate_to_chat_id."""
|
"""Filter service messages that contain migrate_to_chat_id."""
|
||||||
|
|
||||||
migrate_from_chat_id = build("MigrateFromChatId", lambda _, m: bool(m.migrate_from_chat_id))
|
migrate_from_chat_id = create("MigrateFromChatId", lambda _, m: bool(m.migrate_from_chat_id))
|
||||||
"""Filter service messages that contain migrate_from_chat_id."""
|
"""Filter service messages that contain migrate_from_chat_id."""
|
||||||
|
|
||||||
pinned_message = build("PinnedMessage", lambda _, m: bool(m.pinned_message))
|
pinned_message = create("PinnedMessage", lambda _, m: bool(m.pinned_message))
|
||||||
"""Filter service messages for pinned messages."""
|
"""Filter service messages for pinned messages."""
|
||||||
|
|
||||||
reply_keyboard = build("ReplyKeyboard", lambda _, m: isinstance(m.reply_markup, ReplyKeyboardMarkup))
|
reply_keyboard = create("ReplyKeyboard", lambda _, m: isinstance(m.reply_markup, ReplyKeyboardMarkup))
|
||||||
"""Filter messages containing reply keyboard markups"""
|
"""Filter messages containing reply keyboard markups"""
|
||||||
|
|
||||||
inline_keyboard = build("InlineKeyboard", lambda _, m: isinstance(m.reply_markup, InlineKeyboardMarkup))
|
inline_keyboard = create("InlineKeyboard", lambda _, m: isinstance(m.reply_markup, InlineKeyboardMarkup))
|
||||||
"""Filter messages containing inline keyboard markups"""
|
"""Filter messages containing inline keyboard markups"""
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@ -174,7 +174,7 @@ class Filters:
|
|||||||
|
|
||||||
return bool(m.command)
|
return bool(m.command)
|
||||||
|
|
||||||
return build(
|
return create(
|
||||||
"Command",
|
"Command",
|
||||||
f,
|
f,
|
||||||
c={command if case_sensitive
|
c={command if case_sensitive
|
||||||
@ -206,7 +206,7 @@ class Filters:
|
|||||||
m.matches = [i for i in _.p.finditer(m.text or "")]
|
m.matches = [i for i in _.p.finditer(m.text or "")]
|
||||||
return bool(m.matches)
|
return bool(m.matches)
|
||||||
|
|
||||||
return build("Regex", f, p=re.compile(pattern, flags))
|
return create("Regex", f, p=re.compile(pattern, flags))
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def user(user: int or str or list):
|
def user(user: int or str or list):
|
||||||
@ -216,7 +216,7 @@ class Filters:
|
|||||||
user (``int`` | ``str`` | ``list``):
|
user (``int`` | ``str`` | ``list``):
|
||||||
The user or list of user IDs (int) or usernames (str) the filter should look for.
|
The user or list of user IDs (int) or usernames (str) the filter should look for.
|
||||||
"""
|
"""
|
||||||
return build(
|
return create(
|
||||||
"User",
|
"User",
|
||||||
lambda _, m: bool(m.from_user
|
lambda _, m: bool(m.from_user
|
||||||
and (m.from_user.id in _.u
|
and (m.from_user.id in _.u
|
||||||
@ -237,7 +237,7 @@ class Filters:
|
|||||||
chat (``int`` | ``str`` | ``list``):
|
chat (``int`` | ``str`` | ``list``):
|
||||||
The chat or list of chat IDs (int) or usernames (str) the filter should look for.
|
The chat or list of chat IDs (int) or usernames (str) the filter should look for.
|
||||||
"""
|
"""
|
||||||
return build(
|
return create(
|
||||||
"Chat",
|
"Chat",
|
||||||
lambda _, m: bool(m.chat
|
lambda _, m: bool(m.chat
|
||||||
and (m.chat.id in _.c
|
and (m.chat.id in _.c
|
||||||
@ -250,7 +250,7 @@ class Filters:
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
service = build(
|
service = create(
|
||||||
"Service",
|
"Service",
|
||||||
lambda _, m: bool(
|
lambda _, m: bool(
|
||||||
Filters.new_chat_members(m)
|
Filters.new_chat_members(m)
|
||||||
@ -268,7 +268,7 @@ class Filters:
|
|||||||
)
|
)
|
||||||
"""Filter all service messages."""
|
"""Filter all service messages."""
|
||||||
|
|
||||||
media = build(
|
media = create(
|
||||||
"Media",
|
"Media",
|
||||||
lambda _, m: bool(
|
lambda _, m: bool(
|
||||||
Filters.audio(m)
|
Filters.audio(m)
|
||||||
|
Loading…
Reference in New Issue
Block a user