mirror of
https://github.com/chatmail/core.git
synced 2026-04-05 15:02:11 +03:00
make ac_member_removed and ac_member_added work if the action was triggered remotely. also pass in the "actor" contact so one can know who did this.
53 lines
1.7 KiB
Python
53 lines
1.7 KiB
Python
|
|
# content of group_tracking.py
|
|
|
|
from deltachat import account_hookimpl, run_cmdline
|
|
|
|
|
|
class GroupTrackingPlugin:
|
|
@account_hookimpl
|
|
def ac_incoming_message(self, message):
|
|
print("process_incoming message", message)
|
|
if message.text.strip() == "/quit":
|
|
message.account.shutdown()
|
|
else:
|
|
# unconditionally accept the chat
|
|
message.create_chat()
|
|
addr = message.get_sender_contact().addr
|
|
text = message.text
|
|
message.chat.send_text("echoing from {}:\n{}".format(addr, text))
|
|
|
|
@account_hookimpl
|
|
def ac_outgoing_message(self, message):
|
|
print("ac_outgoing_message:", message)
|
|
|
|
@account_hookimpl
|
|
def ac_configure_completed(self, success):
|
|
print("ac_configure_completed:", success)
|
|
|
|
@account_hookimpl
|
|
def ac_chat_modified(self, chat):
|
|
print("ac_chat_modified:", chat.id, chat.get_name())
|
|
for member in chat.get_contacts():
|
|
print("chat member: {}".format(member.addr))
|
|
|
|
@account_hookimpl
|
|
def ac_member_added(self, chat, contact, actor, message):
|
|
print("ac_member_added {} to chat {} from {}".format(
|
|
contact.addr, chat.id, actor or message.get_sender_contact().addr))
|
|
for member in chat.get_contacts():
|
|
print("chat member: {}".format(member.addr))
|
|
|
|
@account_hookimpl
|
|
def ac_member_removed(self, chat, contact, actor, message):
|
|
print("ac_member_removed {} from chat {} by {}".format(
|
|
contact.addr, chat.id, actor or message.get_sender_contact().addr))
|
|
|
|
|
|
def main(argv=None):
|
|
run_cmdline(argv=argv, account_plugins=[GroupTrackingPlugin()])
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|