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
+4 -2
View File
@@ -1,9 +1,11 @@
import pydantic
import mirai
# import mirai
from ...platform.types import message as platform_message
class RuleJudgeResult(pydantic.BaseModel):
matching: bool = False
replacement: mirai.MessageChain = None
replacement: platform_message.MessageChain = None
+1 -1
View File
@@ -1,6 +1,6 @@
from __future__ import annotations
import mirai
# import mirai
from ...core import app
from . import entities as rule_entities, rule
+4 -2
View File
@@ -2,11 +2,13 @@ from __future__ import annotations
import abc
import typing
import mirai
# import mirai
from ...core import app, entities as core_entities
from . import entities
from ...platform.types import message as platform_message
preregisetered_rules: list[typing.Type[GroupRespondRule]] = []
@@ -35,7 +37,7 @@ class GroupRespondRule(metaclass=abc.ABCMeta):
async def match(
self,
message_text: str,
message_chain: mirai.MessageChain,
message_chain: platform_message.MessageChain,
rule_dict: dict,
query: core_entities.Query
) -> entities.RuleJudgeResult:
+7 -6
View File
@@ -1,10 +1,11 @@
from __future__ import annotations
import mirai
# import mirai
from .. import rule as rule_model
from .. import entities
from ....core import entities as core_entities
from ....platform.types import message as platform_message
@rule_model.rule_class("at-bot")
@@ -13,16 +14,16 @@ class AtBotRule(rule_model.GroupRespondRule):
async def match(
self,
message_text: str,
message_chain: mirai.MessageChain,
message_chain: platform_message.MessageChain,
rule_dict: dict,
query: core_entities.Query
) -> entities.RuleJudgeResult:
if message_chain.has(mirai.At(query.adapter.bot_account_id)) and rule_dict['at']:
message_chain.remove(mirai.At(query.adapter.bot_account_id))
if message_chain.has(platform_message.At(query.adapter.bot_account_id)) and rule_dict['at']:
message_chain.remove(platform_message.At(query.adapter.bot_account_id))
if message_chain.has(mirai.At(query.adapter.bot_account_id)): # 回复消息时会at两次,检查并删除重复的
message_chain.remove(mirai.At(query.adapter.bot_account_id))
if message_chain.has(platform_message.At(query.adapter.bot_account_id)): # 回复消息时会at两次,检查并删除重复的
message_chain.remove(platform_message.At(query.adapter.bot_account_id))
return entities.RuleJudgeResult(
matching=True,
+4 -3
View File
@@ -1,8 +1,9 @@
import mirai
# import mirai
from .. import rule as rule_model
from .. import entities
from ....core import entities as core_entities
from ....platform.types import message as platform_message
@rule_model.rule_class("prefix")
@@ -11,7 +12,7 @@ class PrefixRule(rule_model.GroupRespondRule):
async def match(
self,
message_text: str,
message_chain: mirai.MessageChain,
message_chain: platform_message.MessageChain,
rule_dict: dict,
query: core_entities.Query
) -> entities.RuleJudgeResult:
@@ -22,7 +23,7 @@ class PrefixRule(rule_model.GroupRespondRule):
# 查找第一个plain元素
for me in message_chain:
if isinstance(me, mirai.Plain):
if isinstance(me, platform_message.Plain):
me.text = me.text[len(prefix):]
return entities.RuleJudgeResult(
+3 -2
View File
@@ -1,10 +1,11 @@
import random
import mirai
# import mirai
from .. import rule as rule_model
from .. import entities
from ....core import entities as core_entities
from ....platform.types import message as platform_message
@rule_model.rule_class("random")
@@ -13,7 +14,7 @@ class RandomRespRule(rule_model.GroupRespondRule):
async def match(
self,
message_text: str,
message_chain: mirai.MessageChain,
message_chain: platform_message.MessageChain,
rule_dict: dict,
query: core_entities.Query
) -> entities.RuleJudgeResult:
+3 -2
View File
@@ -1,10 +1,11 @@
import re
import mirai
# import mirai
from .. import rule as rule_model
from .. import entities
from ....core import entities as core_entities
from ....platform.types import message as platform_message
@rule_model.rule_class("regexp")
@@ -13,7 +14,7 @@ class RegExpRule(rule_model.GroupRespondRule):
async def match(
self,
message_text: str,
message_chain: mirai.MessageChain,
message_chain: platform_message.MessageChain,
rule_dict: dict,
query: core_entities.Query
) -> entities.RuleJudgeResult: