mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-12-15 17:38:48 -05:00
wip cut at sending resource server notices
This commit is contained in:
parent
c24fc9797b
commit
eabc5f8271
2 changed files with 53 additions and 42 deletions
|
|
@ -46,7 +46,10 @@ class ServerNoticesManager(object):
|
|||
return self._config.server_notices_mxid is not None
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def send_notice(self, user_id, event_content):
|
||||
def send_notice(
|
||||
self, user_id, event_content,
|
||||
type=EventTypes.Message, state_key=None
|
||||
):
|
||||
"""Send a notice to the given user
|
||||
|
||||
Creates the server notices room, if none exists.
|
||||
|
|
@ -54,9 +57,11 @@ class ServerNoticesManager(object):
|
|||
Args:
|
||||
user_id (str): mxid of user to send event to.
|
||||
event_content (dict): content of event to send
|
||||
type(EventTypes): type of event
|
||||
is_state_event(bool): Is the event a state event
|
||||
|
||||
Returns:
|
||||
Deferred[None]
|
||||
Deferred[FrozenEvent]
|
||||
"""
|
||||
room_id = yield self.get_notice_room_for_user(user_id)
|
||||
|
||||
|
|
@ -65,15 +70,19 @@ class ServerNoticesManager(object):
|
|||
|
||||
logger.info("Sending server notice to %s", user_id)
|
||||
|
||||
yield self._event_creation_handler.create_and_send_nonmember_event(
|
||||
requester, {
|
||||
"type": EventTypes.Message,
|
||||
"room_id": room_id,
|
||||
"sender": system_mxid,
|
||||
"content": event_content,
|
||||
},
|
||||
ratelimit=False,
|
||||
event_dict = {
|
||||
"type": type,
|
||||
"room_id": room_id,
|
||||
"sender": system_mxid,
|
||||
"content": event_content,
|
||||
}
|
||||
if state_key:
|
||||
event_dict['state_key'] = state_key
|
||||
|
||||
res = yield self._event_creation_handler.create_and_send_nonmember_event(
|
||||
requester, event_dict, ratelimit=False,
|
||||
)
|
||||
defer.returnValue(res)
|
||||
|
||||
@cachedInlineCallbacks()
|
||||
def get_notice_room_for_user(self, user_id):
|
||||
|
|
@ -141,6 +150,7 @@ class ServerNoticesManager(object):
|
|||
creator_join_profile=join_profile,
|
||||
)
|
||||
room_id = info['room_id']
|
||||
yield self._store.add_tag_to_room(user_id, room_id, 'm.server_notice', None)
|
||||
|
||||
logger.info("Created server notices room %s for %s", room_id, user_id)
|
||||
defer.returnValue(room_id)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue