fix: 不正确的事件

This commit is contained in:
Wbucket
2026-11-06 21:06:51 +08:00
parent dc8753b87c
commit 33dc032d82
2 changed files with 41 additions and 13 deletions
+6 -4
View File
@@ -4,7 +4,7 @@ from astrbot.api.star import Context, Star, register
from astrbot.api import logger from astrbot.api import logger
from astrbot.api.provider import (ProviderRequest,LLMResponse ) from astrbot.api.provider import (ProviderRequest,LLMResponse )
from astrbot.core.agent.message import TextPart from astrbot.core.agent.message import TextPart
from .service.timer import timer from .service.timer import TimerService
@register("wait_msg", "Wbucket", "一个简单的 llm等待回复插件", "0.0.1") @register("wait_msg", "Wbucket", "一个简单的 llm等待回复插件", "0.0.1")
@@ -12,6 +12,8 @@ class MyPlugin(Star):
def __init__(self, context: Context): def __init__(self, context: Context):
super().__init__(context) super().__init__(context)
self.Timer = TimerService(self)
async def initialize(self): async def initialize(self):
"""可选择实现异步的插件初始化方法,当实例化该插件类之后会自动调用该方法。""" """可选择实现异步的插件初始化方法,当实例化该插件类之后会自动调用该方法。"""
@@ -41,9 +43,9 @@ class MyPlugin(Star):
) )
)) ))
@filter.on_llm_response() @filter.on_decorating_result()
async def pattern_extract(self,event:AstrMessageEvent,req:LLMResponse): async def pattern_extract(self,event:AstrMessageEvent):
await timer(event,req) await self.Timer.timer(event)
async def terminate(self): async def terminate(self):
"""可选择实现异步的插件销毁方法,当插件被卸载/停用时会调用。""" """可选择实现异步的插件销毁方法,当插件被卸载/停用时会调用。"""
+32 -6
View File
@@ -1,15 +1,41 @@
from astrbot.api.event import AstrMessageEvent from astrbot.api.event import AstrMessageEvent
from astrbot.api.provider import LLMResponse from astrbot.api.provider import LLMResponse
from astrbot.api import logger from astrbot.api import logger
from astrbot.core.message.message_event_result import MessageChain from astrbot.core.message.message_event_result import MessageChain,Plain
from ..tool.pattern import Pattern from ..tool.pattern import Pattern
from astrbot.api.star import Star
import asyncio
class TimerService:
def __init__(self,star:Star) -> None:
self.star = star
pass
# 解析模板并进行定时 # 解析模板并进行定时
async def timer(event:AstrMessageEvent,req:LLMResponse): async def parse(self,event:AstrMessageEvent):
if not req.role == 'assistant': res = event.get_result()
if not res:
return return
Second:int|None = None
logger.info("[wait_msg]:开始解析模板") logger.info("[wait_msg]:开始解析模板")
llm_res = req.completion_text
dump = Pattern(llm_res) chain = res.chain
await event.send(MessageChain().message("awa定时时间消息:{0}过滤后:{1}".format(dump.count,dump.string))) for i in chain :
if not isinstance(i,Plain):
continue
dump = Pattern(i.text)
i.text = dump.string
Second = dump.count
if not Second is None:
self.timer(event,Second)
yield
# 定时:
def timer(self,event:AstrMessageEvent,Sec:int):
asyncio.create_task(self.timer_task())
async def timer_task(self):
await asyncio.sleep(1)
logger.warning("awa现在过去一秒了哦")