feat: 支持同时运行多个平台适配器

This commit is contained in:
RockChinQ
2024-02-11 23:07:38 +08:00
parent f951625025
commit 9cad94e961
22 changed files with 148 additions and 74 deletions
+1 -1
View File
@@ -52,7 +52,7 @@ class LongTextProcessStage(stage.PipelineStage):
async def process(self, query: core_entities.Query, stage_inst_name: str) -> entities.StageProcessResult:
if len(str(query.resp_message_chain)) > self.ap.platform_cfg.data['long-text-process']['threshold']:
query.resp_message_chain = MessageChain(await self.strategy_impl.process(str(query.resp_message_chain)))
query.resp_message_chain = MessageChain(await self.strategy_impl.process(str(query.resp_message_chain), query))
return entities.StageProcessResult(
result_type=entities.ResultType.CONTINUE,
new_query=query
+3 -2
View File
@@ -7,6 +7,7 @@ from mirai.models.message import MessageComponent, ForwardMessageNode
from mirai.models.base import MiraiBaseModel
from .. import strategy as strategy_model
from ....core import entities as core_entities
class ForwardMessageDiaplay(MiraiBaseModel):
@@ -37,7 +38,7 @@ class Forward(MessageComponent):
class ForwardComponentStrategy(strategy_model.LongTextStrategy):
async def process(self, message: str) -> list[MessageComponent]:
async def process(self, message: str, query: core_entities.Query) -> list[MessageComponent]:
display = ForwardMessageDiaplay(
title="群聊的聊天记录",
brief="[聊天记录]",
@@ -48,7 +49,7 @@ class ForwardComponentStrategy(strategy_model.LongTextStrategy):
node_list = [
ForwardMessageNode(
sender_id=self.ap.im_mgr.bot_account_id,
sender_id=query.adapter.bot_account_id,
sender_name='QQ用户',
message_chain=MessageChain([message])
)
+2 -1
View File
@@ -12,6 +12,7 @@ from mirai.models import MessageChain, Image as ImageComponent
from mirai.models.message import MessageComponent
from .. import strategy as strategy_model
from ....core import entities as core_entities
class Text2ImageStrategy(strategy_model.LongTextStrategy):
@@ -21,7 +22,7 @@ class Text2ImageStrategy(strategy_model.LongTextStrategy):
async def initialize(self):
self.text_render_font = ImageFont.truetype(self.ap.platform_cfg.data['long-text-process']['font-path'], 32, encoding="utf-8")
async def process(self, message: str) -> list[MessageComponent]:
async def process(self, message: str, query: core_entities.Query) -> list[MessageComponent]:
img_path = self.text_to_image(
text_str=message,
save_as='temp/{}.png'.format(int(time.time()))
+2 -1
View File
@@ -6,6 +6,7 @@ import mirai
from mirai.models.message import MessageComponent
from ...core import app
from ...core import entities as core_entities
class LongTextStrategy(metaclass=abc.ABCMeta):
@@ -18,5 +19,5 @@ class LongTextStrategy(metaclass=abc.ABCMeta):
pass
@abc.abstractmethod
async def process(self, message: str) -> list[MessageComponent]:
async def process(self, message: str, query: core_entities.Query) -> list[MessageComponent]:
return []