Esempio n. 1
0
 async def apply_relay_message_format(
     self, sender: br.BaseUser, content: MessageEventContent
 ) -> None:
     if self.relay_formatted_body and content.get("format", None) != Format.HTML:
         content["format"] = Format.HTML
         content["formatted_body"] = html.escape(content.body).replace("\n", "<br/>")
     tpl = self.bridge.config["bridge.relay.message_formats"].get(
         content.msgtype.value, "$sender_displayname: $message"
     )
     displayname = await self.get_displayname(sender)
     username, _ = self.az.intent.parse_user_id(sender.mxid)
     tpl_args = {
         "sender_mxid": sender.mxid,
         "sender_username": username,
         "sender_displayname": html.escape(displayname),
         "formatted_body": content["formatted_body"],
         "body": content.body,
         "message": content.body,
     }
     content.body = Template(tpl).safe_substitute(tpl_args)
     if self.relay_formatted_body and "formatted_body" in content:
         tpl_args["message"] = content["formatted_body"]
         content["formatted_body"] = Template(tpl).safe_substitute(tpl_args)
     if self.relay_emote_to_text and content.msgtype == MessageType.EMOTE:
         content.msgtype = MessageType.TEXT
Esempio n. 2
0
 async def _pre_process_matrix_message(
         self, sender: 'u.User', use_relaybot: bool,
         content: MessageEventContent) -> None:
     if content.msgtype == MessageType.EMOTE:
         await self._apply_msg_format(sender, content)
         content.msgtype = MessageType.TEXT
     elif use_relaybot:
         await self._apply_msg_format(sender, content)