mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-04 09:04:58 -04:00
Move support for MSC3026 behind an experimental flag
This commit is contained in:
parent
405aeb0b2c
commit
066c703729
3 changed files with 18 additions and 3 deletions
|
@ -104,6 +104,8 @@ class BasePresenceHandler(abc.ABC):
|
|||
self.clock = hs.get_clock()
|
||||
self.store = hs.get_datastore()
|
||||
|
||||
self._busy_presence_enabled = hs.config.experimental.msc3026_enabled
|
||||
|
||||
active_presence = self.store.take_presence_startup_info()
|
||||
self.user_to_current_state = {state.user_id: state for state in active_presence}
|
||||
|
||||
|
@ -730,8 +732,11 @@ class PresenceHandler(BasePresenceHandler):
|
|||
PresenceState.ONLINE,
|
||||
PresenceState.UNAVAILABLE,
|
||||
PresenceState.OFFLINE,
|
||||
PresenceState.BUSY,
|
||||
)
|
||||
|
||||
if self._busy_presence_enabled:
|
||||
valid_presence += (PresenceState.BUSY,)
|
||||
|
||||
if presence not in valid_presence:
|
||||
raise SynapseError(400, "Invalid presence state")
|
||||
|
||||
|
@ -745,7 +750,10 @@ class PresenceHandler(BasePresenceHandler):
|
|||
msg = status_msg if presence != PresenceState.OFFLINE else None
|
||||
new_fields["status_msg"] = msg
|
||||
|
||||
if presence == PresenceState.ONLINE or presence == PresenceState.BUSY:
|
||||
if (
|
||||
presence == PresenceState.ONLINE or
|
||||
(self._busy_presence_enabled and presence == PresenceState.BUSY)
|
||||
):
|
||||
new_fields["last_active_ts"] = self.clock.time_msec()
|
||||
|
||||
await self._update_states([prev_state.copy_and_replace(**new_fields)])
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue