Message Filters
Usefully filters to use in your handlers.
>>> from pywa import WhatsApp, types, filters
>>> wa = WhatsApp(...)
>>> @wa.on_message(filters.command("start"))
... def on_hi_msg(_: WhatsApp, m: types.Message):
... print("This is a welcome message!")
-
filters.forwarded: Filter[Message] = forwarded
-
filters.forwarded_many_times: Filter[Message] = filters.forwarded_many_times
-
filters.reply: Filter[Message] = filters.reply
-
pywa.filters.replays_to(*msg_ids)
Filter for updates that reply to any of the given message ids.
>>> replays_to("wamid.HBKHUIyNTM4NjAfiefhwojfMTNFQ0Q2MERGRjVDMUHUIGGA=")
- Return type:
Filter[Any]
-
filters.has_referred_product = has_referred_product
-
filters.text: Filter[Message] = filters.text
-
filters.is_command: Filter[Message] = is_command
-
pywa.filters.command(*cmds, prefixes='/!', ignore_case=False)
Filter for text messages that are commands.
>>> command("start", "hello", prefixes="/", ignore_case=True)
- Parameters:
*cmds (str) β The command/s to filter for (e.g. βstartβ, βhelloβ).
prefixes (str | Iterable[str]) β The prefix/s to filter for (default: β/!β, i.e. β/startβ).
ignore_case (bool) β Whether to ignore case when matching (default: False).
- Return type:
Filter[Message]
-
filters.media: Filter[Message] = filters.media
-
pywa.filters.mimetypes(*mmtps)
Filter for media messages that match any of the given mime types.
>>> mimetypes("application/pdf", "image/png")
- Return type:
Filter[Message]
-
pywa.filters.extensions(*exts)
Filter for media messages that match any of the given extensions.
>>> extensions(".pdf", ".png")
- Return type:
Filter[Message]
-
filters.has_caption: Filter[Message] = media_has_caption
-
filters.image: Filter[Message] = filters.image
-
filters.video: Filter[Message] = filters.video
-
filters.audio: Filter[Message] = filters.audio
-
filters.audio_only: Filter[Message] = audio_only
-
filters.voice: Filter[Message] = filters.voice
-
filters.document: Filter[Message] = filters.document
-
filters.sticker: Filter[Message] = filters.sticker
-
filters.animated_sticker: Filter[Message] = animated_sticker
-
filters.static_sticker: Filter[Message] = static_sticker
-
filters.reaction: Filter[Message] = filters.reaction
-
filters.reaction_added: Filter[Message] = reaction_added
-
filters.reaction_removed: Filter[Message] = reaction_removed
-
pywa.filters.reaction_emojis(*emojis)
Filter for custom reaction messages. pass emojis as strings.
>>> reaction_emojis("π", "π")
- Return type:
Filter[Message]
-
filters.unsupported: Filter[Message] = filters.unsupported
-
filters.location: Filter[Message] = filters.location
-
filters.current_location: Filter[Message] = current_location
-
pywa.filters.location_in_radius(lat, lon, radius)
Filter for location messages that are in a given radius.
>>> location_in_radius(lat=37.48508108998884, lon=-122.14744733542707, radius=1)
- Parameters:
lat (float) β Latitude of the center of the radius.
lon (float) β Longitude of the center of the radius.
radius (float) β Radius in kilometers.
- Return type:
Filter[Message]
-
filters.contacts: Filter[Message] = filters.contacts
-
filters.contact_info_shared: Filter[Message] = contact_info_shared
-
filters.contacts_has_wa: Filter[Message] = contacts_any_has_wa
-
filters.order: Filter[Message] = filters.order