@@ -79,13 +79,35 @@ async def emoji(self, seg: Emoji, bot: Union[Bot, None]) -> "MessageSegment":
7979 return MessageSegment .KMarkdown (f":{ seg .id } :" )
8080
8181 @export
82- async def media (self , seg : Union [Image , Voice , Video , Audio , File ], bot : Union [Bot , None ]) -> "MessageSegment" :
82+ async def image (self , seg : Image , bot : Union [Bot , None ]) -> "MessageSegment" :
83+ if TYPE_CHECKING :
84+ assert isinstance (bot , KBot )
85+ name = seg .__class__ .__name__ .lower ()
86+ if seg .id :
87+ return MessageSegment .image (seg .id )
88+ if seg .url :
89+ return MessageSegment .image (seg .url )
90+ if seg .__class__ .to_url and seg .raw :
91+ return MessageSegment .image (
92+ await seg .__class__ .to_url (seg .raw , bot , None if seg .name == seg .__default_name__ else seg .name )
93+ )
94+ if seg .__class__ .to_url and seg .path :
95+ return MessageSegment .image (
96+ await seg .__class__ .to_url (seg .path , bot , None if seg .name == seg .__default_name__ else seg .name )
97+ )
98+ if seg .raw :
99+ return MessageSegment .local_image (seg .raw_bytes )
100+ if seg .path :
101+ return MessageSegment .local_image (seg .path )
102+ raise SerializeFailed (lang .require ("nbp-uniseg" , "invalid_segment" ).format (type = name , seg = seg ))
103+
104+ @export
105+ async def media (self , seg : Union [Voice , Video , Audio , File ], bot : Union [Bot , None ]) -> "MessageSegment" :
83106 if TYPE_CHECKING :
84107 assert isinstance (bot , KBot )
85108 name = seg .__class__ .__name__ .lower ()
86109 title = None if seg .name == seg .__default_name__ else seg .name
87110 method = {
88- "image" : MessageSegment .image ,
89111 "voice" : MessageSegment .audio ,
90112 "audio" : MessageSegment .audio ,
91113 "video" : MessageSegment .video ,
@@ -102,7 +124,6 @@ async def media(self, seg: Union[Image, Voice, Video, Audio, File], bot: Union[B
102124 await seg .__class__ .to_url (seg .path , bot , None if seg .name == seg .__default_name__ else seg .name ), title
103125 )
104126 local_method = {
105- "image" : MessageSegment .local_image ,
106127 "voice" : MessageSegment .local_audio ,
107128 "audio" : MessageSegment .local_audio ,
108129 "video" : MessageSegment .local_video ,
0 commit comments