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(),
 | 
				
			||||||
 | 
					            sender_id        = self.user_id,
 | 
				
			||||||
 | 
					            sender_name      = our_info.display_name,
 | 
				
			||||||
 | 
					            sender_avatar    = our_info.avatar_url,
 | 
				
			||||||
            content          = echo_body,
 | 
					            content          = echo_body,
 | 
				
			||||||
            inline_content   = HTML_FILTER.filter_inline(echo_body),
 | 
					 | 
				
			||||||
            is_local_echo    = True,
 | 
					            is_local_echo    = True,
 | 
				
			||||||
            local_event_type = event_type,
 | 
					            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]:
 | 
					        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)
 | 
				
			||||||
@@ -518,23 +511,16 @@ class MatrixClient(nio.AsyncClient):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        # Create Event ModelItem
 | 
					        # Create Event ModelItem
 | 
				
			||||||
        item = Event(
 | 
					        item = Event(
 | 
				
			||||||
            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,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -109,16 +109,16 @@ class TypeSpecifier(AutoStrEnum):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
@dataclass
 | 
					@dataclass
 | 
				
			||||||
class Event(ModelItem):
 | 
					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()
 | 
					    date:          datetime            = field()
 | 
				
			||||||
    inline_content: str                 = field()
 | 
					    sender_id:     str                 = field()
 | 
				
			||||||
    date:           datetime            = field()
 | 
					    sender_name:   str                 = field()
 | 
				
			||||||
 | 
					    sender_avatar: str                 = field()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    sender_id:     str = field()
 | 
					    content:        str = ""
 | 
				
			||||||
    sender_name:   str = field()
 | 
					    inline_content: str = ""
 | 
				
			||||||
    sender_avatar: str = field()
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    type_specifier: TypeSpecifier = TypeSpecifier.none
 | 
					    type_specifier: TypeSpecifier = TypeSpecifier.none
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -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,7 +142,8 @@ class Event(ModelItem):
 | 
				
			|||||||
    thumbnail_height: int = 0
 | 
					    thumbnail_height: int = 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __post_init__(self) -> None:
 | 
					    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:
 | 
					    def __lt__(self, other: "Event") -> bool:
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user