diff options
author | Andrew Morgan <andrew@amorgan.xyz> | 2024-03-05 16:03:24 +0000 |
---|---|---|
committer | Andrew Morgan <andrew@amorgan.xyz> | 2024-03-05 16:03:24 +0000 |
commit | 2d1bb0b06bbf96c24fead423530ce5c40ccfcc41 (patch) | |
tree | 6f44b52422fb6b2e9b3f581b3c5a633553002312 /synapse/push/push_tools.py | |
parent | Revert "Ignore notification counts from rooms you've left" (#16981) (diff) | |
parent | Switch #16979 changelog type from internal change to bugfix (diff) | |
download | synapse-2d1bb0b06bbf96c24fead423530ce5c40ccfcc41.tar.xz |
Merge remote-tracking branch 'origin/release-v1.102' into develop
Diffstat (limited to 'synapse/push/push_tools.py')
-rw-r--r-- | synapse/push/push_tools.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/synapse/push/push_tools.py b/synapse/push/push_tools.py index 76c7ab6477..1ef881f702 100644 --- a/synapse/push/push_tools.py +++ b/synapse/push/push_tools.py @@ -29,11 +29,17 @@ from synapse.storage.databases.main import DataStore async def get_badge_count(store: DataStore, user_id: str, group_by_room: bool) -> int: invites = await store.get_invited_rooms_for_local_user(user_id) + joins = await store.get_rooms_for_user(user_id) badge = len(invites) room_to_count = await store.get_unread_counts_by_room_for_user(user_id) - for _room_id, notify_count in room_to_count.items(): + for room_id, notify_count in room_to_count.items(): + # room_to_count may include rooms which the user has left, + # ignore those. + if room_id not in joins: + continue + if notify_count == 0: continue |