Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Fix providing a RoomStreamToken instance to _notify_app_services_ephemeral #11137

Merged
merged 9 commits into from
Nov 2, 2021
7 changes: 3 additions & 4 deletions synapse/handlers/appservice.py
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ async def handle_room_events(events: Iterable[EventBase]) -> None:
def notify_interested_services_ephemeral(
self,
stream_key: str,
new_token: Optional[int],
new_token: int,
users: Optional[Collection[Union[str, UserID]]] = None,
) -> None:
"""This is called by the notifier in the background
Expand Down Expand Up @@ -224,14 +224,13 @@ async def _notify_interested_services_ephemeral(
self,
services: List[ApplicationService],
stream_key: str,
new_token: Optional[int],
new_token: int,
users: Collection[Union[str, UserID]],
) -> None:
logger.debug("Checking interested services for %s" % (stream_key))
with Measure(self.clock, "notify_interested_services_ephemeral"):
for service in services:
# Only handle typing if we have the latest token
richvdh marked this conversation as resolved.
Show resolved Hide resolved
if stream_key == "typing_key" and new_token is not None:
if stream_key == "typing_key":
events = await self._handle_typing(service, new_token)
if events:
self.scheduler.submit_ephemeral_events_for_as(service, events)
Expand Down
9 changes: 5 additions & 4 deletions synapse/notifier.py
Original file line number Diff line number Diff line change
Expand Up @@ -381,11 +381,12 @@ def _notify_app_services_ephemeral(
users: Optional[Collection[Union[str, UserID]]] = None,
):
try:
stream_token = None
if isinstance(new_token, int):
stream_token = new_token
# Convert new_token from a RoomStreamToken to an int if necessary
if isinstance(new_token, RoomStreamToken):
new_token = new_token.stream
anoadragon453 marked this conversation as resolved.
Show resolved Hide resolved

self.appservice_handler.notify_interested_services_ephemeral(
stream_key, stream_token, users or []
stream_key, new_token, users or []
)
except Exception:
logger.exception("Error notifying application services of event")
Expand Down