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
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)