Fix plain text messages newlines being ignored

This commit is contained in:
miruka
2019-08-17 14:51:04 -04:00
parent 717680bf0c
commit d98b215c0f
3 changed files with 12 additions and 3 deletions

View File

@@ -510,7 +510,8 @@ class MatrixClient(nio.AsyncClient):
async def onRoomMessageText(self, room, ev) -> None:
co = HTML_FILTER.filter(
ev.formatted_body
if ev.format == "org.matrix.custom.html" else html.escape(ev.body),
if ev.format == "org.matrix.custom.html" else
utils.plain2html(ev.body),
)
await self.register_nio_event(room, ev, content=co)
@@ -518,7 +519,8 @@ class MatrixClient(nio.AsyncClient):
async def onRoomMessageEmote(self, room, ev) -> None:
co = HTML_FILTER.filter_inline(
ev.formatted_body
if ev.format == "org.matrix.custom.html" else html.escape(ev.body),
if ev.format == "org.matrix.custom.html" else
utils.plain2html(ev.body),
)
await self.register_nio_event(room, ev, content=co)

View File

@@ -1,4 +1,5 @@
import collections
import html
import xml.etree.cElementTree as xml_etree # FIXME: bandit warning
from enum import Enum
from enum import auto as autostr
@@ -39,3 +40,7 @@ def guess_mime(file: IO) -> Optional[str]:
file.seek(0, 0)
return filetype.guess_mime(file)
def plain2html(text: str) -> str:
return "<pre>%s</pre>" % html.escape(text)