diff options
author | Patrick Cloke <clokep@users.noreply.github.com> | 2023-08-28 11:03:23 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-28 11:03:23 -0400 |
commit | 1bf143699c0ac8dd53111bfca4628f126d65210d (patch) | |
tree | d0e01e278da0681639d7fe5a04c20b677f989f8c /synapse/replication | |
parent | Task scheduler: add replication notify for new task to launch ASAP (#16184) (diff) | |
download | synapse-1bf143699c0ac8dd53111bfca4628f126d65210d.tar.xz |
Combine logic about not overriding BUSY presence. (#16170)
Simplify some of the presence code by reducing duplicated code between worker & non-worker modes. The main change is to push some of the logic from `user_syncing` into `set_state`. This is done by passing whether the user is setting the presence via a `/sync` with a new `is_sync` flag to `set_state`. If this is `true` some additional logic is performed: * Don't override `busy` presence. * Update the `last_user_sync_ts`. * Never update the status message.
Diffstat (limited to 'synapse/replication')
-rw-r--r-- | synapse/replication/http/presence.py | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/synapse/replication/http/presence.py b/synapse/replication/http/presence.py index db16aac9c2..a24fb9310b 100644 --- a/synapse/replication/http/presence.py +++ b/synapse/replication/http/presence.py @@ -73,8 +73,8 @@ class ReplicationPresenceSetState(ReplicationEndpoint): { "state": { ... }, - "ignore_status_msg": false, - "force_notify": false + "force_notify": false, + "is_sync": false } 200 OK @@ -96,13 +96,13 @@ class ReplicationPresenceSetState(ReplicationEndpoint): async def _serialize_payload( # type: ignore[override] user_id: str, state: JsonDict, - ignore_status_msg: bool = False, force_notify: bool = False, + is_sync: bool = False, ) -> JsonDict: return { "state": state, - "ignore_status_msg": ignore_status_msg, "force_notify": force_notify, + "is_sync": is_sync, } async def _handle_request( # type: ignore[override] @@ -111,8 +111,8 @@ class ReplicationPresenceSetState(ReplicationEndpoint): await self._presence_handler.set_state( UserID.from_string(user_id), content["state"], - content["ignore_status_msg"], content["force_notify"], + content.get("is_sync", False), ) return (200, {}) |