Event: optional (inline_)content, auto-gen inline

This commit is contained in:
miruka 2019-09-13 23:02:11 -04:00
parent a5095274ba
commit 8ad13b033d
2 changed files with 22 additions and 32 deletions

View File

@ -196,14 +196,12 @@ class MatrixClient(nio.AsyncClient):
client_id = f"echo-{uuid}",
event_id = "",
date = datetime.now(),
sender_id = self.user_id,
sender_name = our_info.display_name,
sender_avatar = our_info.avatar_url,
content = echo_body,
inline_content = HTML_FILTER.filter_inline(echo_body),
is_local_echo = True,
local_event_type = event_type,
sender_id = self.user_id,
sender_name = our_info.display_name,
sender_avatar = our_info.avatar_url,
)
for user_id in self.models[Account]:
if user_id in self.models[Member, room_id]:
@ -497,12 +495,7 @@ class MatrixClient(nio.AsyncClient):
async def register_nio_event(
self,
room: nio.MatrixRoom,
ev: nio.Event,
content: str,
type_specifier: TypeSpecifier = TypeSpecifier.none,
**fields,
self, room: nio.MatrixRoom, ev: nio.Event, **fields,
) -> None:
await self.register_nio_room(room)
@ -518,23 +511,16 @@ class MatrixClient(nio.AsyncClient):
# Create Event ModelItem
item = Event(
source = ev,
client_id = ev.event_id,
event_id = ev.event_id,
content = content,
inline_content = HTML_FILTER.filter_inline(content),
source = ev,
client_id = ev.event_id,
event_id = ev.event_id,
date = datetime.fromtimestamp(ev.server_timestamp / 1000),
sender_id = ev.sender,
sender_name = sender_name,
sender_avatar = sender_avatar,
type_specifier = type_specifier,
target_id = target_id,
target_name = target_name,
target_avatar = target_avatar,
**fields,
)
@ -639,7 +625,9 @@ class MatrixClient(nio.AsyncClient):
await self.register_nio_event(
room,
ev,
content = ev.url,
content = "",
inline_content = ev.body,
media_url = ev.url,
media_title = ev.body,
media_width = info.get("w") or 0,
media_height = info.get("h") or 0,

View File

@ -109,16 +109,16 @@ class TypeSpecifier(AutoStrEnum):
@dataclass
class Event(ModelItem):
source: Optional[nio.Event] = field()
client_id: str = field()
event_id: str = field()
content: str = field()
inline_content: str = field()
date: datetime = field()
source: Optional[nio.Event] = field()
client_id: str = field()
event_id: str = field()
date: datetime = field()
sender_id: str = field()
sender_name: str = field()
sender_avatar: str = field()
sender_id: str = field()
sender_name: str = field()
sender_avatar: str = field()
content: str = ""
inline_content: str = ""
type_specifier: TypeSpecifier = TypeSpecifier.none
@ -129,6 +129,7 @@ class Event(ModelItem):
is_local_echo: bool = False
local_event_type: str = ""
media_url: str = ""
media_title: str = ""
media_width: int = 0
media_height: int = 0
@ -141,7 +142,8 @@ class Event(ModelItem):
thumbnail_height: int = 0
def __post_init__(self) -> None:
self.inline_content = HTML_FILTER.filter_inline(self.content)
if not self.inline_content:
self.inline_content = HTML_FILTER.filter_inline(self.content)
def __lt__(self, other: "Event") -> bool: