Skip to content

Commit

Permalink
Merge pull request #139 from yzyyz1387/main-check
Browse files Browse the repository at this point in the history
✨ perf:  加群审批优化、指令优化、修复#135
  • Loading branch information
yzyyz1387 authored Jan 2, 2025
2 parents fbb96bf + 510f00d commit e6f4f22
Show file tree
Hide file tree
Showing 9 changed files with 200 additions and 47 deletions.
36 changes: 34 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,25 +131,56 @@ send_time_night = "23 0" # 选填 晚上发送时间默认为22:00
超级用户删他人头衔:删头衔 @某人
【管理员】permission=SUPERUSER | GROUP_OWNER
gl+ @xxx 设置某人为管理员
管理员+ @xxx 设置某人为管理员
管理员加 @xxx 设置某人为管理员
加管理 @xxx 设置某人为管理员
gl- @xxx 取消某人管理员
管理员- @xxx 取消某人管理员
管理员减 @xxx 取消某人管理员
减管理 @xxx 取消某人管理员
【加群自动审批】:
群内发送 permission=GROUP_ADMIN | GROUP_OWNER | SUPERUSER
查看词条 : 查看本群审批词条 或/审批
ct+ [词条] :增加审批词条 或/审批+
词条+ [词条] :增加审批词条 或/审批+
ct- [词条] :删除审批词条 或/审批-
词条- [词条] :删除审批词条 或/审批-
按照黑名单自动拒绝:(当验证消息与黑名单内容匹配时,自动拒绝)
添加示例:
jj+管理员你好,请通过一下
ctjj+管理员你好,请通过一下
词条拒绝+管理员你好,请通过一下
拒绝词条+管理员你好,请通过一下
/spx+管理员你好,请通过一下
删除示例:
jj-管理员你好,请通过一下
ctjj-管理员你好,请通过一下
词条拒绝-管理员你好,请通过一下
拒绝词条-管理员你好,请通过一下
/spx-管理员你好,请通过一下
【superuser】:
所有词条 : 查看所有审批词条 或/su审批
指定词条+ [群号] [词条] :增加指定群审批词条 或/su审批+
指定词条- [群号] [词条] :删除指定群审批词条 或/su审批-
zdct+ [词条] :增加审批词条
指定词条+ [群号] [词条] :增加指定群审批词条
指定词条加 [群号] [词条] :增加指定群审批词条 或/su审批+
zdct- [词条] :删除审批词条
指定词条- [群号] [词条] :删除指定群审批词条
指定词条减 [群号] [词条] :删除指定群审批词条 或/su审批-
自动审批处理结果将发送给superuser
【分群管理员设置】*分管:可以接受加群处理结果消息的用户
群内发送 permission=GROUP_ADMIN | GROUP_OWNER | SUPERUSER
fg+ [user] :user可用@或qq 添加分群管理员
分管+ [user] :user可用@或qq 添加分群管理员
分管加 [user] :user可用@或qq 添加分群管理员
fg- [user] :删除分群管理员
分管- [user] :删除分群管理员
分管减 [user] :删除分群管理员
查看分管 :查看本群分群管理员
群内或私聊 permission=SUPERUSER
Expand Down Expand Up @@ -196,6 +227,7 @@ send_time_night = "23 0" # 选填 晚上发送时间默认为22:00
}
违禁词检测:
(如果要使用正则匹配,暂时需要用户自定编辑【机器人项目/config/违禁词.txt】,后续会优化,有需要请提issue催更)
- 支持正则表达式(使用用制表符分隔)
- 可定义触发违禁词操作(默认为禁言+撤回)
- 可定义生效范围(排除某些群 or 仅限某些群生效)
Expand Down
95 changes: 64 additions & 31 deletions nonebot_plugin_admin/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,73 +46,104 @@ async def _(bot: nonebot.adapters.Bot):
群管初始化 :初始化插件
【群管】:
权限:permission = SUPERUSER | GROUP_ADMIN | GROUP_OWNER
权限:permission=SUPERUSER | GROUP_ADMIN | GROUP_OWNER
禁言:
禁 @某人 时间(s)[1,2591999]
禁 时间(s)@某人 [1,2591999]
禁 @某人 缺省时间则随机
禁 @某人 0 可解禁
解 @某人
禁言时,该条消息中所有数字都会组合作为禁言时间,如:‘禁@某人 1哈2哈0哈’,则禁言120s
全群禁言 若命令前缀不为空,请使用//all,若为空,需用 /all 来触发
/all
/all
/all 解
改名片
改 @某人 名片
踢出:
踢 @某人
踢出并拉黑:
黑 @某人
撤回:
撤回 (回复某条消息即可撤回对应消息)
撤回 @user [(可选,默认n=5)历史消息倍数n] (实际检查的历史数为 n*19)
设置精华
回复某条消息 + 加精
取消精华
回复某条消息 + 取消精华
【头衔】
改头衔
自助领取:头衔 xxx
自助领取:头衔 xxx
自助删头衔:删头衔
超级用户更改他人头衔:头衔 @某人 头衔
超级用户删他人头衔:删头衔 @某人
【管理员】permission = SUPERUSER | GROUP_OWNER
【管理员】permission=SUPERUSER | GROUP_OWNER
gl+ @xxx 设置某人为管理员
管理员+ @xxx 设置某人为管理员
管理员加 @xxx 设置某人为管理员
加管理 @xxx 设置某人为管理员
gl- @xxx 取消某人管理员
管理员- @xxx 取消某人管理员
管理员减 @xxx 取消某人管理员
减管理 @xxx 取消某人管理员
【加群自动审批】:
群内发送 permission = GROUP_ADMIN | GROUP_OWNER | SUPERUSER
群内发送 permission=GROUP_ADMIN | GROUP_OWNER | SUPERUSER
查看词条 : 查看本群审批词条 或/审批
ct+ [词条] :增加审批词条 或/审批+
词条+ [词条] :增加审批词条 或/审批+
ct- [词条] :删除审批词条 或/审批-
词条- [词条] :删除审批词条 或/审批-
按照黑名单自动拒绝:(当验证消息与黑名单内容匹配时,自动拒绝)
添加示例:
jj+管理员你好,请通过一下
ctjj+管理员你好,请通过一下
词条拒绝+管理员你好,请通过一下
拒绝词条+管理员你好,请通过一下
/spx+管理员你好,请通过一下
删除示例:
jj-管理员你好,请通过一下
ctjj-管理员你好,请通过一下
词条拒绝-管理员你好,请通过一下
拒绝词条-管理员你好,请通过一下
/spx-管理员你好,请通过一下
【superuser】:
所有词条 : 查看所有审批词条 或/su审批
指定词条+ [群号] [词条] :增加指定群审批词条 或/su审批+
指定词条- [群号] [词条] :删除指定群审批词条 或/su审批-
zdct+ [词条] :增加审批词条
指定词条+ [群号] [词条] :增加指定群审批词条
指定词条加 [群号] [词条] :增加指定群审批词条 或/su审批+
zdct- [词条] :删除审批词条
指定词条- [群号] [词条] :删除指定群审批词条
指定词条减 [群号] [词条] :删除指定群审批词条 或/su审批-
自动审批处理结果将发送给superuser
【分群管理员设置】*分管:可以接受加群处理结果消息的用户
群内发送 permission = GROUP_ADMIN | GROUP_OWNER | SUPERUSER
群内发送 permission=GROUP_ADMIN | GROUP_OWNER | SUPERUSER
fg+ [user] :user可用@或qq 添加分群管理员
分管+ [user] :user可用@或qq 添加分群管理员
分管加 [user] :user可用@或qq 添加分群管理员
fg- [user] :删除分群管理员
分管- [user] :删除分群管理员
分管减 [user] :删除分群管理员
查看分管 :查看本群分群管理员
群内或私聊 permission = SUPERUSER
群内或私聊 permission=SUPERUSER
所有分管 :查看所有分群管理员
群管接收 :打开或关闭超管消息接收(关闭则审批结果不会发送给superusers)
【群词云统计】
该功能所用库 wordcloud 未写入依赖,请自行安装
群内发送:
记录本群 : 开始统计聊天记录 permission = GROUP_ADMIN | GROUP_OWNER | SUPERUSER
记录本群 : 开始统计聊天记录 permission=GROUP_ADMIN | GROUP_OWNER | SUPERUSER
停止记录本群 :停止统计聊天记录
群词云 : 发送词云图片
更新mask : 更新mask图片
Expand All @@ -130,8 +161,8 @@ async def _(bot: nonebot.adapters.Bot):
- 某人发言数
- 日:今日发言数@xxx, aliases={'今日发言数', '今日发言', '今日发言量'}
- 总:发言数@xxx, aliases={'发言数', '发言', '发言量'}
【被动识别】
涩图检测:
- 图片检测偏向于涩图检测,90分以上色图禁言,其他基本不处理
Expand All @@ -149,16 +180,17 @@ async def _(bot: nonebot.adapters.Bot):
}
违禁词检测:
(如果要使用正则匹配,暂时需要用户自定编辑【机器人项目/config/违禁词.txt】,后续会优化,有需要请提issue催更)
- 支持正则表达式(使用用制表符分隔)
- 可定义触发违禁词操作(默认为禁言+撤回)
- 可定义生效范围(排除某些群 or 仅限某些群生效)
- 示例(使用TAB隔开)
- 加(群|君\\S?羊|羣)\\S*\\d{6,} $撤回$禁言$仅限123456789,987654321
- 狗群主 $禁言$排除987654321
- 示例:
- 加(群|君\S?羊|羣)\S*\d{6,} $撤回$禁言$仅限123456789,987654321
- 狗群主 $禁言$排除987654321
【功能开关】
群内发送:
开关xx : 对某功能进行开/关 permission = SUPERUSER | GROUP_ADMIN | GROUP_OWNER
开关xx : 对某功能进行开/关 permission=SUPERUSER | GROUP_ADMIN | GROUP_OWNER
开关状态 : 查看各功能的状态
xx in :
['管理', '踢', '禁', '改', '基础群管'] #基础功能 踢、禁、改、管理员+-
Expand All @@ -175,30 +207,31 @@ async def _(bot: nonebot.adapters.Bot):
【广播】permission = SUPERUSER
本功能默认关闭
"发送【广播】/【广播+[消息]】可广播消息"
"发送【群列表】可查看能广播到的所有群"
"发送【排除列表】可查看已排除的群"
"发送【广播排除+】可添加群到广播排除列表"
"发送【广播】/【广播+[消息]】可广播消息"
"发送【群列表】可查看能广播到的所有群"
"发送【排除列表】可查看已排除的群"
"发送【广播排除+】可添加群到广播排除列表"
"发送【广播排除-】可从广播排除列表删除群"
"发送【广播帮助】可查看广播帮助"
发送【开关广播】来开启/关闭(意义不大)
【特殊事件提醒】
包括管理员变动,加群退群等...
待完善
发送【开关事件通知】来开启/关闭功能 permission = SUPERUSER | GROUP_ADMIN | GROUP_OWNER
发送【开关事件通知】来开启/关闭功能 permission=SUPERUSER | GROUP_ADMIN | GROUP_OWNER
【防撤回】
默认关闭
发送【开关防撤回】开启或关闭功能 permission = SUPERUSER | GROUP_ADMIN | GROUP_OWNER
发送【开关防撤回】开启或关闭功能 permission=SUPERUSER | GROUP_ADMIN | GROUP_OWNER
【群员清理】
群内发送 permission = SUPERUSER | GROUP_ADMIN | GROUP_OWNER | DEPUTY_ADMIN
群内发送 permission=SUPERUSER | GROUP_OWNER
该功能暂不被开关控制
发送【群员清理】可根据[等级] 或 [发言时间] 清理群员
在执行此命令时,当前群会对此操作加锁,防止其他人同时操作,如果出现问题,可执行【清理解锁】来手动解锁
"""
__help_plugin_name__ = '简易群管'

Expand Down
4 changes: 2 additions & 2 deletions nonebot_plugin_admin/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ async def _(bot: Bot, matcher: Matcher, event: GroupMessageEvent, sb: list = Dep
except ActionFailed:
await fi(matcher, '权限不足')

set_g_admin = on_command('管理员+', priority=2, block=True, permission=SUPERUSER | GROUP_OWNER)
set_g_admin = on_command('管理员+', aliases={'加管理', '管理加', '加管理员', '管理员加', 'gl+', 'gly+'}, priority=2, block=True, permission=SUPERUSER | GROUP_OWNER)
@set_g_admin.handle()
async def _(bot: Bot, matcher: Matcher, event: GroupMessageEvent, sb: list = Depends(msg_at)):
"""
Expand All @@ -196,7 +196,7 @@ async def _(bot: Bot, matcher: Matcher, event: GroupMessageEvent, sb: list = Dep
except ActionFailed:
await fi(matcher, '权限不足')

unset_g_admin = on_command('管理员-', priority=2, block=True, permission=SUPERUSER | GROUP_OWNER)
unset_g_admin = on_command('管理员-', aliases={'减管理', '管理减', '减管理员', '管理员减', 'gl-', 'gly-'}, priority=2, block=True, permission=SUPERUSER | GROUP_OWNER)
@unset_g_admin.handle()
async def _(bot: Bot, matcher: Matcher, event: GroupMessageEvent, sb: list = Depends(msg_at)):
"""
Expand Down
4 changes: 4 additions & 0 deletions nonebot_plugin_admin/admin_role.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,15 @@

from .approve import g_admin


async def _deputy_admin(event: GroupMessageEvent) -> bool:
admins = g_admin()
gid = str(event.group_id)
if admins.get(gid):
return event.user_id in admins[gid]
else:
return False


DEPUTY_ADMIN: Permission = Permission(_deputy_admin)
"""匹配分管事件"""
4 changes: 2 additions & 2 deletions nonebot_plugin_admin/notice.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ async def _(matcher: Matcher):
await matcher.finish(str(admins))

# 添加分群管理员
g_admin = on_command('分管+', priority=2, aliases={'/gad+', '分群管理+'}, block=True,
g_admin = on_command('分管+', priority=2, aliases={'/gad+', '分群管理+', '分管加', '分群管理加', 'fg+'}, block=True,
permission=GROUP_ADMIN | GROUP_OWNER | SUPERUSER)
@g_admin.handle()
async def _(matcher: Matcher, event: GroupMessageEvent, state: T_State, sb: list = Depends(msg_at)):
Expand Down Expand Up @@ -67,7 +67,7 @@ async def _(matcher: Matcher):
await matcher.finish('已开启审批消息接收' if status else '已关闭审批消息接收')

# 删除分群管理
g_admin_ = on_command('分管-', priority=2, aliases={'/gad-', '分群管理-'}, block=True,
g_admin_ = on_command('分管-', priority=2, aliases={'/gad-', '分群管理-', '分管减', '分群管理减', 'fg-'}, block=True,
permission=GROUP_ADMIN | GROUP_OWNER | SUPERUSER)
@g_admin_.handle()
async def _(matcher: Matcher, event: GroupMessageEvent, state: T_State, sb: list = Depends(msg_at)):
Expand Down
1 change: 1 addition & 0 deletions nonebot_plugin_admin/path.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
ttf_path = Path() / 'resource' / 'msyhblod.ttf'
summary_path = config_path / 'summary'
kick_lock_path = config_path / 'kick_lock'
appr_bk = config_path / '加群验证信息黑名单.json'

admin_funcs = {
'admin': ['管理', '踢', '禁', '改', '基础群管'],
Expand Down
Loading

0 comments on commit e6f4f22

Please sign in to comment.