mirror of
https://github.com/Genshin-bots/gsuid_core.git
synced 2025-05-12 06:55:49 +08:00
🎨 尝试转换MessageSegment.node
This commit is contained in:
parent
131b7d3d5e
commit
22ef03da38
@ -64,6 +64,7 @@ class MessageSegment:
|
||||
return Message(type='image', data=img)
|
||||
elif img.startswith('base64://'):
|
||||
img = b64decode(img.replace('base64://', ''))
|
||||
else:
|
||||
with open(img, 'rb') as fp:
|
||||
img = fp.read()
|
||||
|
||||
@ -173,11 +174,8 @@ class MessageSegment:
|
||||
return Message(type=f'log_{type}', data=content)
|
||||
|
||||
|
||||
async def _convert_message(
|
||||
message: Union[Message, str, bytes]
|
||||
) -> List[Message]:
|
||||
if isinstance(message, Message):
|
||||
if message.type == 'image' and pclient is not None:
|
||||
async def _conver_image_to_url(message: Message) -> List[Message]:
|
||||
if pclient is not None:
|
||||
img_text: str = message.data # type: ignore
|
||||
bio = BytesIO(b64decode(img_text[9:]))
|
||||
img = Image.open(bio)
|
||||
@ -186,6 +184,27 @@ async def _convert_message(
|
||||
MessageSegment.image(img_url if img_url else img_text),
|
||||
MessageSegment.image_size(img.size),
|
||||
]
|
||||
return _message
|
||||
return [message]
|
||||
|
||||
|
||||
async def _convert_message(
|
||||
message: Union[Message, str, bytes]
|
||||
) -> List[Message]:
|
||||
if isinstance(message, Message):
|
||||
if message.data is None:
|
||||
return [message]
|
||||
|
||||
if message.type == 'image':
|
||||
_message = await _conver_image_to_url(message)
|
||||
elif message.type == 'node':
|
||||
_temp = []
|
||||
for i in message.data:
|
||||
if i.type == 'image':
|
||||
_temp.extend(await _conver_image_to_url(i))
|
||||
else:
|
||||
_temp.append(i)
|
||||
_message = [MessageSegment.node(_temp)]
|
||||
else:
|
||||
_message = [message]
|
||||
elif isinstance(message, str):
|
||||
|
Loading…
x
Reference in New Issue
Block a user