Giter VIP home page Giter VIP logo

nonebot_plugin_admin's Introduction

nonebot

你的star是我的动力

简易群管 (上岸缓更)

dev分支 _✨ NoneBot2 (有点不)简易群管✨ _

踢 改 禁.......
欢迎 ISSUES PR

权限说明:见下方指令↓

安装💿(pip)

pip install nonebot-plugin-admin

导入📲

bot.py 导入,语句: nonebot.load_plugin("nonebot_plugin_admin")

请注意与nonebot版本适配,匹配请查看:更新 Python 3.9+

安装💿(nb plugin)

nb plugin install nonebot-plugin-admin

更新

pip install --upgrade nonebot-plugin-admin

配置

鉴黄配置
腾讯云图片安全,开通地址:https://console.cloud.tencent.com/cms
文档:https://cloud.tencent.com/document/product/1125

需要使用此功能时在 .env.* 文件中加入以下内容,并且设置你自己的 api idapi key【不需要此功能可以不配置】:

# 腾讯云图片安全api
tenid="xxxxxx"
tenkeys="xxxxxx"
# 是否开启禁言等操作的成功提示【不开启的话踢人/禁言等成功没有QQ消息提示】
callback_notice=true # 如果不想开启设置成 false 或者不添加此配置项【默认关闭】

✨Pay tribute to A60 https://github.com/djkcyl/ABot-Graia

早晚安配置

额外依赖pip install nonebot_plugin_apscheduler 定时推送群消息需要在.evn中配置:

send_group_id = ["xxx","xxx"]    # 必填 群号
send_switch_morning = False                      # 选填 True/False 默认开启 早上消息推送是否开启
send_switch_night = False                        # 选填 True/False 默认开启 晚上消息推送是否开启
send_mode = 1                 # 选填 默认模式2 模式1发送自定义句子,模式2随机调用一句
send_sentence_morning = ["句子1","句子2","..."]    # 如果是模式1 此项必填,早上随机发送该字段中的一句
send_sentence_night = ["句子1","句子2","..."]     # 如果是模式1 此项必填,晚上随机发送该字段中的一句
send_time_moring = "8 0"    # 选填 早上发送时间默认为7:00
send_time_night = "23 0"    # 选填 晚上发送时间默认为22:00              

更多配置项请查看 config.py

注意

dev分支由于API的加入,首次使用本插件时,会终止机器人程序,需要再启动一次
控制台会有对应提示

指令💻

Tips:

  • 关于命令,对/sp这类斜杠+英文的命令做了保留,汉字命令去除了/若使用者担心错误触发,可下载源码自行修改__init__.py
  • 群词云功能所用库 wordcloud 未写入依赖,请自行安装:pip install wordcloud 安装失败参考:WordCloud 第三方库安装失败原因及解决方法
  • 一般情况下可正常使用,可能由于权重出现问题,matcher权重请自行查看代码
  • 使用开关状态指令查看各功能状态,首次使用可能会下载100Mb+的Chromium,请耐心等待
【初始化】:
  群管初始化 :初始化插件

【群管】:
权限:permission=SUPERUSER | GROUP_ADMIN | GROUP_OWNER
  禁言:
    禁 @某人 时间(s)[1,2591999]
    禁 时间(s)@某人 [1,2591999]
    禁 @某人 缺省时间则随机
    禁 @某人 0 可解禁
    解 @某人
    禁言时,该条消息中所有数字都会组合作为禁言时间,如:‘禁@某人 1哈2哈0哈’,则禁言120s
    
  全群禁言 若命令前缀不为空,请使用//all,若为空,需用 /all 来触发
    /all 
    /all 解
    
  改名片
    改 @某人 名片
    
  踢出:
    踢 @某人
  踢出并拉黑:
   黑 @某人
   
  撤回:
   撤回 (回复某条消息即可撤回对应消息)
   撤回 @user [(可选,默认n=5)历史消息倍数n] (实际检查的历史数为 n*19)
   
  设置精华
    回复某条消息 + 加精
  取消精华
    回复某条消息 + 取消精华
    
【头衔】
  改头衔
    自助领取:头衔 xxx 
    自助删头衔:删头衔
    超级用户更改他人头衔:头衔 @某人 头衔
    超级用户删他人头衔:删头衔 @某人

【管理员】permission=SUPERUSER | GROUP_OWNER
  管理员+ @xxx 设置某人为管理员
  管理员- @xxx 取消某人管理员
  
【加群自动审批】:
群内发送 permission=GROUP_ADMIN | GROUP_OWNER | SUPERUSER
  查看词条 : 查看本群审批词条   或/审批
  词条+ [词条] :增加审批词条 或/审批+
  词条- [词条] :删除审批词条 或/审批-

【superuser】:
  所有词条 :  查看所有审批词条   或/su审批
  指定词条+ [群号] [词条] :增加指定群审批词条 或/su审批+
  指定词条- [群号] [词条] :删除指定群审批词条 或/su审批-
  自动审批处理结果将发送给superuser

【分群管理员设置】*分管:可以接受加群处理结果消息的用户
群内发送 permission=GROUP_ADMIN | GROUP_OWNER | SUPERUSER
  分管+ [user] :user可用@或qq 添加分群管理员
  分管- [user] :删除分群管理员
  查看分管 :查看本群分群管理员

群内或私聊 permission=SUPERUSER
  所有分管 :查看所有分群管理员
  群管接收 :打开或关闭超管消息接收(关闭则审批结果不会发送给superusers)
  
