diff options
author | Olivier Wilkinson (reivilibre) <olivier@librepush.net> | 2019-08-27 14:14:17 +0100 |
---|---|---|
committer | Olivier Wilkinson (reivilibre) <olivier@librepush.net> | 2019-08-27 14:14:17 +0100 |
commit | 99c88ac84eb394104f06ff42dde891cabf00466c (patch) | |
tree | d7e59c52eb6396cb2804e951257a40fa71bce71e /synapse/handlers | |
parent | Adapt to stats now working in milliseconds (diff) | |
download | synapse-99c88ac84eb394104f06ff42dde891cabf00466c.tar.xz |
No-op if no membership change and thus simplify verbose dict updates.
Signed-off-by: Olivier Wilkinson (reivilibre) <olivier@librepush.net>
Diffstat (limited to 'synapse/handlers')
-rw-r--r-- | synapse/handlers/stats.py | 42 |
1 files changed, 14 insertions, 28 deletions
diff --git a/synapse/handlers/stats.py b/synapse/handlers/stats.py index 3dbc0a2434..b3d59fde05 100644 --- a/synapse/handlers/stats.py +++ b/synapse/handlers/stats.py @@ -161,9 +161,7 @@ class StatsHandler(StateDeltasHandler): if prev_event_id is None: # this state event doesn't overwrite another, # so it is a new effective/current state event - room_stats_delta["current_state_events"] = ( - room_stats_delta.get("current_state_events", 0) + 1 - ) + room_stats_delta["current_state_events"] = 1 if typ == EventTypes.Member: # we could use _get_key_change here but it's a bit inefficient @@ -188,43 +186,31 @@ class StatsHandler(StateDeltasHandler): if prev_membership is None: logger.debug("No previous membership for this user.") + elif membership == prev_membership: + pass # noop elif prev_membership == Membership.JOIN: - room_stats_delta["joined_members"] = ( - room_stats_delta.get("joined_members", 0) - 1 - ) + room_stats_delta["joined_members"] = -1 elif prev_membership == Membership.INVITE: - room_stats_delta["invited_members"] = ( - room_stats_delta.get("invited_members", 0) - 1 - ) + room_stats_delta["invited_members"] = -1 elif prev_membership == Membership.LEAVE: - room_stats_delta["left_members"] = ( - room_stats_delta.get("left_members", 0) - 1 - ) + room_stats_delta["left_members"] = -1 elif prev_membership == Membership.BAN: - room_stats_delta["banned_members"] = ( - room_stats_delta.get("banned_members", 0) - 1 - ) + room_stats_delta["banned_members"] = -1 else: err = "%s is not a valid prev_membership" % (repr(prev_membership),) logger.error(err) raise ValueError(err) + if membership == prev_membership: + pass # noop if membership == Membership.JOIN: - room_stats_delta["joined_members"] = ( - room_stats_delta.get("joined_members", 0) + 1 - ) + room_stats_delta["joined_members"] = +1 elif membership == Membership.INVITE: - room_stats_delta["invited_members"] = ( - room_stats_delta.get("invited_members", 0) + 1 - ) + room_stats_delta["invited_members"] = +1 elif membership == Membership.LEAVE: - room_stats_delta["left_members"] = ( - room_stats_delta.get("left_members", 0) + 1 - ) + room_stats_delta["left_members"] = +1 elif membership == Membership.BAN: - room_stats_delta["banned_members"] = ( - room_stats_delta.get("banned_members", 0) + 1 - ) + room_stats_delta["banned_members"] = +1 else: err = "%s is not a valid membership" % (repr(membership),) logger.error(err) @@ -234,7 +220,7 @@ class StatsHandler(StateDeltasHandler): if self.is_mine_id(user_id) and membership in ( Membership.JOIN, Membership.LEAVE, - ): + ) and prev_membership != membership: # update user_stats as it's one of our users public = yield self._is_public_room(room_id) |