|
@@ -24,6 +24,7 @@ from typing import (
|
|
|
List,
|
|
|
Mapping,
|
|
|
Optional,
|
|
|
+ Sequence,
|
|
|
Set,
|
|
|
Tuple,
|
|
|
Union,
|
|
@@ -153,7 +154,7 @@ class RoomMemberWorkerStore(EventsWorkerStore):
|
|
|
return self._known_servers_count
|
|
|
|
|
|
@cached(max_entries=100000, iterable=True)
|
|
|
- async def get_users_in_room(self, room_id: str) -> List[str]:
|
|
|
+ async def get_users_in_room(self, room_id: str) -> Sequence[str]:
|
|
|
"""Returns a list of users in the room.
|
|
|
|
|
|
Will return inaccurate results for rooms with partial state, since the state for
|
|
@@ -190,9 +191,7 @@ class RoomMemberWorkerStore(EventsWorkerStore):
|
|
|
)
|
|
|
|
|
|
@cached()
|
|
|
- def get_user_in_room_with_profile(
|
|
|
- self, room_id: str, user_id: str
|
|
|
- ) -> Dict[str, ProfileInfo]:
|
|
|
+ def get_user_in_room_with_profile(self, room_id: str, user_id: str) -> ProfileInfo:
|
|
|
raise NotImplementedError()
|
|
|
|
|
|
@cachedList(
|
|
@@ -246,7 +245,7 @@ class RoomMemberWorkerStore(EventsWorkerStore):
|
|
|
@cached(max_entries=100000, iterable=True)
|
|
|
async def get_users_in_room_with_profiles(
|
|
|
self, room_id: str
|
|
|
- ) -> Dict[str, ProfileInfo]:
|
|
|
+ ) -> Mapping[str, ProfileInfo]:
|
|
|
"""Get a mapping from user ID to profile information for all users in a given room.
|
|
|
|
|
|
The profile information comes directly from this room's `m.room.member`
|
|
@@ -285,7 +284,7 @@ class RoomMemberWorkerStore(EventsWorkerStore):
|
|
|
)
|
|
|
|
|
|
@cached(max_entries=100000)
|
|
|
- async def get_room_summary(self, room_id: str) -> Dict[str, MemberSummary]:
|
|
|
+ async def get_room_summary(self, room_id: str) -> Mapping[str, MemberSummary]:
|
|
|
"""Get the details of a room roughly suitable for use by the room
|
|
|
summary extension to /sync. Useful when lazy loading room members.
|
|
|
Args:
|
|
@@ -357,7 +356,7 @@ class RoomMemberWorkerStore(EventsWorkerStore):
|
|
|
@cached()
|
|
|
async def get_invited_rooms_for_local_user(
|
|
|
self, user_id: str
|
|
|
- ) -> List[RoomsForUser]:
|
|
|
+ ) -> Sequence[RoomsForUser]:
|
|
|
"""Get all the rooms the *local* user is invited to.
|
|
|
|
|
|
Args:
|
|
@@ -475,7 +474,7 @@ class RoomMemberWorkerStore(EventsWorkerStore):
|
|
|
return results
|
|
|
|
|
|
@cached(iterable=True)
|
|
|
- async def get_local_users_in_room(self, room_id: str) -> List[str]:
|
|
|
+ async def get_local_users_in_room(self, room_id: str) -> Sequence[str]:
|
|
|
"""
|
|
|
Retrieves a list of the current roommembers who are local to the server.
|
|
|
"""
|
|
@@ -791,7 +790,7 @@ class RoomMemberWorkerStore(EventsWorkerStore):
|
|
|
"""Returns the set of users who share a room with `user_id`"""
|
|
|
room_ids = await self.get_rooms_for_user(user_id)
|
|
|
|
|
|
- user_who_share_room = set()
|
|
|
+ user_who_share_room: Set[str] = set()
|
|
|
for room_id in room_ids:
|
|
|
user_ids = await self.get_users_in_room(room_id)
|
|
|
user_who_share_room.update(user_ids)
|
|
@@ -953,7 +952,7 @@ class RoomMemberWorkerStore(EventsWorkerStore):
|
|
|
return True
|
|
|
|
|
|
@cached(iterable=True, max_entries=10000)
|
|
|
- async def get_current_hosts_in_room(self, room_id: str) -> Set[str]:
|
|
|
+ async def get_current_hosts_in_room(self, room_id: str) -> AbstractSet[str]:
|
|
|
"""Get current hosts in room based on current state."""
|
|
|
|
|
|
# First we check if we already have `get_users_in_room` in the cache, as
|