From cecd81a3ecf15a8064efe01c144921411f6b0a46 Mon Sep 17 00:00:00 2001 From: "Olivier Wilkinson (reivilibre)" Date: Wed, 29 Sep 2021 15:22:13 +0100 Subject: [PATCH 1/3] Fix up type annotations for `get_new_events` on `EventSource` subclasses --- synapse/handlers/account_data.py | 1 + synapse/handlers/presence.py | 5 ++++- synapse/handlers/receipts.py | 1 + synapse/handlers/room.py | 1 + synapse/handlers/typing.py | 1 + synapse/streams/__init__.py | 1 + 6 files changed, 9 insertions(+), 1 deletion(-) diff --git a/synapse/handlers/account_data.py b/synapse/handlers/account_data.py index 96273e2f81c3..be12afde299d 100644 --- a/synapse/handlers/account_data.py +++ b/synapse/handlers/account_data.py @@ -174,6 +174,7 @@ def get_current_key(self, direction: str = "f") -> int: async def get_new_events( self, user: UserID, + *, from_key: int, limit: Optional[int], room_ids: Collection[str], diff --git a/synapse/handlers/presence.py b/synapse/handlers/presence.py index 983c837c662e..badcd37f805b 100644 --- a/synapse/handlers/presence.py +++ b/synapse/handlers/presence.py @@ -52,6 +52,7 @@ from synapse.api.constants import EventTypes, Membership, PresenceState from synapse.api.errors import SynapseError from synapse.api.presence import UserPresenceState +from synapse.appservice import ApplicationService from synapse.events.presence_router import PresenceRouter from synapse.logging.context import run_in_background from synapse.logging.utils import log_function @@ -1519,12 +1520,14 @@ def __init__(self, hs: "HomeServer"): async def get_new_events( self, user: UserID, + *, from_key: Optional[int], limit: Optional[int] = None, - room_ids: Optional[List[str]] = None, + room_ids: Optional[Collection[str]] = None, is_guest: bool = False, explicit_room_id: Optional[str] = None, include_offline: bool = True, + service: Optional[ApplicationService] = None, ) -> Tuple[List[UserPresenceState], int]: # The process for getting presence events are: # 1. Get the rooms the user is in. diff --git a/synapse/handlers/receipts.py b/synapse/handlers/receipts.py index f21f33ada28c..2f22029ce8bb 100644 --- a/synapse/handlers/receipts.py +++ b/synapse/handlers/receipts.py @@ -219,6 +219,7 @@ def filter_out_hidden(events: List[JsonDict], user_id: str) -> List[JsonDict]: async def get_new_events( self, user: UserID, + *, from_key: int, limit: Optional[int], room_ids: Iterable[str], diff --git a/synapse/handlers/room.py b/synapse/handlers/room.py index 8fede5e935d0..f7f925077315 100644 --- a/synapse/handlers/room.py +++ b/synapse/handlers/room.py @@ -1198,6 +1198,7 @@ def __init__(self, hs: "HomeServer"): async def get_new_events( self, user: UserID, + *, from_key: RoomStreamToken, limit: Optional[int], room_ids: Collection[str], diff --git a/synapse/handlers/typing.py b/synapse/handlers/typing.py index d10e9b8ec441..2432f10e4f31 100644 --- a/synapse/handlers/typing.py +++ b/synapse/handlers/typing.py @@ -488,6 +488,7 @@ async def get_new_events_as( async def get_new_events( self, user: UserID, + *, from_key: int, limit: Optional[int], room_ids: Iterable[str], diff --git a/synapse/streams/__init__.py b/synapse/streams/__init__.py index 806b67130530..51112fbf232d 100644 --- a/synapse/streams/__init__.py +++ b/synapse/streams/__init__.py @@ -26,6 +26,7 @@ class EventSource(Generic[K, R]): async def get_new_events( self, user: UserID, + *, from_key: K, limit: Optional[int], room_ids: Collection[str], From 3cb0ff4c9008ac0454bdbab7a971ab4240188f6d Mon Sep 17 00:00:00 2001 From: "Olivier Wilkinson (reivilibre)" Date: Wed, 29 Sep 2021 17:01:52 +0100 Subject: [PATCH 2/3] Newsfile Signed-off-by: Olivier Wilkinson (reivilibre) --- changelog.d/10944.bugfix | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog.d/10944.bugfix diff --git a/changelog.d/10944.bugfix b/changelog.d/10944.bugfix new file mode 100644 index 000000000000..49baff7df148 --- /dev/null +++ b/changelog.d/10944.bugfix @@ -0,0 +1 @@ +Fix a bug introduced in v1.44.0rc1 which prevented sending presence events to application services. From 189df26907b74a31d7001503980102dc4a90160d Mon Sep 17 00:00:00 2001 From: "Olivier Wilkinson (reivilibre)" Date: Wed, 29 Sep 2021 17:22:17 +0100 Subject: [PATCH 3/3] Don't force `get_new_events` to take keyword-only arguments --- synapse/handlers/account_data.py | 1 - synapse/handlers/presence.py | 1 - synapse/handlers/receipts.py | 1 - synapse/handlers/room.py | 1 - synapse/handlers/typing.py | 1 - synapse/streams/__init__.py | 1 - 6 files changed, 6 deletions(-) diff --git a/synapse/handlers/account_data.py b/synapse/handlers/account_data.py index be12afde299d..96273e2f81c3 100644 --- a/synapse/handlers/account_data.py +++ b/synapse/handlers/account_data.py @@ -174,7 +174,6 @@ def get_current_key(self, direction: str = "f") -> int: async def get_new_events( self, user: UserID, - *, from_key: int, limit: Optional[int], room_ids: Collection[str], diff --git a/synapse/handlers/presence.py b/synapse/handlers/presence.py index badcd37f805b..404afb9402bc 100644 --- a/synapse/handlers/presence.py +++ b/synapse/handlers/presence.py @@ -1520,7 +1520,6 @@ def __init__(self, hs: "HomeServer"): async def get_new_events( self, user: UserID, - *, from_key: Optional[int], limit: Optional[int] = None, room_ids: Optional[Collection[str]] = None, diff --git a/synapse/handlers/receipts.py b/synapse/handlers/receipts.py index 2f22029ce8bb..f21f33ada28c 100644 --- a/synapse/handlers/receipts.py +++ b/synapse/handlers/receipts.py @@ -219,7 +219,6 @@ def filter_out_hidden(events: List[JsonDict], user_id: str) -> List[JsonDict]: async def get_new_events( self, user: UserID, - *, from_key: int, limit: Optional[int], room_ids: Iterable[str], diff --git a/synapse/handlers/room.py b/synapse/handlers/room.py index f7f925077315..8fede5e935d0 100644 --- a/synapse/handlers/room.py +++ b/synapse/handlers/room.py @@ -1198,7 +1198,6 @@ def __init__(self, hs: "HomeServer"): async def get_new_events( self, user: UserID, - *, from_key: RoomStreamToken, limit: Optional[int], room_ids: Collection[str], diff --git a/synapse/handlers/typing.py b/synapse/handlers/typing.py index 2432f10e4f31..d10e9b8ec441 100644 --- a/synapse/handlers/typing.py +++ b/synapse/handlers/typing.py @@ -488,7 +488,6 @@ async def get_new_events_as( async def get_new_events( self, user: UserID, - *, from_key: int, limit: Optional[int], room_ids: Iterable[str], diff --git a/synapse/streams/__init__.py b/synapse/streams/__init__.py index 51112fbf232d..806b67130530 100644 --- a/synapse/streams/__init__.py +++ b/synapse/streams/__init__.py @@ -26,7 +26,6 @@ class EventSource(Generic[K, R]): async def get_new_events( self, user: UserID, - *, from_key: K, limit: Optional[int], room_ids: Collection[str],