slidge_whatsapp
#
WhatsApp gateway using the multi-device API.
Subpackages#
Submodules#
Package Contents#
Classes#
The gateway component, handling registrations and un-registrations. |
- class slidge_whatsapp.Gateway[source]#
Bases:
slidge.BaseGateway
The gateway component, handling registrations and un-registrations.
On slidge launch, a singleton is instantiated, and it will be made available to public classes such
LegacyContact
orBaseSession
as the.xmpp
attribute.Must be subclassed by a legacy module to set up various aspects of the XMPP component behaviour, such as its display name or welcome message, via class attributes
COMPONENT_NAME
WELCOME_MESSAGE
.Abstract methods related to the registration process must be overriden for a functional Legacy Module:
validate_two_factor_code()
get_qr_text()
confirm_qr()
NB: Not all of these must be overridden, it depends on the
REGISTRATION_TYPE
.The other methods, such as
send_text()
orreact()
are the same as those ofLegacyContact
andLegacyParticipant
, because the component itself is also a “messaging actor”, ie, an XMPP Entity. For these methods, you need to specify the JID of the recipient with the mto parameter.Since it inherits from
slixmpp.componentxmpp.ComponentXMPP
,you also have a hand on low-level XMPP interactions via slixmpp methods, e.g.:self.send_presence( pfrom="somebody@component.example.com", pto="someonwelse@anotherexample.com", )
However, you should not need to do so often since the classes of the plugin API provides higher level abstractions around most commonly needed use-cases, such as sending messages, or displaying a custom status.
- COMPONENT_NAME = 'WhatsApp (slidge)'#
- COMPONENT_TYPE = 'whatsapp'#
- COMPONENT_AVATAR = 'https://www.whatsapp.com/apple-touch-icon.png'#
- REGISTRATION_INSTRUCTIONS#
- WELCOME_MESSAGE#
- REGISTRATION_FIELDS = []#
- SEARCH_FIELDS#
- ROSTER_GROUP = 'WhatsApp'#
- MARK_ALL_MESSAGES = True#
- GROUPS = True#
- PROPER_RECEIPTS = True#