Merge branch 'nicer-plaintext-links'

This commit is contained in:
Tulir Asokan 2020-08-02 21:08:13 +03:00
commit c614f8c8ca

View File

@ -20,11 +20,24 @@ import asyncio
import attr
from mautrix.client import Client as MatrixClient, SyncStream
from mautrix.util import markdown, formatter
from mautrix.util.formatter import MatrixParser, MarkdownString, EntityType
from mautrix.util import markdown
from mautrix.types import (EventType, MessageEvent, Event, EventID, RoomID, MessageEventContent,
MessageType, TextMessageEventContent, Format, RelatesTo)
class HumanReadableString(MarkdownString):
def format(self, entity_type: EntityType, **kwargs) -> 'MarkdownString':
if entity_type == EntityType.URL and kwargs['url'] != self.text:
self.text = f"{self.text} ({kwargs['url']})"
return self
return super(HumanReadableString, self).format(entity_type, **kwargs)
class MaubotHTMLParser(MatrixParser[HumanReadableString]):
fs = HumanReadableString
def parse_formatted(message: str, allow_html: bool = False, render_markdown: bool = True
) -> Tuple[str, str]:
if render_markdown:
@ -33,7 +46,7 @@ def parse_formatted(message: str, allow_html: bool = False, render_markdown: boo
html = message
else:
return message, escape(message)
return formatter.parse_html(html), html
return MaubotHTMLParser.parse(html).text, html
class MaubotMessageEvent(MessageEvent):