make group left messages call the ac_member_removed hook, as per wishes from @adbenitez

This commit is contained in:
holger krekel
2020-07-18 19:50:09 +02:00
parent bb2e8b4392
commit 06166f7956
3 changed files with 18 additions and 1 deletions

View File

@@ -1,3 +1,10 @@
1.40.x
---------------
- emit "ac_member_removed" event (with 'actor' being the removed contact)
for when a user leaves a group.
1.40.0
---------------

View File

@@ -374,7 +374,7 @@ def extract_addr(text):
if m:
text = m.group(1)
text = text.rstrip(".")
return text
return text.strip()
def parse_system_add_remove(text):
@@ -386,8 +386,14 @@ def parse_system_add_remove(text):
# Member x@y added by a@b
# Member With space (tmp1@x.org) removed by tmp2@x.org.
# Member With space (tmp1@x.org) removed by Another member (tmp2@x.org).",
# Group left by some one (tmp1@x.org).
# Group left by tmp1@x.org.
text = text.lower()
m = re.match(r'member (.+) (removed|added) by (.+)', text)
if m:
affected, action, actor = m.groups()
return action, extract_addr(affected), extract_addr(actor)
if text.startswith("group left by "):
addr = extract_addr(text[13:])
if addr:
return "removed", addr, addr

View File

@@ -19,6 +19,10 @@ from datetime import datetime, timedelta
("removed", "tmp1@x.org", "tmp2@x.org")),
("Member With space (tmp1@x.org) removed by me",
("removed", "tmp1@x.org", "me")),
("Group left by some one (tmp1@x.org).",
("removed", "tmp1@x.org", "tmp1@x.org")),
("Group left by tmp1@x.org.",
("removed", "tmp1@x.org", "tmp1@x.org")),
("Member tmp1@x.org added by tmp2@x.org.", ("added", "tmp1@x.org", "tmp2@x.org")),
("Member nothing bla bla", None),
("Another unknown system message", None),