kexue-z / nonebot-plugin-word-bank2

基于nonebot2的无数据库轻量问答插件
GNU General Public License v3.0
55 stars 9 forks source link

🐛试图解决插件会对消息中的特殊符号(如[]、&)进行转义(比如&或者&#xx;啥的)的问题 #53

Closed MWTJC closed 3 months ago

MWTJC commented 3 months ago

首先是我的运行环境: windows11 python 3.10 自改真寻bot,通过将文件手动放入extensive_plugins的方式加载此插件 nonebot2==2.3.0 nonebot-adapter-onebot==2.2.0 收发器: napcatqq

可能有关:

50 #45 #48

我试图先在负责存储的bank.json中,解决存储的内容被转义的问题: 经分解调试,认为在word_entry.dump()函数中使用的str(Message)会导致特定符号被转义: image 遂换用Message.extract_plain_text()避免此步被转义。

我试图再解决在发送消息时,特殊符号被转义的问题: 经分解调试,认为插件触发转义的路径如下:

最终结论就是v11适配器的str(Message)自带转义惹出来的,查阅文档后,发现Message.template()不一定必须Message.template(Message),还可以Message.template(字符串),正好能规避使用被v11重写的带有转义的str(),测试后发现在我的环境下能解决问题。

但此PR可能会导致使用CQ码与收发器通信的情景出现问题,我无从测试

MWTJC commented 3 months ago

发现第二处改动似乎丧失了手搓cq消息的特性,回炉()

kexue-z commented 3 months ago

师傅,发生什么事儿了