refactor: 将 yirimirai 的组件集成进 platform 包

This commit is contained in:
RockChinQ
2024-09-26 00:23:03 +08:00
parent ee0d6dcdae
commit 1c4a700d92
36 changed files with 1580 additions and 342 deletions

View File

@@ -4,7 +4,9 @@ import typing
import enum
import pydantic
import mirai
# import mirai
from ..platform.types import message as platform_message
class FunctionCall(pydantic.BaseModel):
@@ -79,7 +81,7 @@ class Message(pydantic.BaseModel):
else:
return '未知消息'
def get_content_mirai_message_chain(self, prefix_text: str="") -> mirai.MessageChain | None:
def get_content_mirai_message_chain(self, prefix_text: str="") -> platform_message.MessageChain | None:
"""将内容转换为 Mirai MessageChain 对象
Args:
@@ -89,15 +91,15 @@ class Message(pydantic.BaseModel):
if self.content is None:
return None
elif isinstance(self.content, str):
return mirai.MessageChain([mirai.Plain(prefix_text+self.content)])
return platform_message.MessageChain([platform_message.Plain(prefix_text+self.content)])
elif isinstance(self.content, list):
mc = []
for ce in self.content:
if ce.type == 'text':
mc.append(mirai.Plain(ce.text))
mc.append(platform_message.Plain(ce.text))
elif ce.type == 'image_url':
if ce.image_url.url.startswith("http"):
mc.append(mirai.Image(url=ce.image_url.url))
mc.append(platform_message.Image(url=ce.image_url.url))
else: # base64
b64_str = ce.image_url.url
@@ -105,15 +107,15 @@ class Message(pydantic.BaseModel):
if b64_str.startswith("data:"):
b64_str = b64_str.split(",")[1]
mc.append(mirai.Image(base64=b64_str))
mc.append(platform_message.Image(base64=b64_str))
# 找第一个文字组件
if prefix_text:
for i, c in enumerate(mc):
if isinstance(c, mirai.Plain):
mc[i] = mirai.Plain(prefix_text+c.text)
if isinstance(c, platform_message.Plain):
mc[i] = platform_message.Plain(prefix_text+c.text)
break
else:
mc.insert(0, mirai.Plain(prefix_text))
mc.insert(0, platform_message.Plain(prefix_text))
return mirai.MessageChain(mc)
return platform_message.MessageChain(mc)