yzyyz1387 / nonebot_plugin_admin

Nonebot2 群管插件,不仅仅是踢禁改
GNU Affero General Public License v3.0
126 stars 17 forks source link

[BUG]防撤回功能开启后,功能不生效,日志报错如图 #82

Closed Ayase-Naka-a closed 1 year ago

Ayase-Naka-a commented 1 year ago

描述 bug 插件开启防撤回后,防撤回功能不生效,日志报错

如何复现

  1. 我通过pip方式安装并导入了插件
  2. 在 开启防撤回功能后时候, 群里有人发消息后撤回情况下,防撤回功能不生效,查看bot日志有报错

报错截图 (python的报错请截最下面) 这里放截图,可使用任何截图工具截图,然后在这里按下 Ctrl + V image

环境

其他内容 ...

yzyyz1387 commented 1 year ago

抱歉,我暂时无法复现这个问题,请问:

  1. 报错时撤回的消息是特定类型的还是所有撤回消息都报错
  2. go-cqhttp的版本号
  3. pip show nonebot-plugin-admin 看看插件版本

还有就是,如果方便,将以下代码添加到 group_recall.py 的最后一行之前,再撤回消息看一下输出什么

from nonebot import logger
logger.info(recalled_message)
logger.info(recall_notice)
yzyyz1387 commented 1 year ago

前面三个问题我感觉不是特别重要,能添加后面的代码调试一下并截图就再好不过了

Ayase-Naka-a commented 1 year ago

pip版本信息: image

go-cq版本应该是v1.0.0-rc3,具体怎么查看版本我不清楚,是2022年10月安装的bot,推测出是此版本

按照你说的,在group_recall.py 的最后一行之前加上日志信息的代码, from nonebot import logger logger.info(recalled_message) logger.info(recall_notice)

截图如下所示: bot在群里是管理员角色,用不是管理员也不是群主的账号分别发送了一条文字消息,一条图片消息,撤回后都有报错信息

image

yzyyz1387 commented 1 year ago

收到了,这个recalled_message 有问题,跟我这边不一样,我以为是go-cqhttp版本的问题,因为我测试时本地是rc4,但我换rc3也是正常的 image

关于怎么看go-cqhttp的版本,在启动go-cq的时候日志里会有

要么是适配器的问题? 需要你尝试pip show nonebot-adapter-onebot看看适配器的版本 我这里是 image

你说你是去年10月安装的,我测试了去年十月的两个适配器版本2.1.4和2.1.5和最新版本2.2.1均没问题 原谅我又一次无法复现

Ayase-Naka-a commented 1 year ago

查看适配器版本信息如下: image

我这边也是新手,不知道是具体是怎么产生的问题

Ayase-Naka-a commented 1 year ago

这里是查看go-cq的日志信息 FTX@J08XN{N I(W`WO~FM_6

yzyyz1387 commented 1 year ago

嗯,我在找问题,很玄学,可能是我技术不精

@lakwsh @tom-snow 怎么会事呢,救救 image

代码见 https://github.com/yzyyz1387/nonebot_plugin_admin/blob/main/nonebot_plugin_admin/group_recall.py#L42-L44

但是用户这里的recalled_message image

怎么跟咱的不一样

用户环境: centos nb: latest rc3 gocq: latest rc3 adapter-onebot:latest 2.2.1

lakwsh commented 1 year ago

嗯,我在找问题,很玄学,可能是我技术不精

@lakwsh @tom-snow 怎么会事呢,救救 image

代码见 https://github.com/yzyyz1387/nonebot_plugin_admin/blob/main/nonebot_plugin_admin/group_recall.py#L42-L44

但是用户这里的recalled_message image

怎么跟咱的不一样

用户环境: centos nb: latest rc3 gocq: latest rc3 adapter-onebot:latest 2.2.1

用is_text()判断一下再处理咯,https://v2.nonebot.dev/docs/tutorial/process-message#%E8%8E%B7%E5%8F%96%E6%B6%88%E6%81%AF%E7%BA%AF%E6%96%87%E6%9C%AC

yzyyz1387 commented 1 year ago

用is_text()判断一下再处理咯,https://v2.nonebot.dev/docs/tutorial/process-message#%E8%8E%B7%E5%8F%96%E6%B6%88%E6%81%AF%E7%BA%AF%E6%96%87%E6%9C%AC

复现不了,没法修(哭

Ayase-Naka-a commented 1 year ago

await bot.send_group_msg(group_id=group_id, message=recall_notice + recalled_message['message'])

不知道要怎么使用,是要判断上面的message吗 尝试在group_recall最后面加上下面这句

MessageSegment.text(message).is_text() == True

bot运行日志里没有输出

tom-snow commented 1 year ago

试试清理环境重新搭建机器人看看能不能解决。或者留下联系方式抽空远程在你的环境看看是啥情况

Ayase-Naka-a commented 1 year ago

好的,麻烦请加一下我的qq:499313487,验证问题答案:Ω,我把云服务器的ip及密码给你,帮忙远程调试一下

tom-snow commented 1 year ago

Fixed: here

lakwsh commented 1 year ago

Fixed: here

_GOC~H%QGXR@@PNBG19A% Y

yzyyz1387 commented 1 year ago

Fixed: here

-250c677c8d9b8379.jpg