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)
|
return Message(type='image', data=img)
|
||||||
elif img.startswith('base64://'):
|
elif img.startswith('base64://'):
|
||||||
img = b64decode(img.replace('base64://', ''))
|
img = b64decode(img.replace('base64://', ''))
|
||||||
|
else:
|
||||||
with open(img, 'rb') as fp:
|
with open(img, 'rb') as fp:
|
||||||
img = fp.read()
|
img = fp.read()
|
||||||
|
|
||||||
@ -173,11 +174,8 @@ class MessageSegment:
|
|||||||
return Message(type=f'log_{type}', data=content)
|
return Message(type=f'log_{type}', data=content)
|
||||||
|
|
||||||
|
|
||||||
async def _convert_message(
|
async def _conver_image_to_url(message: Message) -> List[Message]:
|
||||||
message: Union[Message, str, bytes]
|
if pclient is not None:
|
||||||
) -> List[Message]:
|
|
||||||
if isinstance(message, Message):
|
|
||||||
if message.type == 'image' and pclient is not None:
|
|
||||||
img_text: str = message.data # type: ignore
|
img_text: str = message.data # type: ignore
|
||||||
bio = BytesIO(b64decode(img_text[9:]))
|
bio = BytesIO(b64decode(img_text[9:]))
|
||||||
img = Image.open(bio)
|
img = Image.open(bio)
|
||||||
@ -186,6 +184,27 @@ async def _convert_message(
|
|||||||
MessageSegment.image(img_url if img_url else img_text),
|
MessageSegment.image(img_url if img_url else img_text),
|
||||||
MessageSegment.image_size(img.size),
|
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:
|
else:
|
||||||
_message = [message]
|
_message = [message]
|
||||||
elif isinstance(message, str):
|
elif isinstance(message, str):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user