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] = <pywa.filters.forwarded object>
-
filters.forwarded_many_times: Filter[Message] = <pywa.filters.forwarded_many_times object>
-
filters.reply: Filter[Message] = <pywa.filters.reply object>
-
pywa.filters.replays_to(*msg_ids)
Filter for messages that reply to any of the given message ids.
>>> replays_to("wamid.HBKHUIyNTM4NjAfiefhwojfMTNFQ0Q2MERGRjVDMUHUIGGA=")
- Return type:
Filter[Message]
-
filters.has_referred_product = <pywa.filters.has_referred_product object>
-
filters.text: Filter[Message] = <pywa.filters.text object>
-
filters.is_command: Filter[Message] = <pywa.filters.is_command object>
-
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] = <pywa.filters.media object>
-
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] = <pywa.filters.media_has_caption object>
-
filters.image: Filter[Message] = <pywa.filters.image object>
-
filters.video: Filter[Message] = <pywa.filters.video object>
-
filters.audio: Filter[Message] = <pywa.filters.audio object>
-
filters.audio_only: Filter[Message] = <pywa.filters.audio_only object>
-
filters.voice: Filter[Message] = <pywa.filters.voice object>
-
filters.document: Filter[Message] = <pywa.filters.document object>
-
filters.sticker: Filter[Message] = <pywa.filters.sticker object>
-
filters.animated_sticker: Filter[Message] = <pywa.filters.animated_sticker object>
-
filters.static_sticker: Filter[Message] = <pywa.filters.static_sticker object>
-
filters.reaction: Filter[Message] = <pywa.filters.reaction object>
-
filters.reaction_added: Filter[Message] = <pywa.filters.reaction_added object>
-
filters.reaction_removed: Filter[Message] = <pywa.filters.reaction_removed object>
-
pywa.filters.reaction_emojis(*emojis)
Filter for custom reaction messages. pass emojis as strings.
>>> reaction_emojis("π","π")
- Return type:
Filter[Message]
-
filters.unsupported: Filter[Message] = <pywa.filters.unsupported object>
-
filters.location: Filter[Message] = <pywa.filters.location object>
-
filters.current_location: Filter[Message] = <pywa.filters.current_location object>
-
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 | int) β Radius in kilometers.
- Return type:
Filter[Message]
-
filters.contacts: Filter[Message] = <pywa.filters.contacts object>
-
filters.contact_info_shared: Filter[Message] = <pywa.filters.contact_info_shared object>
-
filters.contacts_has_wa: Filter[Message] = <pywa.filters.contacts_any_has_wa object>
-
filters.order: Filter[Message] = <pywa.filters.order object>