|
21 | 21 | import attr
|
22 | 22 | from prometheus_client import Counter
|
23 | 23 |
|
24 |
| -from synapse.api.constants import EventTypes, Membership |
| 24 | +from synapse.api.constants import AccountDataTypes, EventTypes, Membership |
25 | 25 | from synapse.api.filtering import FilterCollection
|
26 | 26 | from synapse.events import EventBase
|
27 | 27 | from synapse.logging.context import current_context
|
@@ -1378,13 +1378,16 @@ async def _generate_sync_entry_for_rooms(
|
1378 | 1378 | return set(), set(), set(), set()
|
1379 | 1379 |
|
1380 | 1380 | ignored_account_data = await self.store.get_global_account_data_by_type_for_user(
|
1381 |
| - "m.ignored_user_list", user_id=user_id |
| 1381 | + AccountDataTypes.IGNORED_USER_LIST, user_id=user_id |
1382 | 1382 | )
|
1383 | 1383 |
|
| 1384 | + # If there is ignored users account data and it matches the proper type, |
| 1385 | + # then use it. |
| 1386 | + ignored_users = frozenset() # type: FrozenSet[str] |
1384 | 1387 | if ignored_account_data:
|
1385 |
| - ignored_users = ignored_account_data.get("ignored_users", {}).keys() |
1386 |
| - else: |
1387 |
| - ignored_users = frozenset() |
| 1388 | + ignored_users_data = ignored_account_data.get("ignored_users", {}) |
| 1389 | + if isinstance(ignored_users_data, dict): |
| 1390 | + ignored_users = frozenset(ignored_users_data.keys()) |
1388 | 1391 |
|
1389 | 1392 | if since_token:
|
1390 | 1393 | room_changes = await self._get_rooms_changed(
|
@@ -1478,7 +1481,7 @@ async def _have_rooms_changed(
|
1478 | 1481 | return False
|
1479 | 1482 |
|
1480 | 1483 | async def _get_rooms_changed(
|
1481 |
| - self, sync_result_builder: "SyncResultBuilder", ignored_users: Set[str] |
| 1484 | + self, sync_result_builder: "SyncResultBuilder", ignored_users: FrozenSet[str] |
1482 | 1485 | ) -> _RoomChanges:
|
1483 | 1486 | """Gets the the changes that have happened since the last sync.
|
1484 | 1487 | """
|
@@ -1690,7 +1693,7 @@ async def _get_rooms_changed(
|
1690 | 1693 | return _RoomChanges(room_entries, invited, newly_joined_rooms, newly_left_rooms)
|
1691 | 1694 |
|
1692 | 1695 | async def _get_all_rooms(
|
1693 |
| - self, sync_result_builder: "SyncResultBuilder", ignored_users: Set[str] |
| 1696 | + self, sync_result_builder: "SyncResultBuilder", ignored_users: FrozenSet[str] |
1694 | 1697 | ) -> _RoomChanges:
|
1695 | 1698 | """Returns entries for all rooms for the user.
|
1696 | 1699 |
|
@@ -1764,7 +1767,7 @@ async def _get_all_rooms(
|
1764 | 1767 | async def _generate_room_entry(
|
1765 | 1768 | self,
|
1766 | 1769 | sync_result_builder: "SyncResultBuilder",
|
1767 |
| - ignored_users: Set[str], |
| 1770 | + ignored_users: FrozenSet[str], |
1768 | 1771 | room_builder: "RoomSyncResultBuilder",
|
1769 | 1772 | ephemeral: List[JsonDict],
|
1770 | 1773 | tags: Optional[Dict[str, Dict[str, Any]]],
|
|
0 commit comments