Don't update power levels at startup unless something changes

This commit is contained in:
Tulir Asokan
2018-02-06 14:54:04 +02:00
parent ff703c2827
commit ac188bf85b
2 changed files with 18 additions and 8 deletions
+8 -4
View File
@@ -189,12 +189,16 @@ class IntentAPI:
return self.client.create_room(alias, is_public, name, topic, is_direct, invitees,
initial_state or {})
def invite(self, room_id, user_id):
def invite(self, room_id, user_id, check_cache):
self.ensure_joined(room_id)
try:
response = self.client.invite_user(room_id, user_id)
self.state_store.invited(room_id, user_id)
return response
do_invite = (not check_cache
or self.state_store.get_membership(room_id, user_id) not in {"invite",
"join"})
if do_invite:
response = self.client.invite_user(room_id, user_id)
self.state_store.invited(room_id, user_id)
return response
except MatrixRequestError as e:
if matrix_error_code(e) != "M_FORBIDDEN":
raise IntentError(f"Failed to invite {user_id} to {room_id}", e)
+10 -4
View File
@@ -133,10 +133,10 @@ class Portal:
def invite_matrix(self, users):
if isinstance(users, str):
self.main_intent.invite(self.mxid, users)
self.main_intent.invite(self.mxid, users, check_cache=True)
elif isinstance(users, list):
for user in users:
self.main_intent.invite(self.mxid, user)
self.main_intent.invite(self.mxid, user, check_cache=True)
else:
raise ValueError("Invalid invite identifier given to invite_matrix()")
@@ -770,10 +770,16 @@ class Portal:
new_level = 50
elif isinstance(participant, (ChatParticipantCreator, ChannelParticipantCreator)):
new_level = 95
if user and (user.mxid in levels["users"] or new_level > 0):
update_user_level = (user and (user.mxid in levels["users"] or new_level > 0)
and levels["users"][user.mxid] != new_level)
if update_user_level:
levels["users"][user.mxid] = new_level
changed = True
if puppet and (puppet.mxid in levels["users"] or new_level > 0):
update_puppet_level = (puppet and (puppet.mxid in levels["users"] or new_level > 0)
and levels["users"][puppet.mxid] != new_level)
if update_puppet_level:
levels["users"][puppet.mxid] = new_level
changed = True
if changed: