avilliai / Manyana

功能整合
GNU Affero General Public License v3.0
154 stars 11 forks source link

🐛 [BUG] <Linux上手动部署的Manyana正常运行中,反复出现大量重复报错> #9

Closed lux-QAQ closed 1 month ago

lux-QAQ commented 1 month ago

Manyana我是手动部署在linux上的用的ManyanaLauncher_V2.rar,用conda创建的虚拟环境,使用pip和setUP.py配置好环境后可以正常运行,QQ消息也正常,但是控制台高频出现大量重复的报错信息。` 主要是这几种报错: AttributeError: 'Event' object has no attribute 'group' AttributeError: 'Event' object has no attribute 'message_chain' AttributeError: 'Event' object has no attribute 'sender' 1 (2) 1 (3) 1 (1)

完整报错信息.txt

avilliai commented 1 month ago

这类报错触发原因是,因为我个人习惯(图省事),大部分事件都是直接取str(event.meaasge_chain)了,当遇到无法转为字符串的事件(比如音乐卡片),就会触发这类报错。 截图中的报错说明,str(event.message_chain)的类型是NoneType,因此可能是因为消息本身是不支持的类型(如音乐卡片),这样其实指令仍然是可以正常触发的,报错频率取决于不支持类型的消息出现的频率,这样的话,问题就不算严重,等周末我再推一次更新可修复。 另一种可能是,所有传递给Manyana的数据都是不正常的类型,符合频繁触发描述,在这样的情况下,所有指令都无法正常触发,可能是linux中mirai事件传递和win不同,这部分我就不太清楚了。

lux-QAQ commented 1 month ago

应该不是第二种情况,因为Manyana可以响应我的正常指令比如 帮助 /allclear 并且正常回复。

avilliai commented 1 month ago

指令基本正常吗,尽可能多测一些指令,如果是第一种情况,除了会飞很多的报错出来,是不影响运行的。等周末更新修复即可。 顺带注意一下,是谁发的什么消息,导致了这类报错的出现,我目前猜测的是卡片消息,但我不太确定,确定来源有助于对问题的进一步了解

avilliai commented 1 month ago

指令基本正常吗,尽可能多测一些指令,如果是第一种情况,除了会飞很多的报错出来,是不影响运行的。等周末更新修复即可。 顺带注意一下,是谁发的什么消息,导致了这类报错的出现,我目前猜测的是卡片消息,但我不太确定,确定来源有助于对问题的进一步了解

可以的话记录一下引起报错的具体消息类型,确定后晚上开始着手修复。

lux-QAQ commented 1 month ago

前几天重装了以下Manyana和Launcher发现这三种报错没有了

AttributeError: 'Event' object has no attribute 'group'
AttributeError: 'Event' object has no attribute 'message_chain'
AttributeError: 'Event' object has no attribute 'sender'

但是仍然有:

AttributeError: 'NoneType' object has no attribute 'keys'

我收集了以下出现的消息(见 .md) log.txt README.md

avilliai commented 1 month ago

前几天重装了以下Manyana和Launcher发现这三种报错没有了

AttributeError: 'Event' object has no attribute 'group'
AttributeError: 'Event' object has no attribute 'message_chain'
AttributeError: 'Event' object has no attribute 'sender'

但是仍然有:

AttributeError: 'NoneType' object has no attribute 'keys'

我收集了以下出现的消息(见 .md) log.txt README.md

那可能和我想的差不多,

AttributeError: 'Event' object has no attribute 'group'
AttributeError: 'Event' object has no attribute 'message_chain'
AttributeError: 'Event' object has no attribute 'sender'

源于用户发送了不支持的消息类型,如卡片引起,他不发就没了。

AttributeError: 'NoneType' object has no attribute 'keys'

则可能是你本地data/lexicon/autoReply/publicLexicon.xlsx无法被正常读取,可能是文件内容异常,或者整个文件直接丢失了。 我已经进行了catch处理,你可以更新。 如果希望彻底解决,你可以从远程仓库手动重新下载这个文件放置在对应位置。

lux-QAQ commented 1 month ago

我试着去https://github.com/avilliai/Manyana/blob/main/data/autoReply/lexicon/publicLexicon.xlsx下载并放到data/autoReply/lexicon/publicLexicon.xlsx(这路径你说的不一样),但是报错仍然存在。 99

avilliai commented 1 month ago

则可能是你本地data/lexicon/autoReply/publicLexicon.xlsx无法被正常读取,可能是文件内容异常,或者整个文件直接丢失了。 我已经进行了catch处理,你可以更新。 如果希望彻底解决,你可以从远程仓库手动重新下载这个文件放置在对应位置。

路径是我记错了。鉴于替换后无法读取,我认为在你的系统中,现有的Manyana无法使用此类文件,因此词库功能应当是失效的。 3H前的更新已经对你提到反复出现的报错进行了catch处理(如上所述,这不能彻底解决问题),需要执行更新才能生效。 另一个issue中提到的关于所谓支付宝到账语音的功能,在本次更新中同样进行了实现。

avilliai commented 1 month ago

词库部分基本是我刚接触py时写的,为了便捷地与当时已有词库对接,采用了xlsx存储问答信息,这可能是无法在你的系统使用的原因,你可以看看自己能不能正常打开publicLexicon.xlsx。 问题的解决需要将词库部分全部重写,这也是原本的计划,但重写任务较为繁重,不在近期安排之中。