anda522 / bot

QQ群管理机器人,实现了多种群管理操作,支持权限控制,定时任务等功能

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

QQ bot

  • 删除/data/logsQQ号缓存文件夹,修改config.yml文件QQ号和密码

运行Bot

命令介绍

【基础管理】:
  禁言:
    禁 @某人 时间(s)[1,2591999]
    禁 时间(s)@某人 [1,2591999]
    禁 @某人 缺省时间则随机
    禁 @某人 0 可解禁
    解 @某人
    禁言时,该条消息中所有数字都会组合作为禁言时间,如:‘禁@某人 1哈2哈0哈’,则禁言120s
    
  全群禁言 若命令前缀不为空,请使用//all,若为空,需用 /all 来触发
    /all 
    /all 解
    
  改群昵称
    改 @某人 群昵称
    
  踢出:
    踢 @某人
  踢出并拉黑:
   黑 @某人
   
  撤回:
   撤回 (回复某条消息即可撤回对应消息)
   撤回 @user [(可选,默认n=5)历史消息倍数n] (实际检查的历史数为 n*19)
   
  设置精华
    回复某条消息 + 加精
  取消精华
    回复某条消息 + 取消精华
【头衔】
  改头衔
    自助领取:头衔 xxx 
    自助删头衔:删头衔
    超级用户更改他人头衔:头衔 @某人 头衔
    超级用户删他人头衔:删头衔 @某人
  
【子管理设置】:可以进行基础群管理
  子管理+ [user] :user可用@或qq 添加分群管理员
  子管理- [user] :删除分群管理员
  子管理 :查看本群分群管理员
  所有子管理 :查看所有分群管理员
【群词云统计】
该功能所用库 wordcloud 未写入依赖,请自行安装
群内发送:
  记录本群 : 开始统计聊天记录 permission=GROUP_ADMIN | GROUP_OWNER | SUPERUSER
  停止记录本群 :停止统计聊天记录
  群词云 : 发送词云图片
  更新mask : 更新mask图片
  增加停用词 停用词1 停用词2 ...
  删除停用词 停用词1 停用词2 ...
  停用词列表 : 查看停用词列表

群发言排行
 - 日:
  - 日榜首:今日榜首, aliases={'今天谁话多', '今儿谁话多', '今天谁屁话最多'}
  - 日排行:今日发言排行, aliases={'今日排行榜', '今日发言排行榜', '今日排行'}
  - 昨日排行
 - 总
  - 总排行:排行, aliases={'谁话多', '谁屁话最多', '排行', '排行榜'}
 - 某人发言数
  - 日:今日发言数@xxx, aliases={'今日发言数', '今日发言', '今日发言量'}
  - 总:发言数@xxx, aliases={'发言数', '发言', '发言量'}
【被动识别】
违禁词检测:
 - 支持正则表达式(使用用制表符分隔)
 - 可定义触发违禁词操作(默认为禁言+撤回)
 - 可定义生效范围(排除某些群 or 仅限某些群生效)
 - 示例:
  - 加(群|君\S?羊|羣)\S*\d{6,}		$撤回$禁言$仅限123456789,987654321
  - 狗群主				$禁言$排除987654321
【功能开关】
群内发送:
  开/关xx : 对某功能进行开/关
  开关状态 : 查看各功能的状态
  xx in :
    ['管理', '踢', '禁', '改', '基础群管']  #基础功能 踢、禁、改、管理员+-
    ['词云', '群词云', 'wordcloud'] #群词云
    ['违禁词', '违禁词检测'] #违禁词检测
    ['消息记录', '群消息记录', '发言记录'],
    ['早安晚安', '早安', '晚安'],
    ['广播消息', '群广播', '广播'],
    ['事件通知', '变动通知', '事件提醒'],
    ['防撤回', '防止撤回']
违禁词检测默认关,其他默认开

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

配置介绍

默认配置文件和资源文件存放于项目根目录的 ./data/group文件夹下

具体存放路径参考config.py文件

各文件功能介绍

功能文件

  • admin.py文件

禁言/解禁、全体禁言和解禁、改群昵称、给头衔和删除头衔、踢人和黑人、添加和删除群管理、加精和取消精华、撤回功能的实现

实现拉黑,除黑功能

  • sub_admin.py文件

分群管理设置

词条添加和删除

  • auto_ban.py文件

违禁词禁言,删除、添加、查看违禁词功能

  • broadcast.py文件(功能用处似乎不大,似乎也有用处)

广播、广播排除、群列表、添加和排除群广播列表

  • func_hook.py文件

运行相应功能之前进行hook处理,检查某群某功能是否开启,开启再执行对应功能

  • task_scheduler.py文件

群消息定时推送随机一言(早上发送和晚上发送功能),配置需要自己静态配置(文件写入配置)

  • group_recall.py文件

防撤回功能实现

  • group_request_verify.py文件

入群验证功能实现

  • notice.py文件(暂时不知道分管是什么功能)

群分管、查看群分管、添加分群管理、删除分群管理、超管接收

  • notice_monitor.py

通知事件监测

  • reqquest_manual.py

不知道是干什么的,同意拒绝啥的

  • requests.py

加群验证:实现对加群验证词条的管理

加群审批:目前似乎不能实现(或者黑名单设置为不能再申请加群了,所以收不到加群通知)

  • switcher.py:功能开关实现,通过事件预处理进行功能开关检查

  • utils.py:各种工具函数

  • word_analyze.py:聊天消息记录

  • wordcloud.py:群词云功能

配置文件

  • config.py文件:插件变量和全局变量生成的地方

要实现功能

  • 虚拟管理(子管理):虽然不是管理,但是有管理或者超级用户授权,同样可以在群内进行撤回踢人等基础操作
  • 各种事件(加群,入群)通知的处理(数据记录等)
  • 黑名单功能优化:群内出现黑名单人物提醒并提出,可以对黑名单做出对应变化
  • 分群管理:优化文件结构,优化存储结构,希望做到多个群的共同协作
  • 入群审批:不知道还要不要实现

About

QQ群管理机器人,实现了多种群管理操作,支持权限控制,定时任务等功能


Languages

Language:Python 99.0%Language:HTML 0.7%Language:Dockerfile 0.3%