【群词云统计】
该功能所用库 wordcloud 未写入依赖,请自行安装
群内发送:
  记录本群 : 开始统计聊天记录 permission=GROUP_ADMIN | GROUP_OWNER | SUPERUSER
  停止记录本群 :停止统计聊天记录
  群词云 : 发送词云图片
  更新mask : 更新mask图片
  增加停用词 停用词1 停用词2 ...
  删除停用词 停用词1 停用词2 ...
  停用词列表 : 查看停用词列表

群发言排行
 - 日:
  - 日榜首:今日榜首, aliases={'今天谁话多', '今儿谁话多', '今天谁屁话最多'}
  - 日排行:今日发言排行, aliases={'今日排行榜', '今日发言排行榜', '今日排行'}
  - 昨日排行
 - 总
  - 总排行:排行, aliases={'谁话多', '谁屁话最多', '排行', '排行榜'}
 - 某人发言数
  - 日:今日发言数@xxx, aliases={'今日发言数', '今日发言', '今日发言量'}
  - 总:发言数@xxx, aliases={'发言数', '发言', '发言量'}
    
  
【被动识别】
涩图检测:
 - 图片检测偏向于涩图检测,90分以上色图禁言,其他基本不处理
 - 用户违禁一次等级+1 最高7级
 - 禁言时间(s):
  - time_scop_map = {
        0: [0, 5*60],
        1: [5*60, 10*60],
        2: [10*60, 30*60],
        3: [30*60, 10*60*60],
        4: [10*60*60, 24*60*60],
        5: [24*60*60, 7*24*60*60],
        6: [7*24*60*60, 14*24*60*60],
        7: [14*24*60*60, 2591999]
    }

违禁词检测:
 - 支持正则表达式(使用用制表符分隔)
 - 可定义触发违禁词操作(默认为禁言+撤回)
 - 可定义生效范围(排除某些群 or 仅限某些群生效)
 - 示例:
  - 加(群|君\S?羊|羣)\S*\d{6,}		$撤回$禁言$仅限123456789,987654321
  - 狗群主				$禁言$排除987654321

【功能开关】
群内发送:
  开关xx : 对某功能进行开/关  permission=SUPERUSER | GROUP_ADMIN | GROUP_OWNER
  开关状态 : 查看各功能的状态
  xx in :
    ['管理', '踢', '禁', '改', '基础群管']  #基础功能 踢、禁、改、管理员+-
    ['加群', '审批', '加群审批', '自动审批'] #加群审批
    ['词云', '群词云', 'wordcloud'] #群词云
    ['违禁词', '违禁词检测'] #违禁词检测
    ['图片检测', '图片鉴黄', '涩图检测', '色图检测'] #图片检测
    ['消息记录', '群消息记录', '发言记录'],
    ['早安晚安', '早安', '晚安'],
    ['广播消息', '群广播', '广播'],
    ['事件通知', '变动通知', '事件提醒'],
     ['防撤回', '防止撤回']
图片检测和违禁词检测默认关,其他默认开

【广播】permission = SUPERUSER
本功能默认关闭
   "发送【广播】/【广播+[消息]】可广播消息" 
   "发送【群列表】可查看能广播到的所有群" 
   "发送【排除列表】可查看已排除的群" 
   "发送【广播排除+】可添加群到广播排除列表" 
   "发送【广播排除-】可从广播排除列表删除群"
   "发送【广播帮助】可查看广播帮助"
   发送【开关广播】来开启/关闭(意义不大)
   
【特殊事件提醒】
包括管理员变动,加群退群等...
待完善
  发送【开关事件通知】来开启/关闭功能 permission=SUPERUSER | GROUP_ADMIN | GROUP_OWNER


【防撤回】
默认关闭
 发送【开关防撤回】开启或关闭功能 permission=SUPERUSER | GROUP_ADMIN | GROUP_OWNER

【群员清理】
群内发送 permission=SUPERUSER | GROUP_OWNER
该功能暂不被开关控制
发送【群员清理】可根据[等级] 或 [发言时间] 清理群员
在执行此命令时,当前群会对此操作加锁,防止其他人同时操作,如果出现问题,可执行【清理解锁】来手动解锁

截图🖼

禁 改 踢

管理员+ -

群词云

违禁词检测

图片检测

功能开关

TODO

  • 加群自动审批#issues1
  • /sp在未配置群聊中的提示
  • /删头衔bug修复
  • 加群处理状态分群分用户发送#issues2
  • 关键词禁言,图片鉴黄(简单实现),#issues3
  • 恶意检测, #issues3
  • 鉴黄置信度呈现
  • 头衔命令所有人可用,删头衔命令加权限
  • 修复加群审批默认处理规则
  • 词云停用词优化
  • 分群群词云自定义停用词
  • 违禁词优化
  • 全局开关
  • 潜水查询
  • 群聊内容分析
  • 写一个文档
  • 一些大事

感谢贡献者们

balconyjh
BalconyJH
lakwsh
Lakwsh
yzyyz1387
幼稚园园长
tom-snow
A Lucky Guy
GC-ZF
GC_XiaoZhang
deepsourcebot
DeepSource Bot

