Event: optional (inline_)content, auto-gen inline
This commit is contained in:
		@@ -196,14 +196,12 @@ class MatrixClient(nio.AsyncClient):
 | 
				
			|||||||
            client_id        = f"echo-{uuid}",
 | 
					            client_id        = f"echo-{uuid}",
 | 
				
			||||||
            event_id         = "",
 | 
					            event_id         = "",
 | 
				
			||||||
            date             = datetime.now(),
 | 
					            date             = datetime.now(),
 | 
				
			||||||
            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_id        = self.user_id,
 | 
				
			||||||
            sender_name      = our_info.display_name,
 | 
					            sender_name      = our_info.display_name,
 | 
				
			||||||
            sender_avatar    = our_info.avatar_url,
 | 
					            sender_avatar    = our_info.avatar_url,
 | 
				
			||||||
 | 
					            content          = echo_body,
 | 
				
			||||||
 | 
					            is_local_echo    = True,
 | 
				
			||||||
 | 
					            local_event_type = event_type,
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
        for user_id in self.models[Account]:
 | 
					        for user_id in self.models[Account]:
 | 
				
			||||||
            if user_id in self.models[Member, room_id]:
 | 
					            if user_id in self.models[Member, room_id]:
 | 
				
			||||||
@@ -497,12 +495,7 @@ class MatrixClient(nio.AsyncClient):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    async def register_nio_event(
 | 
					    async def register_nio_event(
 | 
				
			||||||
        self,
 | 
					        self, room: nio.MatrixRoom, ev: nio.Event, **fields,
 | 
				
			||||||
        room:           nio.MatrixRoom,
 | 
					 | 
				
			||||||
        ev:             nio.Event,
 | 
					 | 
				
			||||||
        content:        str,
 | 
					 | 
				
			||||||
        type_specifier: TypeSpecifier = TypeSpecifier.none,
 | 
					 | 
				
			||||||
        **fields,
 | 
					 | 
				
			||||||
    ) -> None:
 | 
					    ) -> None:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        await self.register_nio_room(room)
 | 
					        await self.register_nio_room(room)
 | 
				
			||||||
@@ -521,20 +514,13 @@ class MatrixClient(nio.AsyncClient):
 | 
				
			|||||||
            source        = ev,
 | 
					            source        = ev,
 | 
				
			||||||
            client_id     = ev.event_id,
 | 
					            client_id     = ev.event_id,
 | 
				
			||||||
            event_id      = ev.event_id,
 | 
					            event_id      = ev.event_id,
 | 
				
			||||||
            content        = content,
 | 
					 | 
				
			||||||
            inline_content = HTML_FILTER.filter_inline(content),
 | 
					 | 
				
			||||||
            date          = datetime.fromtimestamp(ev.server_timestamp / 1000),
 | 
					            date          = datetime.fromtimestamp(ev.server_timestamp / 1000),
 | 
				
			||||||
 | 
					 | 
				
			||||||
            sender_id     = ev.sender,
 | 
					            sender_id     = ev.sender,
 | 
				
			||||||
            sender_name   = sender_name,
 | 
					            sender_name   = sender_name,
 | 
				
			||||||
            sender_avatar = sender_avatar,
 | 
					            sender_avatar = sender_avatar,
 | 
				
			||||||
 | 
					 | 
				
			||||||
            type_specifier = type_specifier,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            target_id     = target_id,
 | 
					            target_id     = target_id,
 | 
				
			||||||
            target_name   = target_name,
 | 
					            target_name   = target_name,
 | 
				
			||||||
            target_avatar = target_avatar,
 | 
					            target_avatar = target_avatar,
 | 
				
			||||||
 | 
					 | 
				
			||||||
            **fields,
 | 
					            **fields,
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -639,7 +625,9 @@ class MatrixClient(nio.AsyncClient):
 | 
				
			|||||||
        await self.register_nio_event(
 | 
					        await self.register_nio_event(
 | 
				
			||||||
            room,
 | 
					            room,
 | 
				
			||||||
            ev,
 | 
					            ev,
 | 
				
			||||||
            content          = ev.url,
 | 
					            content          = "",
 | 
				
			||||||
 | 
					            inline_content   = ev.body,
 | 
				
			||||||
 | 
					            media_url        = ev.url,
 | 
				
			||||||
            media_title      = ev.body,
 | 
					            media_title      = ev.body,
 | 
				
			||||||
            media_width      = info.get("w") or 0,
 | 
					            media_width      = info.get("w") or 0,
 | 
				
			||||||
            media_height     = info.get("h") or 0,
 | 
					            media_height     = info.get("h") or 0,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -112,14 +112,14 @@ class Event(ModelItem):
 | 
				
			|||||||
    source:        Optional[nio.Event] = field()
 | 
					    source:        Optional[nio.Event] = field()
 | 
				
			||||||
    client_id:     str                 = field()
 | 
					    client_id:     str                 = field()
 | 
				
			||||||
    event_id:      str                 = field()
 | 
					    event_id:      str                 = field()
 | 
				
			||||||
    content:        str                 = field()
 | 
					 | 
				
			||||||
    inline_content: str                 = field()
 | 
					 | 
				
			||||||
    date:          datetime            = field()
 | 
					    date:          datetime            = field()
 | 
				
			||||||
 | 
					 | 
				
			||||||
    sender_id:     str                 = field()
 | 
					    sender_id:     str                 = field()
 | 
				
			||||||
    sender_name:   str                 = field()
 | 
					    sender_name:   str                 = field()
 | 
				
			||||||
    sender_avatar: str                 = field()
 | 
					    sender_avatar: str                 = field()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    content:        str = ""
 | 
				
			||||||
 | 
					    inline_content: str = ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    type_specifier: TypeSpecifier = TypeSpecifier.none
 | 
					    type_specifier: TypeSpecifier = TypeSpecifier.none
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    target_id:     str = ""
 | 
					    target_id:     str = ""
 | 
				
			||||||
@@ -129,6 +129,7 @@ class Event(ModelItem):
 | 
				
			|||||||
    is_local_echo:    bool = False
 | 
					    is_local_echo:    bool = False
 | 
				
			||||||
    local_event_type: str  = ""
 | 
					    local_event_type: str  = ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    media_url:      str = ""
 | 
				
			||||||
    media_title:    str = ""
 | 
					    media_title:    str = ""
 | 
				
			||||||
    media_width:    int = 0
 | 
					    media_width:    int = 0
 | 
				
			||||||
    media_height:   int = 0
 | 
					    media_height:   int = 0
 | 
				
			||||||
@@ -141,6 +142,7 @@ class Event(ModelItem):
 | 
				
			|||||||
    thumbnail_height: int = 0
 | 
					    thumbnail_height: int = 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __post_init__(self) -> None:
 | 
					    def __post_init__(self) -> None:
 | 
				
			||||||
 | 
					        if not self.inline_content:
 | 
				
			||||||
            self.inline_content = HTML_FILTER.filter_inline(self.content)
 | 
					            self.inline_content = HTML_FILTER.filter_inline(self.content)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user