From e6afbf96d9fa4e2e1806b15a595ccda877ff4cd6 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Sun, 4 Feb 2018 22:48:39 +0200 Subject: [PATCH] Allow using cache when syncing Matrix power levels --- mautrix_telegram/portal.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/mautrix_telegram/portal.py b/mautrix_telegram/portal.py index d3d8bb19..09040f4f 100644 --- a/mautrix_telegram/portal.py +++ b/mautrix_telegram/portal.py @@ -654,7 +654,12 @@ class Portal: def update_telegram_participants(self, participants): levels = self.main_intent.get_power_levels(self.mxid) - levels["events"]["m.room.power_levels"] = 50 + changed = False + + if levels["events"]["m.room.power_levels"] != 50: + changed = True + levels["events"]["m.room.power_levels"] = 50 + for participant in participants: puppet = p.Puppet.get(participant.user_id) user = u.User.get_by_tgid(participant.user_id) @@ -665,9 +670,12 @@ class Portal: new_level = 95 if user and (user.mxid in levels["users"] or new_level > 0): levels["users"][user.mxid] = new_level + changed = True if puppet and (puppet.mxid in levels["users"] or new_level > 0): levels["users"][puppet.mxid] = new_level - self.main_intent.set_power_levels(self.mxid, levels) + changed = True + if changed: + self.main_intent.set_power_levels(self.mxid, levels) def set_telegram_admins_enabled(self, enabled): level = 50 if enabled else 10