更新日志

  • 0.3.21

    • 优化默认配置;同时增加一个配置项:设置禁言等基础操作是否在 qq 返回操作结果 #18
    • 修复禁@xxx的buggi
  • 0.3.19

    • 修复__init__.py中的bug🐛 PULL#17 @tom-snow
    • 优化禁@xxx,改善灵活性 #15
    • switcher.py网页截图错误捕捉
    • 修改cdn地址
    • 修聊天记录编码问题
    • 改善违禁词检测功能的灵活性@lakwsh
      • 违禁词检测:已支持正则表达式,可定义触发违禁词操作(默认为禁言+撤回)
      • 定义操作方法:用制表符分隔,左边为触发条件,右边为操作定义($禁言、$撤回)
  • 修复触发违禁词不会阻止事件传播的问题@lakwsh

  • 修复可能会导致其他插件无法捕获消息的问题@lakwsh

  • 修复部分文件编码错误,开关状态图片乱码及SIGINT信号被劫持的问题@lakwsh

  • 0.3.18(beta)

    • update LICENSE to AGPL-3.0
    • 🐛修复管理员-无效的bug
    • 🐛修复简单违禁词严格违禁词无效的bug
    • 🐛修复禁 解 改等指令有无空格的问题
    • 禁言命令新增不禁言superuser
    • 鉴黄api改为腾讯云,请自行开通配置
    • 违禁词词库每周一自动更新,手动更新:更新违禁词库
    • 分群功能开关
    • 使用开关状态指令查看各功能状态,首次使用可能会下载109Mb的Chromium
  • 0.3.16(b1)

    • 修复启动时word_analyze报错
    • 修复词云路径错误
    • 分词优化
    • 图片鉴黄
    • 违禁词检测 违禁词词库整理上传于:f_words
    • 词库有赘余,欢迎大神pr精简
  • 0.3.15(a16)

    • 同 0.3.16
  • 0.3.6(b1)

    • 修复适配错误
    • 补充依赖
  • 0.3.5(a16)

    • 补充依赖(谁教教我项目管理..
  • 0.3.4 (b1)

  • 0.3.3(a16)

    • 修复导入错误
    • 修复路径错误
  • 0.2.8 (nonebot b1适配)

    • b1适配,功能同0.2.7
  • 0.2.7 (nonebot a16适配)

    • 对应adapter加入依赖
    • 优化代码结构
    • 增加群词云功能
      • 更新后请执行群管初始化(不影响已保存的配置)
      • 机器人提示成功后开始记录本群所有文本内容
      • 发送群词云使用此功能
    • 修复禁@xxx 60 这类命令失效的bug
  • 0.2.6 (nonebot a16适配)

  • 0.2.5 (nonebot b1适配)

    • 代码优化
    • 踢禁改等命令增加权限:机器人主人,群主,群管理员 permission=SUPERUSER|GROUP_ADMIN | GROUP_OWNER
    • 增加添加/删除管理员操作,命令:管理员+@xxx 管理员-@xxx
    • 修复 禁言多人而不带具体时间时只禁言第一位的bug🐛
  • 0.2.4 (nonebot b1适配)

    • 同0.2.3
  • 0.2.3 (nonebot a16适配)

    • 代码优化
    • 命令去除 /
    • 摒弃英文命令,改为汉字命令
  • 0.2.2 (适配 nonebot b1) issue#2

    • 更新后请初始化:/spinit

    • 修复未配置时/sp,命令出现错误

    • 修复/删头衔的bug

    • 增加分群管理,加群请求处理结果将发送给分群管理

    • 加群处理结果消息对 superuser 可开启或关闭: /sumsg

  • 0.2.1

    • 修复requiers
  • 0.1.9

    • 修复初始化功能
  • 0.1.0 issue#1

  • 支持入群自动审批

  • 支持在线对不同群的关键词进行增减操作

  • 0.0.1-4

    • 支持 踢 、禁 、改 、头衔

其他插件

简易群管
在线运行代码
it咨讯(垃圾插件)
工作性价比(还没更新beta不能用)
黑丝插件(jsdelivr问题国内服务器不能用)

nonebot_plugin_admin's People

Contributors

deepsource-autofix[bot] avatar deepsourcebot avatar github-actions[bot] avatar lakwsh avatar redmomn avatar tom-snow avatar yzyyz1387 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

nonebot_plugin_admin's Issues

功能改进建议

关键词检测方面感觉可以有以下改进:

  1. 可以设置是否自动撤回、禁言操作(例如只撤回不禁言之类)
  2. 支持正则匹配关键词(这个实现起来相对简单,用re.search即可)
  3. 支持把操作写道关键词文件里(用一个tab分割,前半部分是匹配规则,后半部分是匹配成功要做的操作如禁言多久、撤回等)

因为是功能性的建议我也不太好自己动手(绝对不是因为我懒XD)

无法适配rc1

描述 bug
救命啊,插件出现了版本 问题

如何复现

  1. 我通过nb方式安装并导入了插件
  2. 在 启动时候 正常 情况下,出现了 无法加装 问题

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

环境

  • 操作系统 win10
  • Python 版本 3.9.13
  • Nonebot2 版本号 rc1
  • 在那里下载的本插件
  • github ( 说明分支 )main

其他内容
...

功能建议📋

描述对应的功能内容:

  • 希望增加关键词匹配自动禁言,关键词由群主/群管理员/超级用户添加分群/全局关键词
  • 希望增加检测用户发出图片特征,控制非法图片的存留时间,接入第三方鉴黄api,进行二维码检测,通过识别后进行撤回并做出惩罚,惩罚依据时间戳或次数加以区分
  • 希望增加对bot的恶意度检测,艾特bot进行辱骂或其余过激行为接入第二条所构建的惩罚系统

说出你的解决建议:
关键词模糊匹配,图片检测可以接入腾讯过其它第三方开放平台,惩罚系统区分为警告/禁言/bot拉黑/踢出群聊等更为非人性化措施,恶意度仅对艾特bot或者私聊做出判断,连续多次高强度触发bot亦应提升相应恶意度,已避免刷屏行为,图片撤回可选结果发送群主/群管理

其他内容:
十分感谢此项目的建立与编写,对作者的付出表示尊敬,综上。

自动禁言在关闭状态下还是会运行

描述 bug
救命啊,插件出现了自动禁言在关闭状态下还是会运行 问题

如何复现

  1. 我通过 nb 方式安装并导入了插件
  2. 在 触发违禁词 时候 关闭 情况下,出现了 禁言 问题

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

环境

  • 操作系统
  • Python 版本 3,9,13
  • Nonebot2 版本号 rc1
  • 在那里下载的本插件 nonebot商店
    • pypi (商店安装 或者 pip 安装(本质一样))
    • github ( 说明分支 ) main

其他内容
...

插件奇怪的报错

`12-05 17:10:39 [ERROR] nonebot | Failed to import "nonebot_plugin_admin"
Traceback (most recent call last):
File "/usr/local/bin/nb", line 8, in
sys.exit(main())
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1130, in call
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/nb_cli/commands/main.py", line 30, in run
run_bot(file, app)
File "/usr/local/lib/python3.8/dist-packages/nb_cli/handlers/deploy.py", line 20, in run_bot
module = importlib.import_module(module_name)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/root/MirrorEdge/./bot.py", line 26, in
nonebot.load_from_toml("pyproject.toml")
File "/usr/local/lib/python3.8/dist-packages/nonebot/plugin/load.py", line 122, in load_from_toml
return load_all_plugins(plugins, plugin_dirs)
File "/usr/local/lib/python3.8/dist-packages/nonebot/plugin/load.py", line 59, in load_all_plugins
return manager.load_all_plugins()
File "/usr/local/lib/python3.8/dist-packages/nonebot/plugin/manager.py", line 168, in load_all_plugins
return set(
File "/usr/local/lib/python3.8/dist-packages/nonebot/plugin/manager.py", line 169, in
filter(None, (self.load_plugin(name) for name in self.available_plugins))

File "/usr/local/lib/python3.8/dist-packages/nonebot/plugin/manager.py", line 141, in load_plugin
module = importlib.import_module(name)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "/usr/local/lib/python3.8/dist-packages/nonebot/plugin/manager.py", line 233, in exec_module
super().exec_module(module)
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/usr/local/lib/python3.8/dist-packages/nonebot_plugin_admin/init.py", line 22, in
from . import (
File "/usr/local/lib/python3.8/dist-packages/nonebot_plugin_admin/approve.py", line 14, in
from .utils import load
File "/usr/local/lib/python3.8/dist-packages/nonebot_plugin_admin/utils.py", line 38, in
def At(data: str) -> Union[list[str], list[int], list]:
TypeError: 'type' object is not subscriptable
12-05 17:10:41 [SUCCESS] nonebot | Succeeded to import "nonebot_plugin_status"
12-05 17:10:41 [SUCCESS] nonebot | Succeeded to import "nonebot_plugin_repeater"
12-05 17:10:41 [SUCCESS] nonebot | Running NoneBot...
12-05 17:10:41 [INFO] uvicorn | Started server process [13571]
12-05 17:10:41 [INFO] uvicorn | Waiting for application startup.
12-05 17:10:41 [INFO] uvicorn | Application startup complete.
12-05 17:10:41 [INFO] uvicorn | Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)
12-05 17:10:43 [INFO] uvicorn | ('127.0.0.1', 62692) - "WebSocket /onebot/v11/ws" [accepted]
12-05 17:10:43 [INFO] nonebot | OneBot V11 | Bot xxxxxxxxx connected
12-05 17:10:43 [INFO] websockets | connection open
12-05 17:10:43 [ERROR] nonebot | Error when running WebSocketConnection hook. Running cancelled!
Traceback (most recent call last):
File "/usr/local/bin/nb", line 8, in
sys.exit(main())
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1130, in call
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/nb_cli/commands/main.py", line 30, in run
run_bot(file, app)
File "/usr/local/lib/python3.8/dist-packages/nb_cli/handlers/deploy.py", line 25, in run_bot
nonebot.run(app=f"{module_name}:{app}")
File "/usr/local/lib/python3.8/dist-packages/nonebot/init.py", line 273, in run
get_driver().run(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/nonebot/drivers/fastapi.py", line 172, in run
uvicorn.run(
File "/usr/local/lib/python3.8/dist-packages/uvicorn/main.py", line 569, in run
server.run()
File "/usr/local/lib/python3.8/dist-packages/uvicorn/server.py", line 60, in run
return asyncio.run(self.serve(sockets=sockets))
File "/usr/lib/python3.8/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/local/lib/python3.8/dist-packages/nonebot/internal/driver/driver.py", line 146, in _run_hook
await asyncio.gather(*coros)
File "/usr/local/lib/python3.8/dist-packages/nonebot/utils.py", line 157, in run_coro_with_catch
return await coro
File "/usr/local/lib/python3.8/dist-packages/nonebot/dependencies/init.py", line 108, in call
return await cast(Callable[..., Awaitable[R]], self.call)(**values)
File "/usr/local/lib/python3.8/dist-packages/nonebot_plugin_admin/config.py", line 22, in _
await utils.init()
AttributeError: module 'nonebot_plugin_admin.utils' has no attribute 'init'
`
系统:Ubuntu 20.04
基于go-cqhttp搭建的nonebot正常使用

插件导入报错

from nonebot.adapters.onebot.exception import ActionFailed
ModuleNotFoundError: No module named 'nonebot.adapters.onebot.exception'

nonebot-adapter-onebot已经安装过,
是不是跟我py版本3.8+有关系(还有机会适配py3.8+么)

严格违禁词报错

image
开启严格违禁词后报错
插件加载成功
但是每一条消息都有这个问题

功能建议:对引用的消息进行撤回

建议增加 /撤回 指令,对想要撤回的消息进行回复并使用 /撤回 指令,

用法示例:

[回复引用的消息]
/撤回

通过[CQ:reply,id=xxxxxx]中的id对引用消息进行撤回。

更进一步的功能:对撤回的内容进行保存,以保留证据。或发截图抄送管理?

[BUG]无法初始化读取群号失败

描述 bug
无法初始化

如何复现

  1. 我通过文件夹载入方式安装并导入了插件
  2. 在 今天时候 启动情况下,出现了 无法初始化问题

报错截图 (python的报错请截最下面)

12-13 02:14:56 [ERROR] nonebot | Failed to import "nonebot_plugin_admin"
Traceback (most recent call last):
  File "D:\NoneBot2\homura\bot.py", line 27, in <module>
    nonebot.load_from_toml("pyproject.toml")
  File "D:\conda_data\envs\Python3.8.15\lib\site-packages\nonebot\plugin\load.py", line 122, in load_from_toml
    return load_all_plugins(plugins, plugin_dirs)
  File "D:\conda_data\envs\Python3.8.15\lib\site-packages\nonebot\plugin\load.py", line 59, in load_all_plugins
    return manager.load_all_plugins()
  File "D:\conda_data\envs\Python3.8.15\lib\site-packages\nonebot\plugin\manager.py", line 168, in load_all_plugins
    return set(
  File "D:\conda_data\envs\Python3.8.15\lib\site-packages\nonebot\plugin\manager.py", line 169, in <genexpr>
    filter(None, (self.load_plugin(name) for name in self.available_plugins))
> File "D:\conda_data\envs\Python3.8.15\lib\site-packages\nonebot\plugin\manager.py", line 145, in load_plugin
    module = importlib.import_module(
  File "D:\conda_data\envs\Python3.8.15\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "D:\conda_data\envs\Python3.8.15\lib\site-packages\nonebot\plugin\manager.py", line 233, in exec_module
    super().exec_module(module)
  File "<frozen importlib._bootstrap_external>", line 843, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "D:\NoneBot2\homura\src\plugins\nonebot_plugin_admin\__init__.py", line 22, in <module>
    from . import (
  File "D:\NoneBot2\homura\src\plugins\nonebot_plugin_admin\approve.py", line 14, in <module>
    from .utils import load
  File "D:\NoneBot2\homura\src\plugins\nonebot_plugin_admin\utils.py", line 38, in <module>
    def At(data: str) -> Union[list[str], list[int], list]:
TypeError: 'type' object is not subscriptable

12-13 02:09:05 [ERROR] nonebot | Error when running WebSocketConnection hook. Running cancelled!
Traceback (most recent call last):
  File "D:\NoneBot2\homura\bot.py", line 37, in <module>
    nonebot.run(app="__mp_main__:app")
  File "D:\conda_data\envs\Python3.8.15\lib\site-packages\nonebot\__init__.py", line 273, in run
    get_driver().run(*args, **kwargs)
  File "D:\conda_data\envs\Python3.8.15\lib\site-packages\nonebot\drivers\fastapi.py", line 172, in run
    uvicorn.run(
  File "D:\conda_data\envs\Python3.8.15\lib\site-packages\uvicorn\main.py", line 576, in run
    server.run()
  File "D:\conda_data\envs\Python3.8.15\lib\site-packages\uvicorn\server.py", line 60, in run
    return asyncio.run(self.serve(sockets=sockets))
  File "D:\conda_data\envs\Python3.8.15\lib\asyncio\runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "D:\conda_data\envs\Python3.8.15\lib\asyncio\base_events.py", line 603, in run_until_complete
    self.run_forever()
  File "D:\conda_data\envs\Python3.8.15\lib\asyncio\windows_events.py", line 316, in run_forever
    super().run_forever()
  File "D:\conda_data\envs\Python3.8.15\lib\asyncio\base_events.py", line 570, in run_forever
    self._run_once()
  File "D:\conda_data\envs\Python3.8.15\lib\asyncio\base_events.py", line 1859, in _run_once
    handle._run()
  File "D:\conda_data\envs\Python3.8.15\lib\asyncio\events.py", line 81, in _run
    self._context.run(self._callback, *self._args)
> File "D:\conda_data\envs\Python3.8.15\lib\site-packages\nonebot\internal\driver\driver.py", line 146, in _run_hook
    await asyncio.gather(*coros)
  File "D:\conda_data\envs\Python3.8.15\lib\site-packages\nonebot\utils.py", line 157, in run_coro_with_catch
    return await coro
  File "D:\conda_data\envs\Python3.8.15\lib\site-packages\nonebot\dependencies\__init__.py", line 108, in __call__
    return await cast(Callable[..., Awaitable[R]], self.call)(**values)
  File "D:\NoneBot2\homura\src\plugins\nonebot_plugin_admin\config.py", line 22, in _
    await utils.init()
AttributeError: module 'src.plugins.nonebot_plugin_admin.utils' has no attribute 'init'

环境

  • windows 11
  • Python 版本 略
  • Nonebot2 版本号 2.0.0r2
  • 在那里下载的本插件
    • github ( 基线 )

其他内容
...

[BUG] 插件运行过程中邀请机器人加入群聊报错

大概是开关未初始化之类吧

03-17 18:18:53 [INFO] nonebot | Matcher <Matcher from plugins.nonebot_plugin_admin.group_request, type=request, priority=1, temp=False> running complete
03-17 18:18:53 [ERROR] nonebot | Running matcher <Matcher from plugins.nonebot_plugin_admin.group_request, type=request, priority=1, temp=False> failed.
Traceback (most recent call last):
File "D:\QQBot\NoneBot\bot.py", line 12, in
nonebot.run()
File "D:\Python39\lib\site-packages\nonebot_init_.py", line 258, in run
get_driver().run(*args, **kwargs)
File "D:\Python39\lib\site-packages\nonebot\drivers\fastapi.py", line 168, in run
uvicorn.run(
File "D:\Python39\lib\site-packages\uvicorn\main.py", line 463, in run
server.run()
File "D:\Python39\lib\site-packages\uvicorn\server.py", line 60, in run
return asyncio.run(self.serve(sockets=sockets))
File "D:\Python39\lib\asyncio\runners.py", line 44, in run
return loop.run_until_complete(main)
File "D:\Python39\lib\asyncio\base_events.py", line 629, in run_until_complete
self.run_forever()
File "D:\Python39\lib\asyncio\windows_events.py", line 321, in run_forever
super().run_forever()
File "D:\Python39\lib\asyncio\base_events.py", line 596, in run_forever
self._run_once()
File "D:\Python39\lib\asyncio\base_events.py", line 1890, in _run_once
handle._run()
File "D:\Python39\lib\asyncio\events.py", line 80, in _run
self._context.run(self._callback, *self._args)
File "D:\Python39\lib\site-packages\nonebot\message.py", line 153, in _check_matcher
await run_matcher(Matcher, bot, event, state, stack, dependency_cache)
File "D:\Python39\lib\site-packages\nonebot\message.py", line 202, in run_matcher
await matcher.run(bot, event, state, stack, dependency_cache)
File "D:\Python39\lib\site-packages\nonebot\internal\matcher.py", line 668, in run
await self.simple_run(bot, event, state, stack, dependency_cache)
File "D:\Python39\lib\site-packages\nonebot\internal\matcher.py", line 635, in simple_run
await handler(
File "D:\Python39\lib\site-packages\nonebot\dependencies_init
.py", line 92, in call
return await self.call(**values)
File "D:\QQBot\NoneBot\plugins\nonebot_plugin_admin\group_request.py", line 163, in gr

status = await check_func_status("requests", str(gid))
File "D:\QQBot\NoneBot\plugins\nonebot_plugin_admin\utils.py", line 373, in check_func_status
if funcs_status[gid][func_name]:
KeyError: '群号'

无法导入插件

10-04 09:07:35 [ERROR] nonebot | Failed to import "nonebot_plugin_admin"
Traceback (most recent call last):
File "", line 1, in
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\multiprocessing\spawn.py", line 116, in spawn_main
exitcode = _main(fd, parent_sentinel)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\multiprocessing\spawn.py", line 129, in _main
return self._bootstrap(parent_sentinel)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\multiprocessing\process.py", line 314, in _bootstrap
self.run()
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\multiprocessing\process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\uvicorn_subprocess.py", line 76, in subprocess_started
target(sockets=sockets)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\uvicorn\server.py", line 60, in run
return asyncio.run(self.serve(sockets=sockets))
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\asyncio\runners.py", line 44, in run
return loop.run_until_complete(main)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 633, in run_until_complete
self.run_forever()
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 600, in run_forever
self._run_once()
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 1896, in _run_once
handle._run()
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\asyncio\events.py", line 80, in _run
self._context.run(self._callback, *self.args)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\uvicorn\server.py", line 67, in serve
config.load()
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\uvicorn\config.py", line 479, in load
self.loaded_app = import_from_string(self.app)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\uvicorn\importer.py", line 21, in import_from_string
module = importlib.import_module(module_str)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\importlib_init
.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1050, in _gcd_import
File "", line 1027, in _find_and_load
File "", line 1006, in _find_and_load_unlocked
File "", line 688, in _load_unlocked
File "", line 883, in exec_module
File "", line 241, in _call_with_frames_removed
File "C:\Users\Administrator\Desktop\Files\bot\mcqq\mcqq_bot.\bot.py", line 27, in
nonebot.load_plugin("nonebot_plugin_admin")
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\nonebot\plugin\load.py", line 34, in load_plugin
return manager.load_plugin(module_path)

File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\nonebot\plugin\manager.py", line 141, in load_plugin
module = importlib.import_module(name)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\importlib_init_.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1050, in _gcd_import
File "", line 1027, in _find_and_load
File "", line 1006, in _find_and_load_unlocked
File "", line 688, in _load_unlocked
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\nonebot\plugin\manager.py", line 233, in exec_module
super().exec_module(module)
File "", line 883, in exec_module
File "", line 241, in call_with_frames_removed
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\nonebot_plugin_admin_init
.py", line 17, in
from . import approve, group_request_verify, group_request, notice, utils, word_analyze, r18_pic_ban, auto_ban, switcher
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\nonebot_plugin_admin\group_request.py", line 14, in
from nonebot.params import State
ImportError: cannot import name 'State' from 'nonebot.params' (C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\nonebot\params.py)

无法正常退出NoneBot?

这个插件好像会导致一个问题,在控制台按Ctrl+C会没有反应,但是NoneBot运作正常
系统:Window Server 2022

功能建议

描述对应的功能内容:

希望增加关键词匹配快速匹配通过加入群聊

说出你的解决建议:

判断权限为superuser&group_admin&group_owner,写入json或sql,matcher捕获入群comment(验证信息)进行模糊匹配,成功同意请求,失败则返回相应理由。

描述你想实现的内容:

  1. 权限判断仅限superuser&group_admin&group_owner
  2. 加群请求无论结果均发送给该群聊指定admin或特定user(多群聊)
  3. 匹配词进行模糊匹配,提供参数指定匹配词匹配数量
  4. superuser私聊bot修改指定群聊匹配词

其他内容:

十分感谢此项目的建立与编写,对作者的付出表示尊敬,综上。

开关错误捕捉

捕捉到开关网页截图错误后增加log输出
更改switcher.html css的csn地址

[BUG]群词云报错

描述 bug
救命啊,插件出现了群词云报错问题

如何复现

  1. 我通过nb方式安装并导入了插件
  2. 在 正常 时候 正常运行 情况下,出现了 群云词报错 问题

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

环境

  • 操作系统 win10
  • Python 版本 3.9.13
  • Nonebot2 版本号 不知道
  • 在那里下载的本插件 nonebot商店
  • pypi (商店安装 或者 pip 安装(本质一样))
  • github ( 说明分支 )

其他内容
...

功能建议

对于自动加群审批,有没有可能实现下面这种。
例如对于群聊问题“写出三个考段音游”, 添加了四个相关词条,可不可以做到匹配到四个词条中的三个就自动同意,如果写出三个以下就自动拒绝或者不处理。(可以让群主/群管理员指定匹配数量)

关于图片检测

目前是仅支持检测拦截色图吗,我看腾讯云那边有拦截政治性感方面的,但bot这边没有对应禁言撤回操作,
如果是仅支持拦截色图的话,希望增加拦截政治 性感 违法 暴恐 相关的,
还有就是能否自定义禁言等级,触发关键词默认为1级起步禁言,但触发色图 敏感方面的直接默认3级起步禁言

之前正常,发送更新违禁词 re.error: multiple repeat at position 2

你好, 请问 手动更新违禁词之前正常,发送更新违禁词 re.error: multiple repeat at position 2 之后所有指令都有这个提醒 谢谢

07-25 18:46:48 [ERROR] nonebot | Running matcher <Matcher from nonebot_plugin_admin.auto_ban, type=message, priority=0, temp=False> failed.
Traceback (most recent call last):
File "/usr/local/bin/nb", line 8, in
sys.exit(main())
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1130, in call
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/nb_cli/commands/main.py", line 30, in run
run_bot(file, app)
File "/usr/local/lib/python3.8/dist-packages/nb_cli/handlers/deploy.py", line 25, in run_bot
nonebot.run(app=f"{module_name}:{app}")
File "/usr/local/lib/python3.8/dist-packages/nonebot/init.py", line 261, in run
get_driver().run(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/nonebot/drivers/fastapi.py", line 170, in run
uvicorn.run(
File "/usr/local/lib/python3.8/dist-packages/uvicorn/main.py", line 463, in run
server.run()
File "/usr/local/lib/python3.8/dist-packages/uvicorn/server.py", line 60, in run
return asyncio.run(self.serve(sockets=sockets))
File "/usr/lib/python3.8/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/local/lib/python3.8/dist-packages/nonebot/message.py", line 146, in _check_matcher
await _run_matcher(Matcher, bot, event, state, stack, dependency_cache)

File "/usr/local/lib/python3.8/dist-packages/nonebot/message.py", line 196, in _run_matcher
await matcher.run(bot, event, state, stack, dependency_cache)
File "/usr/local/lib/python3.8/dist-packages/nonebot/internal/matcher.py", line 668, in run
await self.simple_run(bot, event, state, stack, dependency_cache)
File "/usr/local/lib/python3.8/dist-packages/nonebot/internal/matcher.py", line 635, in simple_run
await handler(
File "/usr/local/lib/python3.8/dist-packages/nonebot/dependencies/init.py", line 92, in call
return await self.call(**values)
File "/usr/local/lib/python3.8/dist-packages/nonebot_plugin_admin/auto_ban.py", line 50, in _
if rule[0] and re.search(rule[0], msg):
File "/usr/lib/python3.8/re.py", line 201, in search
return _compile(pattern, flags).search(string)
File "/usr/lib/python3.8/re.py", line 304, in _compile
p = sre_compile.compile(pattern, flags)
File "/usr/lib/python3.8/sre_compile.py", line 764, in compile
p = sre_parse.parse(p, flags)
File "/usr/lib/python3.8/sre_parse.py", line 948, in parse
p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
File "/usr/lib/python3.8/sre_parse.py", line 443, in _parse_sub
itemsappend(_parse(source, state, verbose, nested + 1,
File "/usr/lib/python3.8/sre_parse.py", line 671, in _parse
raise source.error("multiple repeat",
re.error: multiple repeat at position 2

nonebot2(bate4)版本下貌似无法使用

通过修改各文件下的
from nonebot.adapters.onebot.v11.exception import ActionFailed
改为
from nonebot.adapters.onebot.exception import ActionFailed
能够正常运行,但不知是否会产生其他错误

[BUG]无法使用任何群管功能,能启用的只有开关状态

描述 bug
无法使用任何群管功能,能启用的只有开关状态

如何复现
每次监测说一句话就弹一个报错,下面那个数字每次都不一样
报错截图 (python的报错请截最下面)
这里放截图,可使用任何截图工具截图,然后在这里按下 ** Ctrl + V **
image

环境

  • 操作系统 utunbu20.04
  • Python 版本 3.9.15
  • Nonebot2 版本号2.0.0b5
  • 在那里下载的本插件 nb商店
  • pypi (商店安装 或者 pip 安装(本质一样))pip
  • github ( 说明分支 ) main

其他内容
...

新手安装,遇到了亿点问题awa(高血压提醒)

请问本插件是否支持绪山真寻bot(Nonebot2)?
请问pip应该如何安装?图一为尝试在机器人本体中安装,图二为尝试在nb插件中安装
QQ截图20220722145619
QQ截图20220722150537
导入时是否编写bot本体的bot.py文件?如果是,请问该编写在第几行?
image
image

催更

还不更新?你良心怎么过得去的!你这个年纪怎么睡得着的!?

消息拦截问题

block改成False或删除都无法解决消息被拦截问题 无法传给下一个插件

接收信息时报错

描述 bug
救命啊,插件出现了接收 信息报错 问题

如何复现

  1. 我通过nb方式安装并导入了插件
  2. 在 接收信息 时候 正常 情况下,出现了 报错 问题

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

环境

  • 操作系统 win10
  • Python 版本 3.9.13
  • Nonebot2 版本号 rc3
  • 在那里下载的本插件 nonebot商店
  • pypi (商店安装 或者 pip 安装(本质一样))
  • github ( 说明分支 ) main

其他内容
...

出现报错

08-25 10:50:33 [INFO] nonebot | Matcher <Matcher from src.plugins.nonebot_plugin_admin.auto_ban, type=message, priority=2, temp=False> running complete
08-25 10:50:33 [ERROR] nonebot | Running matcher <Matcher from src.plugins.nonebot_plugin_admin.auto_ban, type=message, priority=2, temp=False> failed.
Traceback (most recent call last):
File "/usr/local/bin/nb", line 8, in <module>
sys.exit(main())
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1130, in __call__
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/nb_cli/commands/main.py", line 30, in run
run_bot(file, app)
File "/usr/local/lib/python3.9/site-packages/nb_cli/handlers/deploy.py", line 25, in run_bot
nonebot.run(app=f"{module_name}:{app}")
File "/usr/local/lib/python3.9/site-packages/nonebot/__init__.py", line 261, in run
get_driver().run(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/nonebot/drivers/fastapi.py", line 170, in run
uvicorn.run(
File "/usr/local/lib/python3.9/site-packages/uvicorn/main.py", line 575, in run
server.run()
File "/usr/local/lib/python3.9/site-packages/uvicorn/server.py", line 60, in run
return asyncio.run(self.serve(sockets=sockets))
File "/usr/lib64/python3.9/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/local/lib/python3.9/site-packages/nonebot/message.py", line 146, in _check_matcher
await _run_matcher(Matcher, bot, event, state, stack, dependency_cache)
> File "/usr/local/lib/python3.9/site-packages/nonebot/message.py", line 196, in _run_matcher
await matcher.run(bot, event, state, stack, dependency_cache)
File "/usr/local/lib/python3.9/site-packages/nonebot/internal/matcher.py", line 672, in run
await self.simple_run(bot, event, state, stack, dependency_cache)
File "/usr/local/lib/python3.9/site-packages/nonebot/internal/matcher.py", line 639, in simple_run
await handler(
File "/usr/local/lib/python3.9/site-packages/nonebot/dependencies/__init__.py", line 92, in __call__
return await self.call(**values)
File "/opt/jamyidobot/./src/plugins/nonebot_plugin_admin/auto_ban.py", line 35, in _
if rule[0] and re.search(rule[0], msg): # TODO: 分群配置
File "/usr/lib64/python3.9/re.py", line 201, in search
return _compile(pattern, flags).search(string)
File "/usr/lib64/python3.9/re.py", line 304, in _compile
p = sre_compile.compile(pattern, flags)
File "/usr/lib64/python3.9/sre_compile.py", line 764, in compile
p = sre_parse.parse(p, flags)
File "/usr/lib64/python3.9/sre_parse.py", line 948, in parse
p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
File "/usr/lib64/python3.9/sre_parse.py", line 443, in _parse_sub
itemsappend(_parse(source, state, verbose, nested + 1,
File "/usr/lib64/python3.9/sre_parse.py", line 671, in _parse
raise source.error("multiple repeat",
re.error: multiple repeat at position 2

是我的问题还是插件的问题😅

功能开关失效,通过指令关闭功能后仍可执行

使用过程中发现关闭诸如违禁词、加群审批等功能后,该项功能仍正常运行,检查源码发现仅在__init__中导入switcher且判断status,其他功能(如违禁词)仅导入check_func_status函数而未使用,即无论开关状态如何,该功能均可运行
1
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.