Skip to content

Commit 75fe522

Browse files
committed
🔖 version 0.60.2
1 parent c313658 commit 75fe522

File tree

5 files changed

+26
-27
lines changed

5 files changed

+26
-27
lines changed

src/nonebot_plugin_alconna/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@
141141
from .uniseg import patch_matcher_send as patch_matcher_send
142142
from .uniseg import patch_saa as patch_saa
143143

144-
__version__ = "0.60.1"
144+
__version__ = "0.60.2"
145145
__supported_adapters__ = set(m.value for m in SupportAdapterModule.__members__.values()) # noqa: C401
146146
__plugin_meta__ = PluginMetadata(
147147
name="Alconna 插件",

src/nonebot_plugin_alconna/uniseg/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
from .tools import image_fetch as image_fetch
6565
from .tools import reply_fetch as reply_fetch
6666

67-
__version__ = "0.60.1"
67+
__version__ = "0.60.2"
6868

6969
__plugin_meta__ = PluginMetadata(
7070
name="Universal Segment 插件",

src/nonebot_plugin_alconna/uniseg/exporter.py

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ def merge_text(msg: TM) -> TM:
5050

5151
async def _auto_fallback(seg: Segment, bot: Union[Bot, None]):
5252
if isinstance(seg, Media):
53+
if seg.children:
54+
msg = []
55+
for but in seg.children:
56+
msg.extend(await _auto_fallback(but, bot))
57+
return msg
5358
if seg.url:
5459
return [Text(f"[{seg.type}]{seg.url} ")]
5560
if seg.__class__.to_url and seg.raw:
@@ -68,9 +73,16 @@ async def _auto_fallback(seg: Segment, bot: Union[Bot, None]):
6873
if isinstance(seg, Emoji):
6974
return [Text(f"[{seg.name}]")] if seg.name else [Text(f"[表情:{seg.id}]")]
7075
if isinstance(seg, Hyper):
71-
return [Text(f"[{seg.format}]")]
76+
return [Text(f"[{seg.format}]"), *seg.children]
7277
if isinstance(seg, Reply):
73-
return [] # Text(f"> 回复{seg.msg or seg.id}的消息\n")]
78+
if seg.children:
79+
msg = []
80+
for but in seg.children:
81+
msg.extend(await _auto_fallback(but, bot))
82+
return msg
83+
if seg.msg:
84+
return [Text(f"> 回复{seg.msg}\n")]
85+
return [Text(f"> 回复{seg.id}的消息\n")]
7486
if isinstance(seg, Button):
7587
if seg.flag == "link":
7688
return [Text(f"[{seg.label}]({seg.url})")]
@@ -195,16 +207,8 @@ async def export(self, source: Sequence[Segment], bot: Union[Bot, None], fallbac
195207
continue
196208
if fallback == FallbackStrategy.to_text:
197209
message += str(seg)
198-
elif fallback == FallbackStrategy.rollback:
199-
if not seg.children:
200-
if isinstance(seg, Media):
201-
if seg.url:
202-
message += f"[{seg.type}]{seg.url}"
203-
else:
204-
message += f"[{seg.type}]{'' if seg.name == seg.__default_name__ else seg.name}"
205-
else:
206-
message += str(seg)
207-
elif isinstance(seg, Reference):
210+
elif fallback == FallbackStrategy.rollback and seg.children:
211+
if isinstance(seg, Reference):
208212
for node in seg.children:
209213
if isinstance(node, CustomNode):
210214
if isinstance(node.content, str):
@@ -215,15 +219,10 @@ async def export(self, source: Sequence[Segment], bot: Union[Bot, None], fallbac
215219
message += f"> msg:{node.id}\n"
216220
else:
217221
message.extend(await self.export(seg.children, bot, fallback))
218-
elif seg.children:
219-
message.extend(await self.export(seg.children, bot, FallbackStrategy.auto))
220222
else:
221223
message.extend(await self.export((await _auto_fallback(seg, bot)), bot, FallbackStrategy.auto))
222224
elif fallback is True:
223-
if seg.children:
224-
message.extend(await self.export(seg.children, bot, FallbackStrategy.auto))
225-
else:
226-
message.extend(await self.export((await _auto_fallback(seg, bot)), bot, FallbackStrategy.auto))
225+
message.extend(await self.export((await _auto_fallback(seg, bot)), bot, FallbackStrategy.auto))
227226
else:
228227
raise SerializeFailed(
229228
lang.require("nbp-uniseg", "failed").format(

src/nonebot_plugin_alconna/uniseg/message.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1034,7 +1034,7 @@ def _handle_i18n(self, extra: dict, *args, **kwargs):
10341034
async def export(
10351035
self,
10361036
bot: Bot | None = None,
1037-
fallback: bool | FallbackStrategy = FallbackStrategy.rollback,
1037+
fallback: bool | FallbackStrategy = FallbackStrategy.auto,
10381038
adapter: str | None = None,
10391039
) -> Message:
10401040
"""将 UniMessage 转换为指定适配器下的 Message"""
@@ -1067,7 +1067,7 @@ async def export(
10671067

10681068
def export_sync(
10691069
self,
1070-
fallback: bool | FallbackStrategy = FallbackStrategy.rollback,
1070+
fallback: bool | FallbackStrategy = FallbackStrategy.auto,
10711071
adapter: str | None = None,
10721072
) -> Message:
10731073
"""(实验性)同步方法地将 UniMessage 转换为指定适配器下的 Message"""
@@ -1081,7 +1081,7 @@ async def send(
10811081
self,
10821082
target: Event | Target | None = None,
10831083
bot: Bot | None = None,
1084-
fallback: bool | FallbackStrategy = FallbackStrategy.rollback,
1084+
fallback: bool | FallbackStrategy = FallbackStrategy.auto,
10851085
at_sender: str | bool = False,
10861086
reply_to: str | bool | Reply | None = False,
10871087
no_wrapper: bool = False,
@@ -1136,7 +1136,7 @@ async def finish(
11361136
self,
11371137
target: Event | Target | None = None,
11381138
bot: Bot | None = None,
1139-
fallback: bool | FallbackStrategy = FallbackStrategy.rollback,
1139+
fallback: bool | FallbackStrategy = FallbackStrategy.auto,
11401140
at_sender: str | bool = False,
11411141
reply_to: str | bool | Reply | None = False,
11421142
**kwargs,

src/nonebot_plugin_alconna/uniseg/receipt.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ async def edit(
149149
async def send(
150150
self,
151151
message: str | Iterable[str] | Iterable[Segment] | Iterable[str | Segment] | Segment,
152-
fallback: bool | FallbackStrategy = FallbackStrategy.rollback,
152+
fallback: bool | FallbackStrategy = FallbackStrategy.auto,
153153
at_sender: str | bool = False,
154154
reply_to: str | bool | Reply | None = False,
155155
delay: float = 0,
@@ -165,7 +165,7 @@ async def send(
165165
async def reply(
166166
self,
167167
message: str | Iterable[str] | Iterable[Segment] | Iterable[str | Segment] | Segment,
168-
fallback: bool | FallbackStrategy = FallbackStrategy.rollback,
168+
fallback: bool | FallbackStrategy = FallbackStrategy.auto,
169169
at_sender: str | bool = False,
170170
index: int = -1,
171171
delay: float = 0,
@@ -176,7 +176,7 @@ async def reply(
176176
async def finish(
177177
self,
178178
message: str | Iterable[str] | Iterable[Segment] | Iterable[str | Segment] | Segment,
179-
fallback: bool | FallbackStrategy = FallbackStrategy.rollback,
179+
fallback: bool | FallbackStrategy = FallbackStrategy.auto,
180180
at_sender: str | bool = False,
181181
reply_to: str | bool | Reply | None = False,
182182
delay: float = 0,

0 commit comments

Comments
 (0)