Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in
read-only mode
.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
<...>中的是指令名,由空格隔开表示或,选择其中任一名称都可执行例如/B视频 添加 11783021
[...]表示参数,当[...]后面带?时表示参数可选
{...}表示连续的多个参数
本插件指令权限ID 格式为 xyz.cssxsh.mirai.plugin.bilibili-helper:command.*, * 是指令的第一指令名
例如 /B动态 添加 496371957 的权限ID为 xyz.cssxsh.mirai.plugin.bilibili-helper:command.bili-dynamic
参数 uid 例如 https://space.bilibili.com/508963009/ 的数字 508963009
参数 contact 为QQ号或者群号,可以省略,会从当前聊天环境获取,
比如群聊中会自动填充为当前群号, 但控制台中必须填充
子指令 sleep/at 的 target 是
被许可人 ID
处于休眠时间的订阅将不会推送
/bili-dynamic sleep g12345 00:00 06:00, 00:00~06:00 时间段内将不会推送
处于艾特时间的订阅将会添加艾特
/bili-live at g12345 19:00 23:00, 19:00 23:00 时间段内将会艾特全体
/bili-live at u456789 19:00 23:00, 19:00 23:00 时间段内将会艾特用户456789
子指令 cron 的 cron 参数是 CRON 表达式, 由 秒 分钟 小时 日 月 周 组成
/bili-dynamic time 508963009 "0 0 14 * * ?", 0 0 14 * * ? 表示每天 14:00 都执行一次
/bili-video time 508963009 "0 0 18 ? * 2-6", 0 0 18 ? * 2-6 表示星期一至星期五 每天 18:00 执行一次
可以使用在线编辑器生成
https://www.bejson.com/othertools/cron/
为防止被 空格 分成多个参数,请使用 " 包裹参数
动态订阅指令
/bili-dynamic forbid 转发抽奖 添加一个正则屏蔽
/bili-dynamic forbid 转发抽奖 false 取消一个正则屏蔽
/bili-dynamic filter 视频 添加一个动态类型过滤
/bili-dynamic filter 视频 false 取消一个动态类型过滤
type 取值 回复, 图片, 文本, 视频, 专栏, 音乐, 剧集, 删除, 番剧, 电视, 直播
直播订阅指令
/bili-video forbid 付费 添加一个类型屏蔽
/bili-video forbid 付费 false 取消一个类型屏蔽
/bili-video filter 1 添加一个分区过滤过滤
/bili-video filter 1 false 取消一个分区过滤过滤
type 取值 付费, 联合, 回放
tid 取值请参考
https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/video/video_zone.md
视频订阅不宜过多,否则会触发b站反爬策略,导致IP被锁定 动态订阅一般会包含视频内容,推荐以此代替
剧集订阅指令
剧集订阅需要 Season ID 例如
https://www.bilibili.com/bangumi/play/ss38353
的 38353
可以通过
搜索指令
搜索番剧 获得链接
信息解析指令
"""(?i)(?<!\w)(?:av(\d+)|(BV[0-9A-z]{10}))"""
// Dynamic
"""(?<=t\.bilibili\.com/(?:h5/dynamic/detail/)?)(\d+)"""
// Live Room
"""(?<=live\.bilibili\.com/)(\d+)"""
// User Space
"""(?<=space\.bilibili\.com/|bilibili\.com/space/)(\d+)"""
// Season
"""(?i)(?<!\w)ss(\d{4,10})"""
// Episode
"""(?i)(?<!\w)eq(\d{4,10})"""
// Media
"""(?i)(?<!\w)md(\d{4,10})"""
// Article
"""(?i)(?<!\w)cv(\d{4,10})"""
"""(?<=bilibili\.com/read/mobile\?id=)(\d+)"""
// Short Link
"""(?<=b23\.tv\\?/)[0-9A-z]+"""
位于Mirai-Console运行目录下的config/xyz.cssxsh.mirai.plugin.bilibili-helper文件夹下
BiliHelperSettings.yml
cache 图片缓存位置, 默认为 ImageCache
limit 动态 订阅 输出图片数量上限, 默认为 16
api API 访问间隔时间,单位秒, 默认为 10
video 视频 订阅 访问间隔时间,单位分钟, 默认为 10
dynamic 动态 订阅 访问间隔时间,单位分钟, 默认为 10
live 直播 订阅 访问间隔时间,单位分钟, 默认为 30
season 番剧 订阅 访问间隔时间,单位分钟, 默认为 30
refresh 启动时刷新 last,订阅最后推送将会重新开始记录,未推送内容将会因此丢弃
selenium 是否启用截图 此配置项废弃,通过 Template 文件内容来确定是否启用截图
ban 排除的自动解析内容,可以放一些不希望被解析的AV号之类的
forward 转发自动解析, 使用转发的形式发送自动解析结果
max 一次性推送的订阅内容上限, 超过这个上限将会尝试合并为转发消息
BiliCleanerConfig.yml
interval 图片清理的间隔时间,单位 小时
expires 图片缓存过期时间,单位 小时
SeleniumConfig.yml
user_agent 截图设备UA 网页识别设备类型,进而影响截图的效果
iPad Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1 MicroMessenger
iPhone Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 MicroMessenger
Mac Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50 MicroMessenger
width 截图宽度
height 截图高度
pixel_ratio 截图像素比 此配置废除
headless 无头模式(后台模式)
home 浏览器会保持打开主页,以加快其他页面加载速度 此配置废除
hide 隐藏的web组件(jQ选择器)
添加 ".international-header", ".top-bar", ".m-navbar" 可以屏蔽顶边栏
LiveAtAll
此设置 1.5.0 废除
此配置通过权限设置,权限ID为 xyz.cssxsh.mirai.plugin.bilibili-helper:live.atall
配置对象为群,即 g*, g12345
举例,perm add g12345 xyz.cssxsh.mirai.plugin.bilibili-helper:live.atall
Template
位于 config/xyz.cssxsh.mirai.plugin.bilibili-helper/Template 目录下的 template 文件
文件名为对应的配置对象(类名),文件内容的 #... 是替换标记,将会替换为对应的值
值的名称请参考
bilibili/data
中的数据定义
#images, #detail, #screenshot 为特殊的替换标记,将会替换为特殊的处理结果
#images 将会替换为内容图片
在 BiliRoomInfo 中 #detail 将会替换为对应的 Live
在 DynamicCard 中 #detail 将会替换为对应的 card 解析结果
在 DynamicInfo 中 #screenshot 将会替换为截图(需要安装 mirai-selenium-plugin)
在 Article 中 #screenshot 将会替换为截图(需要安装 mirai-selenium-plugin)
例如可以将 VideoStatus.template 改为
👍 #like 💰 #coin ⭐ #favorite
▶️ #view 💬 #reply 🔄 #share
Cookies
位于 data/xyz.cssxsh.mirai.plugin.bilibili-helper/cookies.json
导入 cookies文件 不是必须的,这是实验性功能,主要是防止b站反爬IP锁定
从 浏览器插件
EditThisCookie
导出Json 填入文件
EditThisCookie 安装地址
Chrome
Firefox
MCL 指令安装
./mcl --update-package xyz.cssxsh:bilibili-helper --channel stable --type plugin
运行
Mirai Console
生成plugins文件夹
从
Releases
下载jar并将其放入plugins文件夹中
./mcl --update-package xyz.cssxsh.mirai:mirai-selenium-plugin --channel stable --type plugin
完善剧集订阅
自动清理图片缓存
——开源——
开源了一个没有完全过检测的版本,可以正常运行高版本的so文件,希望起到抛砖引玉,促进研究的作用
https://github.com/zhaodice/Astral-QSignigngnn
——出现CC攻击后的措施——
当服务器负载较大时,优先拒绝消耗量较大的IP的请求,如需IP白名单请联系。
——服务器目前支持的版本——
9.0.55-9.0.95
9.1.0
——服务器目前开放的版本——
9.0.55-9.0.95
9.1.0 (仅主服务器AB)
——网友赞助的服务器——
服务器地址(自2024-08,租赁1年时间):
http://8.216.82.28/
——主服务器A,无key,可能有墙——
服务器地址(主要A,cloudflare):
https://qsign.trpgbot.com
服务器地址(CDN线路):
http://qsign-v3.trpgbot.com
服务器地址(端口转发,感谢
@Moyuyanli
):
https://qsign.chahuyun.cn
服务器地址(端口转发,月流限制1G):
http://qsign.w1.luyouxia.net
——主服务器B,无key,可能有墙——
服务器地址(主要B,huggingface):
https://zyr15r-astralqsign.hf.space
——注意事项——
新的key:miraibbs
对本贴内容做了门户:
https://qsign-guide.trpgbot.com/
1.服务器已全部迁移至主服务器,处理了一下主机的散热器问题,现在性能应该足够了。
2.除了
qsign.trpgbot.com
,其他的都是它的镜像,如果有条件也可以自己反向代理
协议配置文件
ANDROID_PAD
"apk_id": "com.tencent.mobileqq",
"app_id": 537220362,
"sub_app_id": 537220362,
"app_key": "0S200MNJT807V3GE",
"sort_version_name": "9.0.56.16830",
"build_time": 1713424357,
"apk_sign": "a6b745bf24a2c277527716f6f36eb68d",
"sdk_version": "6.0.0.2560",
"sso_version": 21,
"misc_bitmap": 150470524,
"main_sig_map": 34869472,
"sub_sig_map": 66560,
"dump_time": 1713424357,
"qua": "V1_AND_SQ_9.0.56_6372_YYB_D",
"protocol_type": 6
Mirai - 傻瓜式插件
直接安装插件即可正常登录
https://github.com/MrXiaoM/fpv/releases/tag/v1.13.1
(它属于 fix-protocol-version 插件的开发分支,因为功能相同所以可能冲突,一山不容二虎哦,使用时请注意禁用相关插件)
Mirai - fix-protocol-version 插件
mirai KFCFactory.json 使用配置:
"9.0.56": {
"base_url": "https://qsign.trpgbot.com",
"type": "fuqiuluo/unidbg-fetch-qsign",
"key": "miraibbs"
同时请另存为 协议配置文件(ANDROID_PAD)的数据内容到 ANDROID_PAD.json ,数据内容上文已给出
控制台输入 protocol load ANDROID_PAD
即可用ANDROID_PAD协议登录你的QQ
gocq config.yml使用配置:
sign-servers:
- url: 'http://8.216.82.28/'
key: 'miraibbs'
authorization: '-'
- url: https://qsign.trpgbot.com/'
key: 'miraibbs'
authorization: '-'
auto-register: true
同时请另存为 协议配置文件(ANDROID_PAD)的数据内容到 /data/versions/6.json ,数据内容上文已给出
607af2d3-ed77-49ea-a9b5-b3ac8adb98c4.png
新注册的账号使用本sign,在24小时后仍未出现冻结现象,证明已经通关。
有任何问题欢迎进行交流讨论,最后感谢fuqiuluo提供的unidbg调用思路以及各位逆向工作者的支持。
Kookie
基于 Mirai 框架的群聊机器人,还在开发中...
kookie的诞生起源于写代码时的无聊,就像写一个玩一下,并且在新建文件夹的时候恰巧正在吃饼干,遂诞生了Kookie,希望各位喜欢她。
本次开源一部分插件功能。
仓库地址:
https://github.com/GeneralK1ng/Kookies
欢迎各位PR,欢迎一起交流。
Features
答案之书 群聊内发送 答案之书 <询问内容>
今日运势 群聊内发送 今日运势
评价一下 群聊内发送 评价一下 <@想要评价的目标>
吃什么 群聊内发送 吃什么 <具体地址> <city> (如果地址非常具体可以不加city)
说一下 群聊内发送 说一下 <需要说的文字>,会发送语音,语音模块需要自己部署推理服务器。
今日老婆 群聊内发送 今日老婆
代码运行 群聊内发送 代码运行 <语言> <代码> 此部分用的runoob的API,自己去拿一个token即可使用。
今日词云 群聊内发送 今日词云
昨日词云 群聊内发送 昨日词云
地狱笑话 群聊内发送 地狱笑话 目前是英文的,后面考虑能不能翻译,但是其实很多笑话是欧美梗,如果翻译过来的话,可能就没内味了。
后面的功能还在想,语音功能部分比较的复杂,需要另外自己部署推理服务器,并且自己使用模型,而且还需要自己编译ffmpeg,这部分代码写的比较死,这部分需要一个详细的文档,但是本人学生空余时间并不是很多,所以后续会不定期开发。
需要填写的API
大模型采用的是百度的 Yi-34B-Chat 的中文模型,选择这个的理由是首先中文识别以及短回复比较适合群聊场景,其次是调用它不要钱(bushi,对学生党比较友好。
去
百度智能云控制台
新建一个应用,获取 API key 和 Secret Key 填入 config.json 即可
主要是吃什么功能,需要用到高德的周边搜索以及地理坐标转换。\
去
高德开放平台
建立一个应用,然后复制 API Key 填入即可,注意周边搜索免费额度只能每天免费100次数,所以建议节省一些,后续会开发一个缓存池来延长每天的时间,咕咕。
这部分需要自己搭建推理服务器并且还涉及本地的ffmpeg的编译,比较的麻烦,所以因为时间限制暂且不表。
Runoob
需要去菜鸟教程的在线编译器抓包拿一下token,这里感谢菜鸟教程的无私奉献()
Config
在kookie插件加载成功后会在 ./kookie/ 目录下生成 config.json 文件,需要手动填写一些相关参数:
"botInfo": {
"birthday": "2024-05-20",
"name": "Kookie",
"owner": "your owner",
"age": 16,
"baiduApiConfig": {
"apiKey": "your apiKey",
"secretKey": "your secretKey"
"gaodeApiConfig": {
"apiKey": "your apiKey"
"voiceApiConfig": {
"apiUrl": "your apiUrl",
"ref_audio_path": "your ref_audio_path",
"gpt_weights_path": "your gpt_weights_path",
"sovits_weights_path": "your sovits_weights_path"
"runoobToken": "your runoobToken"
"maxTodayGirlTimes": 3,
"adminList": [
123456789,
987654321
"userBlackList": [
11111111,
22222222
"enableGroupList": [
"id": 666666,
"tag": [
"test1",
"test2"
"id": 777777,
"tag": [
"test3",
"test4"
voiceApiConfig 目前可以先不填写,在后续文档跟进后再使用,这部分只是关于语音推理的。
然后黑名单和允许的群聊这两部分是权限管理必须需要的,所以一定要填写!
请注意如果词云采用的字体是宋体,如果服务端没有安装会导致图片生成失败!!!
字体下载请到
fonts
这个文件夹下下载然后安装,目前还在研究java的字体安装,如果无法自动安装就手动下载安装吧。
如果可以的话,请点一个star,非常感谢 >_<
使用JCF插件,你可以通过机器人来对Curseforge进行搜索,查看Minecraft整合包、模组、资源包的最新文件、下载地址、文件更新记录等。
建议配合
mcmod
插件食用,用mcmod搜索中文资料,用JCF获得下载地址。
这是一个开源插件,你可以
在这里
访问代码仓库,
在这里下载
最新发布文件。
它使用官方指令插件实现命令,因此你需要允许在聊天环境使用指令,并授予/jcf访问权限。
/jcf help # 帮助
/jcf ss <filter> # 直接搜索
/jcf sspack <filter> # 搜索整合包
/jcf ssmod <filter> # 搜索模组
/jcf ssres <filter> # 搜索资源包
3d85c472-83b3-4fb7-b085-058045f54708-image.png
c3a3a01a-c0c7-493e-8232-77070b4d4e8b-image.png
29c4db89-8c41-4a11-9041-5e6ab32199c7-image.png
fad0f17f-82ca-4eeb-adf8-0c4bab27b8a4-image.png
论坛这么多Setu插件就来个反setu插件吧
V3全新升级版,在danbooru的十万张图片上进行了训练,但仅对卡通绘画风格的图片有效
使用MobileNetV3模型并进行了剪枝量化,即使服务器只有单个CPU也能高速推理,并在验证数据集上得到了80%的准确率
插件不包括任何指令,配置文件含义如下
# 启用的群
enabled_group:
# questionable等级的阈值
questionable_threshold: 0.5
# 同上,explicit等级要比上面的等级更加se
explicit_threshold: 0.5
# 是否撤回
questionable_recall: true
explicit_recall: true
# 回复内容
questionable_reply: '好涩哦~~~ %score%'
explicit_reply: '太涩啦~~~~ %score%'
下载地址
https://github.com/mzdluo123/AntiSetu/releases/
V2链接
https://mirai.mamoe.net/topic/694/antisetu-群内反涩图插件/
平时用来交流mirai的问题什么的,也可以在群里测试机器人,需要管理员权限可以找我,只要不会导致封群并且不会打扰到别人就行。
完全民主,自♂由,公正,平等。
而且永远不会无缘无故禁言或乱@全体成员,因为我本人就很讨厌这种蠢蛋行为。
刚开始人可能会很少,毕竟是新群嘛也没办法很快的就集齐很多大佬,所以还望各位大佬不要看人少就退群啦_(:зゝ∠)_在群里也可以自由的分享资源,所以不必担心在群里上传不了文件啦,一些普通的无关紧要的权限我都会打开的。
Ps:我还剩一个可以升级2000人群的机会可以用,虽然感觉不会有这么多人。
我也不会通过此群获得任何盈利。
这个群永远不会解散!!
我们不欢迎在此群讨论以下内容:
·政治相关
·违法内容
·滥用内容
·色情内容
本群非盈利性质交流群,并非商业群。任何人只要入群,默认同意对自己的行为负责,群内发生任何意外及损害,建群者及Mirai创建者与Mirai管理人员在任何情况下均不承担任何法律和经济责任,特此声明!
Mirai交流群(非官方):780594692
由于楼主文化造纸不高,文中掺杂了很多废话,
只阅读粗体字即可了解全部信息,细体字为背景信息补充
。
众所周知,腾讯几年前为了对标discord和一众竞品推出了秋秋频道,为了对标其它平台的Bot生态开放了仅限频道的官方接口,在开发频道Bot接口时顺便开发了群聊接口,不过仅限内部使用。
不久之后,腾讯官方的群聊Bot陆续上线,例如群聊管家,农药战绩Bot等;这些用新接口的Bot与腾讯之前与微软合作的QQ小冰,BabyQ等烂尾项目最大的区别是带有权限管理系统,例如群主可以指定Bot权限等。这是因为腾讯把内部接口开放给了缴纳保护费的公司开发对应游戏的战绩查询Bot。
经过漫长的便秘开发周期,腾讯终于在去年 (2023) 9月宣布对个人开发者开放群聊接口,代价是需要参加腾讯组织的比赛。
最近腾讯宣布比赛马上结束,现有的接口也基本稳定下来,所以就有了这篇文章。
资质 & 注册
注册成为个人开发者,
只需要绑定个人身份信息的QQ账户即可
;因为几年前的相关部门规定,反而很难找到没有绑定个人信息的账号。
注册网站:
q.qq.com
注册后即可创建Bot,
默认创建的Bot只有频道接口的开发权限
,群聊权限会在近期开放申请,请期待本贴更新。
接下来是大部分人关心的审核问题,Bot默认
只能在测试频道/群聊中使用
,
添加到其它频道需要通过审核
。
下面的内容包含大量黑框框 你知道的太多了
平台上上传Bot头像, 指令等基本信息。
填写excel表格,包含bot的功能、用途、测试用例等信息
表格预览
(可能近期失效,下方有截图)
e92f20ce-1ffc-4439-80a3-601457c853f8-image.png
等待过审
(三天到一周时间,周末放假)
更改Bot使用范围为公域
(下文附有腾讯黑话&专有名词解释)
等待过审
(两天到一周时间,周末放假)
(令人迷惑的是为什么腾讯一定要审核两遍,咱也不敢问)
审核时审核员会根据表格里的指令进行测试
也不一定按照表格里的指令测试,笔者就遇到过审核员没有按照表格内对应的格式回复导致审核不通过再等一周
还会假设bot有AI机能尝试聊天
建议: 送审时
尽可能阉割
以免不通过再等一周,过审后可以随意编辑
腾讯对文本审核尺度把握非常迷惑严格,列举几个一般人觉得没问题但腾讯不允许出现的词汇:
上瘾,生病,胸,腿(等身体部位),美国(或任何国家),迪士尼系列的所有名词(米奇,某只黄色的熊等)(任天堂没试过),警察,药
上面的词汇仅限中文,用英文可以过审
能否过审主要取决于审核的心情,每个审核的G点不一样
想象一下你的祖母会如何评价Bot发送的图片,这就是腾讯的图片审核标准没有标准
过审并不是腾讯拷打你的终点,而是起点,以下列举几个可能导致封号的行为
复读
用户发过的
消息
或发送用户的ID。
复读
用户的
表情包/图片
或处理后发送用户的头像。
在某些日子发送或回复某些词汇,强烈建议了解以避免踩雷。坦克,蛋炒饭等
被举报包含
AI回复
的功能,AI必须有对应资质。
接口 & SDK
目前接口有两个大版本,旧版本只能发送频道,新版本群聊和频道皆可
websocket 用于事件通知与简单消息发送
也有
http消息发送接口
,例如使用formdata发送图片等
官方SDK
重要建议:不要使用腾讯官方 Go Node SDK!
重要建议:不要使用腾讯官方 Go Node SDK!
重要建议:不要使用腾讯官方 Go Node SDK!
有
Python, Go, Node
版本;不建议使用 Go Node,理由如下:
使用旧版接口
缺少类型 (TS类型全是any之类的)
太长时间没更新 (截止到本文撰写,Go与Node SDK上次更新时间是2020年)
笔者没用过 Python SDK,所以持中立态度。
野生SDK
有很多,但笔者一个都没用过,体验过的欢迎评论点评,本贴也会积极更新。
Markdown & 按钮
大家朝思暮想的md腾讯也有提供,不过目前
限制极大
(下详)
腾讯把Markdown分为三种
审核/限制
集找番、追番、看番的一站式弹幕追番平台。
为了自己日常看番写的, Ani 的目标是提供舒适的弹幕追番体验。
支持云同步观看记录 (
Bangumi
), 多视频数据源, 弹幕播放 (自建弹幕服务器以及网络弹幕源), 离线缓存, 以及更多功能。
无广告, 不收费。想扩充用户量以增加弹幕数量。
Made by
@him188
(目前) with love
Ani 支持 Android 和桌面端 (macOS、Linux、Windows)。
3.0 功能正逐渐完善, 每隔几天会发布一个 beta 测试版本。
欢迎加入 QQ 群 927170241(
PC 一键加入
)或 Telegram 群
点击加入
请关注
releases
以下载最新版本, 如果来 PR 就更好了
Android APK
:
论坛放图片太大了, 我就截图截图吧, 原图可以在 GitHub 看:
https://github.com/open-ani/ani
9bd64dca-9f6c-4a7c-91c8-8ae175f998ce-image.png
2d626093-7fc3-49ac-89b2-5193e32870fd-image.png
45ede0f6-b8d4-4285-8ea0-e177eb49ff4e-image.png
f0a87fde-10c6-4eaa-8193-7f07852f38d9-image.png
09d5bc23-5bc1-43b5-b9ee-57253540f1f9-image.png
a6e30bd9-c668-40b8-b32e-7eb54bc3e089-image.png
0d9cfcfc-7a16-4a05-8421-03bb9bad6be8-image.png
6dc5383f-13ae-487f-b500-2312bb2daacc-image.png
完全免费无广告且开放源代码
使用靠谱的
Bangumi
记录追番数据, 不怕网站跑路丢失数据
视频播放使用 P2P 资源, 无服务器维护成本, ~即使我跑路了 Ani 也能用~
开放源代码, 公开自动构建, 无资料泄露风险
可 PR 添加自己喜欢的功能 (只要不用于商用)
使用前请根据
https://ai.baidu.com/ai-doc/ANTIPORN/Wkhu9d5iy
的步骤申请APP 获取APP_ID API_KEY SECRET_KEY
在安装插件,并启动Mirai Console后,config/content-censor目录下会生成ContentCensor.yml
对应修改文件中APP_ID API_KEY SECRET_KEY的值
机器人将会在作为群主或者管理员身份的情况下工作,即群消息内容审核(文本,图片,语音)
机器人的审核规则请到
https://ai.baidu.com/censoring#/strategylist
修改策略
位于 config/ContentCensor.yml
mute 禁言时间,单位秒,默认1分钟
plain 是否检查文本,默认 true
image 是否检查图片,默认 false
audio 是否检查语音,默认 false
拥有权限 io.github.gnuf0rce.content-censor:no-censor 的用户将不会被检测
MCL 指令安装
./mcl --update-package io.github.gnuf0rce:mirai-content-censor --channel stable --type plugin
运行
Mirai Console
生成plugins文件夹
从
Releases
下载jar并将其放入plugins文件夹中
配置禁言时间
QPS延迟
视频内容审核
转发消息内容审核
swordbot
一个基于Mirai和Graia实现的宝剑游戏机器人(复刻
https://github.com/Micalhl/NiuZi
)
python_version >= '3.8' and python_version < '4.0'
作者使用的是
python3.11.1
首先确保Mirai已安装mirai-api-http插件并配置正确
将项目克隆到本地
git clone
[email protected]:liu-zhou-L/swordbot.git
安装pipenv,如果已安装忽略此步
pip3 install pipenv
使用pipenv创建虚拟环境并安装依赖
pipenv install -r requirements.txt
机器人的配置文件如下
QQ: 12345 # 你的机器人的 qq 号
VerifyKey: "12345" # 填入 VerifyKey
Host: "http://localhost:7789" # adapterSetting下的host
GroupBlackList: [] # 群聊黑名单
UserBlackList: [] # 用户黑名单
其中前三项启动后更改需重启机器人(不需要重启Mirai)
VerifyKey和Host需填入Mirai路径下config/net.mamoe.mirai-api-http/setting.yml文件中对应的值
前两步完成后,先运行Mirai然后在swordbot路径下使用
pipenv run python bot.py
启动机器人
目前支持的指令
宝剑系统:查看可用指令
我的宝剑:查看自己的宝剑信息
白嫖宝剑:获得一把宝剑
比划比划@群内用户:和群内用户进行对决,赚取宝剑长度
随机比划: 与另一位随机宝剑对决,无需@
(群)宝剑榜:查看群内用户的宝剑排名
总宝剑榜:查看宝剑系统所有宝剑的排名
绑定对象+@群内用户:将自己的宝剑对象意向设定为某群内用户,互为彼此意向时,形成对象联系
双修功法:与对象一起修炼,赚取宝剑长度
冲咖啡:冲杯咖啡赚取宝剑长度
宝剑改名+新名称:接受长度在2~30的宝剑名称,会自动去除所有空格,改名成功会消耗 25cm 长度
对python、Mirai、Graia的使用均为小白级,代码一塌糊涂,qwq
项目地址:
https://github.com/MrXiaoM/Overflow
官网:
https://mirai.mrxiaom.top
无缝迁移 mirai 到 OpenShamrock、Gensokyo、Lagrange、LLOnebot、NapCat 等 Onebot 实现!
该项目正在施工中,敬请期待
详细安装教程请见
官网
结尾。
由于学业问题以及还有其它项目正在进行,Overflow 的开发暂缓
mirai-core 和 mirai-console 均可使用。
项目开发进度以及开发版本发布将会在群 1047497524 中进行,目前已经可以正常收发消息。
放到了GitHub上的
我魔改的项目
里
1.前往
使mirai支持新NT图床方法
下载mirai-core-all-2.17.0-all.jar和mirai-core-all-2.17.0-all.jar.sha1
2.将mirai-core-all-2.17.0-all.jar和mirai-core-all-2.17.0-all.jar.sha1放入libs文件夹
3.修改config.json中的内容,将
"net.mamoe:mirai-core-all": {
"channel": "maven-stable",
"version": "2.16.0",
"type": "libs",
"versionLocked": false
"net.mamoe:mirai-core-all": {
"channel": "maven-stable",
"version": "2.17.0",
"type": "libs",
"versionLocked": true
修改来源
mamoe/mirai/Pull request #2860
,文件来自Actions构建
mamoe/mirai/Build #5103
自定义数据库接入:目前支持(sqlite,h2,mysql)
自定义缓存位置:目前支持(内存),预留(redis)
自定义权限:目前支持(内置),预留接入HuYanAuthorize未来可能会接入lp
分组支持多种类型:对以前的群分组进行了升级,现在分组不仅可以对群分组,还能对人分组和对群成员分组!
高度定义的作用域匹配:7种作用域匹配,满足的需求
4c8c0423-f828-43fa-ab8a-e2336525c77d-图片.png
重新设计的单一消息,更加简洁,新增了概率回复功能,保留了壶言会话2.4.x的本地缓存功能
现阶段版本已经可以进行测试使用
如果你想使用,可以去群里获取测试版本的插件,放入plugins文件夹启动即可使用。
由于当前版本为壶言会话2的拆分版,你可以与壶言会话2一起使用,但是会触发两个插件的命令,解决方式就是使用壶言会话2的过滤消息功能将壶言会话2的指令暂时过滤掉!
对于现阶段mirai的半死状态,这边目前可以总计一下目前可能能行的登录方案:
签名服务-非常的不稳定(及其容易封号),但是能用
通过Overflow插件接入其他平台的OneBot转生
蕉流与学习
目前就这完成了这么多,后续会慢慢完善,如果你有好的意见,可以在本帖子种回复。也可以加群直接at我,
不是云的茶壶云(390444068)
如果你想学习编写mirai插件,或者刚学java,欢迎来对本项目进行编写和pr,结构简单易上手!
以下是本插件部分文档,会持续更新。
对于部分参数,有默认值,可省略不填。
| 指可选,左边或右边选择一个即可
+ 指可填写多个,一般中间用 隔开。
(xx) 指必填,括号内内容必须填写。
[xxx]指可选填写。
1|精准 精准匹配(默认)
2|模糊 模糊匹配,包含触发词即匹配成功。
3|头部 头部匹配,从前往后匹配触发词即匹配成功。
4|尾部 尾部匹配,从后往前匹配触发词即匹配成功。
5|正则 正则匹配,按照正则匹配结果。
对于部分只能存在一条的信息,在参数集里面添加重写状态即可重写写入该信息。
%|rewrite 启用重写。
不同于壶言会话2的自动识别动态消息,壶言会话3这边需要手动指定是否启用动态消息。
dt|动态|dynamic 启用动态消息。
由于腾讯服务器储存图片有概率过期,因此设计本地缓存功能,在config中有默认开启配置,默认不开启。
也可以根据单个消息默认设定开启与否。
ca|缓存|cache 启用本地缓存。
消息在匹配时的转换方式
MIRAICODE miraiCode(默认)。
STRING String。
CONTENT content。
JSON json。
global 全局。
global-(id)|global-(at) 全局的某个用户,可填号码,可at人。
group 当前群(默认)。
member-(id)|member-(at) 某个群友。
list-(id) 自定义群列表。
users-(id) 自定义用户列表。
members-(id) 自定义某个群的群用户列表。
probability-(0.0~1.0) 消息的触发概率。
random 用于多词条的开启随机触发功能
动态消息类型
针对上一代的动态消息使用体验,这个版本也进行了一次优化
现格式为:
${prefix.suffix}
这是一个非常有意思的功能!
在配置中启动该功能后,对着机器人在线期间的消息回复一个批准入典, 将会默认生成一个触发词为群典(在配置中自定义)的多词条集
这个群典只属于当前群,意味着对于不同的群,可以有不同的群典!
记录群友的丢人瞬间!
权限id:ds
权限id:admin
026ed651-46e4-4417-bca8-45128e8e0cab-image.png
ffmpeg配置了
a66e6cd5-7e21-45a7-a43f-48992ccb1e44-image.png
silk装的git上fix的版本
7733322c-4a78-42eb-8208-33aaf8cbc25b-image.png
但是Win电脑QQ上还是什么都不显示,手机也无法转文字
75e882a3-a424-424c-b06f-790321d61de1-image.png
求大佬指点
2021-11-23 15:37:14 E/Bot.BotID: Exception on parsing packet.
java.lang.IllegalStateException: Exception in net.mamoe.mirai.internal.network.notice.priv.PrivateMessageProcessor@2626c626 while processing packet Msg.
at net.mamoe.mirai.internal.network.components.NoticeProcessorPipelineImpl.process$suspendImpl(NoticeProcessorPipeline.kt:241)
at net.mamoe.mirai.internal.network.components.NoticeProcessorPipelineImpl$process$1.invokeSuspend(NoticeProcessorPipeline.kt)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:194)
at io.ktor.util.pipeline.SuspendFunctionGun.access$resumeRootWith(SuspendFunctionGun.kt:15)
at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:89)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:194)
at io.ktor.util.pipeline.SuspendFunctionGun.access$resumeRootWith(SuspendFunctionGun.kt:15)
at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:89)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:194)
at io.ktor.util.pipeline.SuspendFunctionGun.access$resumeRootWith(SuspendFunctionGun.kt:15)
at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:89)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:194)
at io.ktor.util.pipeline.SuspendFunctionGun.access$resumeRootWith(SuspendFunctionGun.kt:15)
at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:89)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.IllegalStateException: Failed to download forward message `yk0BVERsQYR9PjpTNGYi3kH/B/+sZLPmbKIkBqIBfz7Aj8ce7n0CXBG3LcA5ARry`
at net.mamoe.mirai.internal.MiraiImpl.downloadForwardMessage$suspendImpl(MiraiImpl.kt:843)
at net.mamoe.mirai.internal.MiraiImpl$downloadForwardMessage$1.invokeSuspend(MiraiImpl.kt)
... 25 more
Caused by: java.lang.IllegalStateException: Cannot download forward message
at net.mamoe.mirai.internal.MiraiImpl.downloadMultiMsgTransmit(MiraiImpl.kt:1221)
at net.mamoe.mirai.internal.MiraiImpl.access$downloadMultiMsgTransmit(MiraiImpl.kt:71)
at net.mamoe.mirai.internal.MiraiImpl$downloadMultiMsgTransmit$1.invokeSuspend(MiraiImpl.kt)
... 25 more
Caused by: java.net.UnknownHostException: ssl.htdata.qq.com
at java.base/java.net.InetAddress$CachedAddresses.get(InetAddress.java:801)
at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1509)
at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1367)
at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1301)
at okhttp3.Dns$Companion$DnsSystem.lookup(Dns.kt:49)
at okhttp3.internal.connection.RouteSelector.resetNextInetSocketAddress(RouteSelector.kt:164)
at okhttp3.internal.connection.RouteSelector.nextProxy(RouteSelector.kt:129)
at okhttp3.internal.connection.RouteSelector.next(RouteSelector.kt:71)
at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:213)
at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:108)
at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:76)
at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:245)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:100)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:82)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:100)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:100)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:100)
at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:197)
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:502)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
... 1 more
也不是很严重的问题(对于我)就是看着比较难受
在自己的电脑上测试没有问题,在腾讯云服务器出现了这个问题
Windows Server 2019 Java 17.0.1 mirai 2.9.0-M1
项目地址:
https://github.com/MrXiaoM/Overflow
官网:
https://mirai.mrxiaom.top
无缝迁移 mirai 到 OpenShamrock、Gensokyo、Lagrange、LLOnebot、NapCat 等 Onebot 实现!
该项目正在施工中,敬请期待
详细安装教程请见
官网
结尾。
由于学业问题以及还有其它项目正在进行,Overflow 的开发暂缓
mirai-core 和 mirai-console 均可使用。
项目开发进度以及开发版本发布将会在群 1047497524 中进行,目前已经可以正常收发消息。