Implementing Plugin Hooks¶
The Delta Chat Python bindings use pluggy for managing global and per-account plugin registration, and performing hook calls. There are two kinds of plugins:
Global plugins that are active for all accounts; they can implement hooks at account-creation and account-shutdown time.
Account plugins that are only active during the lifetime of a single Account instance.
Registering a plugin¶
-
deltachat.
register_global_plugin
(plugin)[source] Register a global plugin which implements one or more of the
deltachat.hookspec.Global
hooks.
-
Account.
add_account_plugin
(plugin, name=None)[source] add an account plugin which implements one or more of the
deltachat.hookspec.PerAccount
hooks.
Per-Account Hook specifications¶
-
class
deltachat.hookspec.
PerAccount
[source]¶ per-Account-instance hook specifications.
All hooks are executed in a dedicated Event thread. Hooks are generally not allowed to block/last long as this blocks overall event processing on the python side.
-
ac_process_ffi_event
(ffi_event)[source]¶ process a CFFI low level events for a given account.
ffi_event has “name”, “data1”, “data2” values as specified with DC_EVENT_*.
-
ac_message_delivered
(message)[source]¶ Called when an outgoing message has been delivered to SMTP.
- Parameters
message – Message that was just delivered.
-
ac_chat_modified
(chat)[source]¶ Chat was created or modified regarding membership, avatar, title.
- Parameters
chat – Chat which was modified.
-
ac_member_added
(chat, contact, actor, message)[source]¶ Called for each contact added to an accepted chat.
- Parameters
chat – Chat where contact was added.
contact – Contact that was added.
actor – Who added the contact (None if it was our self-addr)
message – The original system message that reports the addition.
-
ac_member_removed
(chat, contact, actor, message)[source]¶ Called for each contact removed from a chat.
- Parameters
chat – Chat where contact was removed.
contact – Contact that was removed.
actor – Who removed the contact (None if it was our self-addr)
message – The original system message that reports the removal.
-
Global Hook specifications¶
-
class
deltachat.hookspec.
Global
[source]¶ global hook specifications using a per-process singleton plugin manager instance.