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

Commit ccc980c

Browse files
committed
Update bump_presence_active_time to take a device_id.
1 parent 1685a05 commit ccc980c

File tree

6 files changed

+30
-13
lines changed

6 files changed

+30
-13
lines changed

synapse/handlers/message.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1921,7 +1921,10 @@ async def persist_and_notify_client_events(
19211921
# We don't want to block sending messages on any presence code. This
19221922
# matters as sometimes presence code can take a while.
19231923
run_as_background_process(
1924-
"bump_presence_active_time", self._bump_active_time, requester.user
1924+
"bump_presence_active_time",
1925+
self._bump_active_time,
1926+
requester.user,
1927+
requester.device_id,
19251928
)
19261929

19271930
async def _notify() -> None:
@@ -1958,10 +1961,10 @@ async def _maybe_kick_guest_users(
19581961
logger.info("maybe_kick_guest_users %r", current_state)
19591962
await self.hs.get_room_member_handler().kick_guest_users(current_state)
19601963

1961-
async def _bump_active_time(self, user: UserID) -> None:
1964+
async def _bump_active_time(self, user: UserID, device_id: Optional[str]) -> None:
19621965
try:
19631966
presence = self.hs.get_presence_handler()
1964-
await presence.bump_presence_active_time(user)
1967+
await presence.bump_presence_active_time(user, device_id)
19651968
except Exception:
19661969
logger.exception("Error bumping presence active time")
19671970

synapse/handlers/presence.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,9 @@ async def set_state(
276276
"""
277277

278278
@abc.abstractmethod
279-
async def bump_presence_active_time(self, user: UserID) -> None:
279+
async def bump_presence_active_time(
280+
self, user: UserID, device_id: Optional[str]
281+
) -> None:
280282
"""We've seen the user do something that indicates they're interacting
281283
with the app.
282284
"""
@@ -644,7 +646,9 @@ async def set_state(
644646
is_sync=is_sync,
645647
)
646648

647-
async def bump_presence_active_time(self, user: UserID) -> None:
649+
async def bump_presence_active_time(
650+
self, user: UserID, device_id: Optional[str]
651+
) -> None:
648652
"""We've seen the user do something that indicates they're interacting
649653
with the app.
650654
"""
@@ -655,7 +659,9 @@ async def bump_presence_active_time(self, user: UserID) -> None:
655659
# Proxy request to instance that writes presence
656660
user_id = user.to_string()
657661
await self._bump_active_client(
658-
instance_name=self._presence_writer_instance, user_id=user_id
662+
instance_name=self._presence_writer_instance,
663+
user_id=user_id,
664+
device_id=device_id,
659665
)
660666

661667

@@ -960,7 +966,9 @@ async def _handle_timeouts(self) -> None:
960966

961967
return await self._update_states(changes)
962968

963-
async def bump_presence_active_time(self, user: UserID) -> None:
969+
async def bump_presence_active_time(
970+
self, user: UserID, device_id: Optional[str]
971+
) -> None:
964972
"""We've seen the user do something that indicates they're interacting
965973
with the app.
966974
"""

synapse/replication/http/presence.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,14 @@ def __init__(self, hs: "HomeServer"):
5151
self._presence_handler = hs.get_presence_handler()
5252

5353
@staticmethod
54-
async def _serialize_payload(user_id: str) -> JsonDict: # type: ignore[override]
55-
return {}
54+
async def _serialize_payload(user_id: str, device_id: Optional[str]) -> JsonDict: # type: ignore[override]
55+
return {"device_id": device_id}
5656

5757
async def _handle_request( # type: ignore[override]
5858
self, request: Request, content: JsonDict, user_id: str
5959
) -> Tuple[int, JsonDict]:
6060
await self._presence_handler.bump_presence_active_time(
61-
UserID.from_string(user_id)
61+
UserID.from_string(user_id), content.get("device_id")
6262
)
6363

6464
return (200, {})

synapse/rest/client/read_marker.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,9 @@ async def on_POST(
5252
) -> Tuple[int, JsonDict]:
5353
requester = await self.auth.get_user_by_req(request)
5454

55-
await self.presence_handler.bump_presence_active_time(requester.user)
55+
await self.presence_handler.bump_presence_active_time(
56+
requester.user, requester.device_id
57+
)
5658

5759
body = parse_json_object_from_request(request)
5860

synapse/rest/client/receipts.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,9 @@ async def on_POST(
9494
Codes.INVALID_PARAM,
9595
)
9696

97-
await self.presence_handler.bump_presence_active_time(requester.user)
97+
await self.presence_handler.bump_presence_active_time(
98+
requester.user, requester.device_id
99+
)
98100

99101
if receipt_type == ReceiptTypes.FULLY_READ:
100102
await self.read_marker_handler.received_client_read_marker(

synapse/rest/client/room.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1229,7 +1229,9 @@ async def on_PUT(
12291229

12301230
content = parse_json_object_from_request(request)
12311231

1232-
await self.presence_handler.bump_presence_active_time(requester.user)
1232+
await self.presence_handler.bump_presence_active_time(
1233+
requester.user, requester.device_id
1234+
)
12331235

12341236
# Limit timeout to stop people from setting silly typing timeouts.
12351237
timeout = min(content.get("timeout", 30000), 120000)

0 commit comments

Comments
 (0)