Skip to content
15 changes: 15 additions & 0 deletions pywa/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@
CallStatusHandler,
CallTerminateHandler,
ChatOpenedHandler,
CoexistenceDeletedMessageHandler,
CoexistenceEditedMessageHandler,
CoexistenceMessageHandler,
DeletedMessageHandler,
EditedMessageHandler,
FlowCompletionHandler,
FlowRequestCallbackWrapper,
FlowRequestHandler,
Expand Down Expand Up @@ -65,9 +70,14 @@
CallStatus,
CallTerminate,
ChatOpened,
CoexistenceDeletedMessage,
CoexistenceEditedMessage,
CoexistenceMessage,
Command,
CommerceSettings,
Contact,
DeletedMessage,
EditedMessage,
FlowButton,
FlowCategory,
FlowMetricGranularity,
Expand Down Expand Up @@ -170,6 +180,11 @@ class WhatsApp(Server, _HandlerDecorators, _Listeners):
_async_allowed = False
_handlers_to_updates: dict[type[Handler], type[BaseUpdate]] = {
MessageHandler: Message,
EditedMessageHandler: EditedMessage,
DeletedMessageHandler: DeletedMessage,
CoexistenceMessageHandler: CoexistenceMessage,
CoexistenceEditedMessageHandler: CoexistenceEditedMessage,
CoexistenceDeletedMessageHandler: CoexistenceDeletedMessage,
MessageStatusHandler: MessageStatus,
CallbackButtonHandler: CallbackButton,
CallbackSelectionHandler: CallbackSelection,
Expand Down
26 changes: 26 additions & 0 deletions pywa/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,11 @@
from .types import CallStatus as _Cst
from .types import CallTerminate as _Ct
from .types import ChatOpened as _Co
from .types import CoexistenceDeletedMessage as _CoexDelMsg
from .types import CoexistenceEditedMessage as _CoexEditMsg
from .types import CoexistenceMessage as _CoexMsg
from .types import DeletedMessage as _DelMsg
from .types import EditedMessage as _EditMsg
from .types import FlowCompletion as _Fc
from .types import IdentityChange as _Ic
from .types import Message as _Msg
Expand Down Expand Up @@ -718,6 +723,27 @@ def reaction_emojis(*emojis: str) -> Filter:
unsupported = new(lambda _, m: m.type == _Mt.UNSUPPORTED, name="unsupported")
"""Filter for all unsupported messages."""

edited_message = new(lambda _, m: isinstance(m, _EditMsg), name="edited_message")
"""Filter for edited messages."""

deleted_message = new(lambda _, m: isinstance(m, _DelMsg), name="deleted_message")
"""Filter for deleted messages."""


coexistence_message = new(
lambda _, m: isinstance(m, _CoexMsg), name="coexistence_message"
)
"""Filter for coexistence messages."""

coexistence_edited_message = new(
lambda _, m: isinstance(m, _CoexEditMsg), name="coexistence_edited_message"
)
"""Filter for coexistence edited messages."""

coexistence_deleted_message = new(
lambda _, m: isinstance(m, _CoexDelMsg), name="coexistence_deleted_message"
)
"""Filter for coexistence deleted messages."""

callback_button = new(lambda _, c: isinstance(c, _Clb), name="callback_button")
"""Filter for callback buttons."""
Expand Down
Loading