Skip to content

Commit 3ff2632

Browse files
committed
🐛 version 0.56.2
fix ReplyMerge Ext
1 parent 8fbf7ee commit 3ff2632

File tree

5 files changed

+53
-55
lines changed

5 files changed

+53
-55
lines changed

example/bot.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
# driver.register_adapter(SatoriAdapter)
1212

1313
# nonebot.require("nonebot_plugin_alconna")
14-
# nonebot.load_plugins("plugins")
15-
nonebot.load_plugin("plugins.demo1")
14+
nonebot.load_plugins("plugins")
15+
# nonebot.load_plugin("plugins.demo1")
1616

1717

1818
async def _():

example/plugins/demo.py

Lines changed: 38 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from typing import Union, Literal
22

33
from nonebot import require
4-
from nonebot.internal.adapter import Event
54
from nonebot.adapters.onebot.v12 import Bot
65
from importlib_metadata import distributions
76
from nonebot.adapters.onebot.v12.event import GroupMessageDeleteEvent
@@ -519,41 +518,41 @@ async def preview_h(content: UniMessage):
519518
await preview.finish("rendering preview:\n" + content)
520519

521520

522-
from arclet.alconna.tools.debug import analyse_header
523-
524-
525-
class TestExtension1(Extension):
526-
@property
527-
def priority(self) -> int:
528-
return 12
529-
530-
@property
531-
def id(self) -> str:
532-
return "test1"
533-
534-
def post_init(self, alc: Alconna) -> None:
535-
def test_func(msg: str):
536-
test_res = analyse_header(alc.prefixes, alc.command, msg, raise_exception=False)
537-
return test_res and test_res.matched
538-
539-
self.test_func = test_func
540-
541-
async def call_llm(self, msg: str):
542-
return "calculate " + "".join(c for c in msg if ord(c) < 256)
543-
544-
async def receive_wrapper(self, bot: Bot, event: Event, command: Alconna, receive: UniMessage) -> UniMessage:
545-
msg = receive.extract_plain_text()
546-
if self.test_func(msg):
547-
return receive
548-
output = await self.call_llm(msg)
549-
return UniMessage(output)
550-
551-
552-
calculate = Command("calculate <expression>", "计算").build(
553-
auto_send_output=True, extensions=[TestExtension1()], use_cmd_start=False
554-
)
555-
556-
557-
@calculate.handle()
558-
async def calculate_h(expression: str):
559-
await calculate.finish(expression)
521+
# from arclet.alconna.tools.debug import analyse_header
522+
523+
#
524+
# class TestExtension1(Extension):
525+
# @property
526+
# def priority(self) -> int:
527+
# return 12
528+
#
529+
# @property
530+
# def id(self) -> str:
531+
# return "test1"
532+
#
533+
# def post_init(self, alc: Alconna) -> None:
534+
# def test_func(msg: str):
535+
# test_res = analyse_header(alc.prefixes, alc.command, msg, raise_exception=False)
536+
# return test_res and test_res.matched
537+
#
538+
# self.test_func = test_func
539+
#
540+
# async def call_llm(self, msg: str):
541+
# return "calculate " + "".join(c for c in msg if ord(c) < 256)
542+
#
543+
# async def receive_wrapper(self, bot: Bot, event: Event, command: Alconna, receive: UniMessage) -> UniMessage:
544+
# msg = receive.extract_plain_text()
545+
# if self.test_func(msg):
546+
# return receive
547+
# output = await self.call_llm(msg)
548+
# return UniMessage(output)
549+
#
550+
#
551+
# calculate = Command("calculate <expression>", "计算").build(
552+
# auto_send_output=True, extensions=[TestExtension1()], use_cmd_start=False
553+
# )
554+
#
555+
#
556+
# @calculate.handle()
557+
# async def calculate_h(expression: str):
558+
# await calculate.finish(expression)

src/nonebot_plugin_alconna/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@
137137
from .uniseg import SupportAdapterModule as SupportAdapterModule
138138
from .extension import add_global_extension as add_global_extension
139139

140-
__version__ = "0.56.1"
140+
__version__ = "0.56.2"
141141
__supported_adapters__ = set(m.value for m in SupportAdapterModule.__members__.values()) # noqa: C401
142142
__plugin_meta__ = PluginMetadata(
143143
name="Alconna 插件",

src/nonebot_plugin_alconna/extension.py

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,17 @@ async def output_converter(self, output_type: OutputType, content: str) -> UniMe
209209
async def message_provider(
210210
self, event: Event, state: T_State, bot: Bot, use_origin: bool = False
211211
) -> UniMessage | None:
212+
exc = None
213+
for ext in self.context:
214+
if not ext._overrides["message_provider"]:
215+
continue
216+
try:
217+
if (msg1 := await ext.message_provider(event, state, bot, use_origin)) is not None:
218+
return msg1
219+
except Exception as e:
220+
exc = e
221+
if exc is not None:
222+
raise exc
212223
if event.get_type().startswith("message"):
213224
msg_id = UniMessage.get_message_id(event, bot)
214225
if use_origin and (uni_msg := unimsg_origin_cache.get(msg_id)) is not None:
@@ -224,18 +235,6 @@ async def message_provider(
224235
if use_origin:
225236
return ori_uni_msg
226237
return uni_msg
227-
exc = None
228-
for ext in self.context:
229-
if not ext._overrides["message_provider"]:
230-
continue
231-
try:
232-
if (msg1 := await ext.message_provider(event, state, bot, use_origin)) is not None:
233-
return msg1
234-
except Exception as e:
235-
exc = e
236-
if exc is not None:
237-
raise exc
238-
239238
return None
240239

241240
async def receive_wrapper(self, bot: Bot, event: Event, command: Alconna, receive: UniMessage) -> UniMessage:

src/nonebot_plugin_alconna/uniseg/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
from .constraint import SupportAdapterModule as SupportAdapterModule
5959
from .adapters import alter_get_builder, alter_get_fetcher, alter_get_exporter
6060

61-
__version__ = "0.56.1"
61+
__version__ = "0.56.2"
6262

6363
__plugin_meta__ = PluginMetadata(
6464
name="Universal Segment 插件",

0 commit comments

Comments
 (0)