mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-02 21:54:53 -04:00
Merge branch 'develop' of github.com:matrix-org/synapse into presence_logging
Conflicts: synapse/handlers/presence.py
This commit is contained in:
commit
54d0a75573
20 changed files with 495 additions and 301 deletions
|
@ -451,16 +451,22 @@ class PresenceHandler(BaseHandler):
|
|||
)
|
||||
|
||||
def _start_polling_remote(self, user, domain, remoteusers):
|
||||
to_poll = set()
|
||||
|
||||
for u in remoteusers:
|
||||
if u not in self._remote_recvmap:
|
||||
self._remote_recvmap[u] = set()
|
||||
to_poll.add(u)
|
||||
|
||||
self._remote_recvmap[u].add(user)
|
||||
|
||||
if not to_poll:
|
||||
return defer.succeed(None)
|
||||
|
||||
return self.federation.send_edu(
|
||||
destination=domain,
|
||||
edu_type="m.presence",
|
||||
content={"poll": [u.to_string() for u in remoteusers]}
|
||||
content={"poll": [u.to_string() for u in to_poll]}
|
||||
)
|
||||
|
||||
@trace_function
|
||||
|
@ -505,16 +511,22 @@ class PresenceHandler(BaseHandler):
|
|||
|
||||
@trace_function
|
||||
def _stop_polling_remote(self, user, domain, remoteusers):
|
||||
to_unpoll = set()
|
||||
|
||||
for u in remoteusers:
|
||||
self._remote_recvmap[u].remove(user)
|
||||
|
||||
if not self._remote_recvmap[u]:
|
||||
del self._remote_recvmap[u]
|
||||
to_unpoll.add(u)
|
||||
|
||||
if not to_unpoll:
|
||||
return defer.succeed(None)
|
||||
|
||||
return self.federation.send_edu(
|
||||
destination=domain,
|
||||
edu_type="m.presence",
|
||||
content={"unpoll": [u.to_string() for u in remoteusers]}
|
||||
content={"unpoll": [u.to_string() for u in to_unpoll]}
|
||||
)
|
||||
|
||||
@defer.inlineCallbacks
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue