-
大佬, 大神
等等称呼并不会给开发者带来实际的收益,
你口中的大佬
一天也是只有24小时的时间,
并且已经因为写代码消耗了不少,
所以请尽可能详细的描述你的问题和需求,减少时间的浪费。 -
良好的代码/日志排版 阅读会更舒服
-
日志最好能是复制文本,而不是截图。方便把关键信息复制出来检索。
-
使用 插件/软件 前,要通读 readme
-
不推荐开启的功能 可能是实验性或者不可控的 所以开启之后不一定能带来更好的效果
-
影响下载速度的原因有 网络带宽,运营商(
电信、移动,联通
), Dns/Hosts, 丢包率, 代理 等等,只有一句下载很慢
,开发者只能对着空气分析
cssxsh 发布的最佳帖子
-
被用户气晕,倒点垃圾
-
一些碎碎念
本贴只接受补充建议,不接受提问
Mirai 与 MCL
MCL 是指 mirai-console-loader
项目地址 https://github.com/iTXTech/mirai-console-loaderMirai 是指 mirai-core 或者 mirai-console
项目地址 https://github.com/mamoe/miraiMCL 名字的意思是
mirai-console
启动器/加载器
是用来管理mirai-console
及mirai-console
插件的
管理是指自动下载和版本检查之类的功能
目前只支持从maven下载插件(本来有规划插件中心的,但是鸽了)提供
QQ Bot
功能的是mirai-console
,MCL本身不提供功能
而且两种本身相互独立,即MCL
的版本不影响mirai
的功能,反之mirai
的版本不影响MCL
的功能不要把
MCL
和mirai
划等号,这会带来一些问题,
比如提交 issue 时要求提交mirai
版本,却有人提交了MCL
的版本MCL
启动之后先出现的是 MCL 的日志,他会显示mirai
及mirai
插件的加载情况
然后从I/main: Starting mirai-console...
开始就是mirai
的日志有时候
MCL
更新插件不及时
原因是 MCL 默认使用 阿里云的maven伪镜像
,伪镜像
更新不及时导致的MCL 的目录结构一般是这样的
MCL ├───mcl.jar ├───mcl.cmd (WIN启动脚本) ├───mcl.sh (Linux/MACOS启动脚本) ├───bots (bot数据目录) │ ├───123456 │ │ ├───device.json │ │ ├───cache │ │ └───logs │ └───114514 │ ├───device.json │ ├───cache │ └───logs ├───config (配置目录) │ ├───Console │ │ ├───AutoLogin.yml │ │ ├───Command.yml │ │ ├───ExtensionSelector.yml │ │ ├───Logger.yml │ │ ├───PermissionService.yml │ │ └───PluginDependencies.yml │ └───net.mamoe.mirai-api-http │ └───setting.yml ├───data (数据目录) ├───libs (库目录,里面有mirai本体) ├───logs (日志目录,里面有日志文件) ├───plugins (插件目录) ├───plugin-libraries (插件库目录) └───plugin-shared-libraries (插件共享库目录) └───libraries.txt
Mirai API HTTP
项目地址 https://github.com/project-mirai/mirai-api-http
提供
HTTP API
的中间件
配置文件setting.yml
所在请查阅上面的 MCL 文件树Mirai Native
项目地址 https://github.com/iTXTech/mirai-native
兼容酷Q插件的中间件, 需要 32位 Java
但作者很忙没空管理2.14 之后 要正常使用要到
https://github.com/cssxsh/mirai-native/suites/10378553865/artifacts/512083102
里下载CI最新构建的版本
CI 已过期备份👇
mirai-native-2.0.1.mirai2.jarMiraiAndroid项目地址:https://github.com/mzdluo123/MiraiAndroid
mirai-console 在 Android 中的实现
作者已经不再维护此项目,无法保证可用性
可用性自己试,别TM到处问能不能用,自己试一试不就知道了吗TxCaptchaHelper项目地址:https://github.com/mzdluo123/TxCaptchaHelper
已不再维护
Mirai Compose项目地址:https://github.com/sonder-joker/mirai-compose
mirai-console 的图形化实现
作者已经不再维护此项目,无法保证可用性
可用性自己试,别TM到处问能不能用,自己试一试不就知道了吗 -
B站订阅插件,动态、视频、直播订阅 @全体成员
BiliBili Helper
基于 Mirai Console 的 哔哩哔哩 订阅插件
使用前应该查阅的相关文档或项目
从 1.2.5 版本开始 将截图部分功能的转移至 mirai-selenium-plugin
截图功能的启用需要其作为前置插件
关于截图支持的环境请浏览 运行平台支持
直播 @全体成员 详见配置此设置 1.5.0 废除, 改用指令配置
自动触发URL解析 详见 信息解析 指令
消息 模板 详见配置(自 1.4.0 起截图功能由模板内容来配置)指令
注意: 使用前请确保可以 在聊天环境执行指令
带括号的/
前缀是可选的
<...>
中的是指令名,由空格隔开表示或,选择其中任一名称都可执行例如/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 B动态> <add 添加> [uid] [contact]?
添加一个b站动态订阅 /<bili-dynamic B动态> <stop 停止> [uid] [contact]?
停止一个b站动态订阅 /<bili-dynamic B动态> <time 定时> [uid] [cron]?
设置任务的定时信息 /<bili-dynamic B动态> <list 列表> [contact]?
列出当前联系人的动态订阅 /<bili-dynamic B动态> <forbid 屏蔽> [pattern] [add]?
添加一个动态正则屏蔽 /<bili-dynamic B动态> <sleep 休眠> [target] [start] [end]
添加一个休眠时间 /<bili-dynamic B动态> <at 艾特> [target] [start] [end]
添加一个艾特时间 /bili-dynamic forbid 转发抽奖
添加一个正则屏蔽
/bili-dynamic forbid 转发抽奖 false
取消一个正则屏蔽
/bili-dynamic filter 视频
添加一个动态类型过滤
/bili-dynamic filter 视频 false
取消一个动态类型过滤
type
取值回复, 图片, 文本, 视频, 专栏, 音乐, 剧集, 删除, 番剧, 电视, 直播
直播订阅指令
指令 描述 /<bili-live B直播> <add 添加> [uid] [contact]?
添加一个b站直播订阅 /<bili-live B直播> <stop 停止> [uid] [contact]?
停止一个b站直播订阅 /<bili-live B直播> <time 定时> [uid] [cron]?
设置任务的定时信息 /<bili-live B直播> <list 列表> [contact]?
列出当前联系人的直播订阅 /<bili-live B直播> <sleep 休眠> [target] [start] [end]
添加一个休眠时间 /<bili-live B直播> <at 艾特> [target] [start] [end]
添加一个艾特时间 视频订阅指令
指令 描述 /<bili-video B视频> <add 添加> [uid] [contact]?
添加一个b站视频订阅 /<bili-video B视频> <stop 停止> [uid] [contact]?
停止一个b站视频订阅 /<bili-video B视频> <time 定时> [uid] [cron]?
设置任务的定时信息 /<bili-video B视频> <list 列表> [contact]?
列出当前联系人的视频订阅 /<bili-video B视频> <forbid 屏蔽> [type] [add]?
添加一个视频类型屏蔽 /<bili-video B视频> <filter 过滤> [tid] [add]?
添加一个视频分区过滤 /<bili-video B视频> <sleep 休眠> [target] [start] [end]
添加一个休眠时间 /<bili-video B视频> <at 艾特> [target] [start] [end]
添加一个艾特时间 /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被锁定 动态订阅一般会包含视频内容,推荐以此代替
剧集订阅指令
指令 描述 /<bili-season B剧集> <add 添加> [sid] [contact]?
添加一个b站剧集订阅 /<bili-season B剧集> <stop 停止> [sid] [contact]?
停止一个b站剧集频订阅 /<bili-season B剧集> <time 定时> [uid] [cron]?
设置任务的定时信息 /<bili-season B剧集> <list 列表> [contact]?
列出当前联系人的剧集订阅 /<bili-season B剧集> <sleep 休眠> [target] [start] [end]
添加一个休眠时间 /<bili-season B剧集> <at 艾特> [target] [start] [end]
添加一个艾特时间 剧集订阅需要 Season ID 例如 https://www.bilibili.com/bangumi/play/ss38353 的
38353
可以通过 搜索指令 搜索番剧 获得链接信息解析指令
指令 描述 /<bili-info B信息> <aid> [id]
根据 avid 获取视频信息 /<bili-info B信息> <bvid> [id]
根据 bvid 获取视频信息 /<bili-info B信息> <dynamic> [id]
根据 id 获取动态信息 /<bili-info B信息> <live> [id]
根据 id 获取直播信息 /<bili-info B信息> <user> [id]
根据 id 获取用户信息 返回结果包含图片,需要在聊天环境执行指令
消息中包含BV12v411G7dP
av2
等等 id 信息时会自动触发解析
目前会触发的正则表达式// Video """(?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]+"""
搜索指令
指令 描述 /<bili-search B搜索> <user 用户> [keyword]
搜索用户 /<bili-search B搜索> <bangumi 番剧> [keyword]
搜索番剧 /<bili-search B搜索> <ft 影视> [keyword]
搜索影视 返回结果包含图片,需要在聊天环境执行指令
任务列表指令
指令 描述 /<bili-task B任务> <all>
全部任务 /<bili-task B任务> <dynamic>
动态任务 /<bili-task B任务> <live>
直播任务 /<bili-task B任务> <season>
剧集任务 /<bili-task B任务> <video>
视频任务 /<bili-task B任务> <config>
屏蔽设置 模板配置指令
指令 描述 /<bili-template B模板> <datetime> [pattern]
日期格式 /<bili-template B模板> <reload>
重新加载 pattern
的 取值为 DateTimeFormatter
举例:/B模板 datetime ISO_LOCAL_DATE_TIME
/B模板 datetime yyyy-MM-dd
设置
位于
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 网页识别设备类型,进而影响截图的效果
iPadMozilla/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
iPhoneMozilla/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
MacMozilla/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
Edge安装
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
TODO
- 完善剧集订阅
- 自动清理图片缓存
-
升级 mirai 至 2.14.0, 使用新的短信验证方法解决设备验证
这里使用的 mcl 版本是 2.1.2
打开 mcl 工作目录 下的 config.json
编辑packages
将
net.mamoe:mirai-console
,
net.mamoe:mirai-console-terminal
,
net.mamoe:mirai-core-all
中的channel
从stable
改为maven-stable
或者maven
maven-stable
将会更新到 最新标准版2.13.3
maven
将会更新到 最新测试版2.14.0-RC
例如
"net.mamoe:mirai-console": { "channel": "maven-stable", "version": "2.13.3", "type": "libs", "versionLocked": false },
然后使用
./mcl -u
启动
mcl 并触发更新./mcl -u
本身就是启动 mcl 的指令,不是启动 mcl 之后的再输入指令。即你应该启动一个
powershell
或者cmd
之类的终端,然后 使用./mcl -u
启动 mcl可以参考↓
https://wiki.mrxiaom.top/zh/mirai/troubleshoot这样 这样就能升级到具有短信验证的最新 mirai 版本了
目前最新版本是2.13.3
有短信验证版本是 从 2.13.0-RC 开始
包括2.13.0-RC
2.13.0-RC2
2.13.0
,2.13.1
,2.13.2
2.13.3
2.13.4
2.14.0-RC
2.14.0
2.13 之后的 版本关于 mirai-native 有兼容性问题,你可以尝试下载pr中的临时修复版
https://github.com/iTXTech/mirai-native/pull/173
另外,如果
org.itxtech:mcl-addon
一直卡住没升级到2.1.1
你可以尝试修改配置文件"org.itxtech:mcl-addon": { "channel": "maven-stable", "version": "2.1.1", "type": "plugins", "versionLocked": false }
注意这里需要先升级
mcl
版本到2.1.2
如果
maven.aliyun.com
报错,下载失败
可以执行下面这个编辑步骤
编辑maven_repo
加上https://repo.huaweicloud.com/repository/maven
"maven_repo": [ "https://repo.huaweicloud.com/repository/maven", "https://maven.aliyun.com/repository/public" ],
注意
LuckPerms-Mirai
需要 最新版 才适配2.14.0-RC
-
OpenAI ChatBot 插件,已添加预设功能(为啥你们都想整猫娘)
目前
实现了 OpenAI 中 提供的 Completion 和 Image Generation
详细文档请阅读 readme
https://github.com/cssxsh/mirai-openai-plugin#readme有功能BUG或者建议请开 issue
https://github.com/cssxsh/mirai-openai-plugin/issues -
Meme Helper 表情包生成器,游戏王,幻影坦克,支持Termux
更详细内容请阅读 https://github.com/cssxsh/meme-helper#readme
v1.1.4+ 版本已解决兼容性问题,不再需要额外配置
termux 和 windows 7 请看
https://github.com/cssxsh/mirai-skia-plugin/issues/2插件权限ID
xyz.cssxsh.mirai.plugin.meme-helper:*
,使用前授予权限插件依赖于 Mirai Skia Plugin (必要)
插件依赖于 Mirai Hibernate Plugin (不必要)目前插件开发处于实验性阶段
基本功能
PornHub
PornHub Login 生成
示例:
#ph Git Hub
PetPet
摸摸头生成
可以发送
图片
或者@某人
或者QQ号
确定卡片图片
示例:#pet @群主
,#pet 123456
Dear
狂亲表情包生成
可以发送
图片
或者@某人
或者QQ号
确定卡片图片
示例:#dear @群主
,#dear 123456
5000choyen
5000choyen 表情包生成
示例:
#choyen 我想吃 肯德基疯狂星期四套餐
zzkia
诺基亚短信 表情包生成
示例:
#pinyin 无内鬼,来点色图
游戏王
游戏王 表情包生成
可以发送图片
或者@某人
或者QQ号
确定卡片图片
可以使用xxx=yyy
, 指定属性,可选属性有:- 卡片名称:
name
- 怪兽属性:
attr
=dark, divine, earth, fire, light, spell, trap, water, wind
- 怪兽等级:
level
- 怪兽种族:
race
- 怪兽攻击:
atk
- 怪兽防御:
def
- 卡片版权:
copyright
示例:
#spell @Him188 Welcome PR 你可以PR
#trap @Him188 Useless PR 这个还是由我们自己实现
#monster @LaoLittle 援交JD 五元一次
随机表情包
随机表情包一张(通过 Mirai Hibernate Plugin 插件 从消息中收集得到)
示例:
#群友表情
Emoji合成
Google Emoji Kitchen,两个 emoji 合成 一个
示例:
😍+🥵
- 卡片名称:
-
天网开发组,非官方开发交流群
非官方的Mirai开发者交流群
天网开发组: 634148065加群问题请提交github id
例如:
https://github.com/cssxsh 的cssxsh
https://github.com/mzdluo123的mzdluo123
请使用自己的GitHub ID 不要填
cssxsh
、mzdluo123
另外还有个
QQ频道:https://qun.qq.com/qqweb/qunpro/share?_wv=3&_wwv=128&inviteCode=2bR5WD&from=246610&biz=ka
这频道没有限制,都可以加 -
切换类加载器,解决Java Services 加载问题(大概也能解决Spring的上下文问题)
val thread = Thread.currentThread() val oc = thread.contextClassLoader try { thread.contextClassLoader = XXXPlugin::class.java.classLoader // 需要切换上下文的代码 } finally { thread.contextClassLoader = oc }
-
NovelAi Helper AI图片生成, 可对接自建/colab在线运行的 Naifu api
NovelAi Helper
基于 NovelAi 的 AI图片生成插件
使用前应该查阅的相关文档或项目
会自动下载 EhTagTranslation 翻译词库
可以对接 NaiFu 本地搭建
或者你可以 利用 colab 进行在线搭建
将搭建得到的 url 例如https://express-disco-environmental-friends.trycloudflare.com/
填入config.yml
的naifu_api
配置项如果你是用 Stable Diffusion web UI 搭建的API 请移步 https://github.com/cssxsh/stable-diffusion-helper
指令
-
/nai <word>
生成一张图片 官方API需要登录
例如/nai 连裤袜 双马尾
(只有部分词条会自动翻译)
例如/nai swimsuit #seed=12346
(设置种子)
例如/nai swimsuit #steps=3
(AI迭代次数)
例如/nai "swimsuit, ahegao"
(如果需要以,
分割词条, 请用"
包裹)
例如/nai 连裤袜 [图片]
(以图生图,[图片]
是指指令消息中包含有图片)
可用的配置项有
seed
种子
steps
迭代次数
width
宽度
height
高度
scale
比例
sampler
采样器 可选值k_euler_ancestral
,k_euler
,k_lms
,plms
,ddim
strength
以图出图中对原图的更改程度 可选值 [0.00, 0.99]
noise
以图出图中的噪声 可选值 [0.00, 0.99] -
/nai-fu <word>
生成一张图片 自建API需要配置 naifu_api
对接naifu
,naifu
是基于 novelai 官方 web 端的修改版,所以指令用法 和nai
一致 -
/nai-login <mail> <password>
登录账号
例如/nai-login 114514@gmail.com 1919810
-
/nai-reload
重新载入config.yml
配置文件
配置
-
config.yml
配置文件 包括proxy
,doh
,ipv6
,naifu_api
等配置proxy
代理doh
DNSipv6
是否使用ipv6naifu_api
自建 naifu 地址command_interval
命令间隔延迟时间 单位毫秒
-
ban.txt
屏蔽的词条,可热编辑,保存后一段时间会自动启用
NaiFu
naifu
是基于 novelai 官方 web 端的修改版
相关信息可以看这 https://colab.research.google.com/drive/1_Ma71L6uGbtt6UQyA3FjqW2lcZ5Bjck-#scrollTo=KZ88G-iWCTs7TODO
- 更好的翻译
- 更多配置项
-
-
非官方交流频道
用户和开发者都可以加
点击链接加入QQ频道【天网开发组】:https://qun.qq.com/qqweb/qunpro/share?_wv=3&_wwv=128&inviteCode=2bR5WD&from=246610&biz=ka
-
Mirai New Bing
Mirai New Bing
基于 Mirai Console 的 New Bing Chat Bot 插件
效果
更多配置请阅读 https://github.com/cssxsh/mirai-new-bing
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue
有问题请开 issue安装
MCL 指令安装
请确认 mcl.jar 的版本是 2.1.0+
./mcl --update-package xyz.cssxsh.mirai:mirai-new-bing --channel maven-stable --type plugins
手动安装
爱发电
-
无法登录的临时处理方案
`Tips:
小贴士
第三方签名服务 的作用是
尽量避免code=45
的出现和减少消息风控fix-protocol-version 1.9.0+ 已经实现了第三方签名服务的对接
并且 mirai-console 和 mirai-core 都支持使用
使用方法详见 READMEmirai-login-solver-sakura
处理滑块及其他验证,服务器使用需要做一些配置
使用方法详见 README
09月24日
开始出现即使已经使用
签名服务
仍要求强制要求提升版本的情况,
code=45, title=禁止登录, message=登录失败,请前往QQ官网im.qq.com下载最新版QQ后重试,或通过问题反馈与我们联系。, errorInfo=)
。你可以尝试更换签名服务或者更新协议版本。
注意,
fix-protocol-version
插件更新协议的来源 protocol-versions,
其最新的协议版本是8.9.63
。
8.9.73
等版本在其PR中,有待验视合并,亦缺乏测试。
请自行斟酌是否下载使用。
08月10日
本次更新是作总结
-
目前登录的机制下需要 签名服务 用来应对
code=45
和 消息风控- 没有签名服务的情况下 Mirai 无法正常登录和使用
- Mirai 不会提供内置的签名服务,但提供了接入第三方服务的接口
- 已知的签名服务只支持
ANDROID_PHONE
/ANDROID_PAD
协议 - 登录协议的版本和签名服务器要相互匹配
-
对接签名服务 fix-protocol-version
- https://github.com/cssxsh/fix-protocol-version#mirai-console-使用方法
- https://github.com/cssxsh/fix-protocol-version#mirai-core-使用方法
- 第一次使用需要用户自行修改
KFCFactory.json
, 提供一个和登录版本相匹配的服务器配置 - 使用时出现协议问题请一并提交 签名服务的日志
- 如果觉得
fix-protocol-version
不便使用,论坛亦有其他对接签名服务的插件,自行搜索
-
处理滑块及其他验证 mirai-login-solver-sakura
- 滑块验证,短信验证 是否出现取决于服务器要求,一般出现于第一次登录或者登录缓存失效的情况下
- 滑块验证可能会连续要求多次验证,
- 完成了滑块验证还是出现
code=237
, 这可能是因为服务器认为本次验证可信度太低(可能是操作超时或被检测出环境有问题) - 迁移登录缓存(IP有变动)可能会导致缓存失效,出现需要重新验证的情况
下面的内容因管理不慎过于凌乱,仅作历史内容参阅
07月19日
https://github.com/cssxsh/fix-protocol-version/releases/tag/v1.9.8
加了点处理,避免自动登录失败把 mirai 关了原因可以看这个
https://github.com/mamoe/mirai/issues/2740
07月18日
https://github.com/cssxsh/fix-protocol-version/releases/tag/v1.9.7
修复 KFCFactory SPI 加载的问题
07月13日
关于
Request timeout
请看这个 https://github.com/fuqiuluo/unidbg-fetch-qsign/issues/120https://github.com/cssxsh/fix-protocol-version/releases/tag/v1.9.5
修复一些问题,并且把 RequestToken 设置为暂停
07月11日
mirai 2.15.0 正式版已发布 https://github.com/mamoe/mirai/releases/tag/v2.15.0
https://github.com/cssxsh/fix-protocol-version/releases/tag/v1.9.4
适配 mirai 2.15.0
可选第三方签名服务 (配置文件 KFCFactory.json)
https://github.com/fuqiuluo/unidbg-fetch-qsign
https://github.com/kiliokuara/magic-signer-guide
07月10日
https://github.com/cssxsh/fix-protocol-version/releases/tag/v1.9.3
适配 mirai 2.15.0-dev-105
可选第三方签名服务 (配置文件 KFCFactory.json)
https://github.com/fuqiuluo/unidbg-fetch-qsign
https://github.com/kiliokuara/magic-signer-guide
07月05日
https://github.com/cssxsh/fix-protocol-version/releases/tag/v1.8.5无法启动,已于 v1.8.6 修复
https://github.com/cssxsh/fix-protocol-version/releases/tag/v1.8.6
适配 mirai 2.15.0-dev-105 和 unidbg-fetch-qsign 1.1.3
unidbg-fetch-qsign 仍有问题没有修复,请谨慎使用
06月29日
unidbg-fetch-qsign 服务有 冻结/封号 风险,请自行斟酌是否使用
https://github.com/Mrs4s/go-cqhttp/discussions/2245
https://github.com/cssxsh/fix-protocol-version/releases/tag/unidbg-fetch-qsign
06月24日
8.8.88
遭到大规模风控,表现为code=40
/code=45
目前的情况
ANDROID_PHONE(8.9.58.11170)
,ANDROID_PAD(8.9.58.11170)
缺少 tlv544 和 sign
code=45
ANDROID(8.8.88)
,
被大规模检测
code=40
/code=45
ANDROID_WATCH
密码登录code=238
, 也就是被禁止密码登录
可以扫码登录,但扫码登录需要局域网
并且扫码登录之后有定期消息风控
06月23日
code=16
删掉bots/.../cache
code=235
删掉bots/.../device.json
老生常谈的问题为啥总有人重复问扫码登录(ANDROID_WATCH) 之后发不出消息是已知且目前无法解决的问题
不要再问怎么办了fix-protocol-version v1.8.3
只是修复了一些可能的问题,不清楚有没有影响开始严查
8.8.88
版本的登录了,祝各位好运
06月21日
v2.15.0-RC 已发布
你可以使用 mcl 更新到2.15.0-RC
了,参考 https://mirai.mamoe.net/topic/20612.15.0-RC
包含了2.15.0-dev-98
的更新内容
所以也可以配合 fix-protocol-version v1.8.0 以 8.8.88 版本协议进行登录如果你发现日志的 ANDROID_PAD 版本不是 8.8.88
那么可以尝试使用protocol sync ANDROID_PAD
同步协议内容
06月12日
- 添加 windows x86 支持
- 降低 linux glibc 版本需要至 2.23
你可以通过strings /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC_
查看你的linux系统支持那些版本
https://github.com/cssxsh/fix-protocol-version/actions/runs/5241043307https://github.com/cssxsh/fix-protocol-version/actions/runs/5241784161https://github.com/cssxsh/fix-protocol-version/actions/runs/5276674247
06月11日
fix-protocol-version v1.7.0
更新了,姑且加上解决code=45
需要的部分东西,目前配合 8.8.88 + 2.15.0-dev-98 可以登录使用方法:
到 https://github.com/cssxsh/fix-protocol-version/actions/runs/5233985323 下载整合包 console-runtime
使用登陆协议 ANDROID_PAD
06月10日
隔壁 8.8.88 协议版本 解决方法的原理是把协议回退到 没有
code=45
检查的版本
code=45
的原理是检查协议流程中的一些签名加密部分,mirai 目前没有实现,所以大概率报code=45
ANDROID_WATCH 能扫码登录的原理也是类似的,他根本不检查code=45
需要检查的东西,所以不会触发code=45
fix-protocol-version 只是修改协议的版本信息,并没有修改协议实现细节,所以他无法从根本上解决
code=45
只能用于处理code=235
,不要在TM问为什么 fix-protocol-version 为什么不能解决code=45
了,每次更新帖子都在强调,但是TM每次都还是有人问。姑且在 https://github.com/cssxsh/fix-protocol-version/releases/tag/v1.6.0 中加入
protocol sync <type>
命令用以同步协议
例如protocol sync ANDROID_PAD
可以将ANDROID_PAD
同步到 8.8.88
但是慎用,8.8.88 协议版本可能会让本来能正常登录的账号炸掉,
并且 8.8.88 可能会触发code=235
所以建议尝试的时候单独开一个实例。PS: 某人写的 6/3 的更新属实鸡肋, 风控严重的号无法解除45,不严重的号又不触发45,只有轻微风控的号才可能有用。
06月03日
据反馈,已在 2.15.0-M1 版本出现 code=45 依旧无法使用此方法登录。
originally posted at #2671
请尝试使用
60d360b
或之后的 snapshot 构建,并使用 ANDROID_PHONE 协议登录。针对
mirai-console
使用者(通过mirai-console-loader
或其他启动方式)以最新构建为例,访问 mirai snapshot 仓库,下载
mirai-core
,mirai-core-api
和mirai-core-utils
的版本为2.15.0-dev-97
的构建文件。- 访问 https://repo.mirai.mamoe.net/snapshots/net/mamoe/mirai-core-jvm/2.15.0-dev-97
下载mirai-core-jvm-2.15.0-dev-97.jar
- 访问 https://repo.mirai.mamoe.net/snapshots/net/mamoe/mirai-core-api-jvm/2.15.0-dev-97
下载mirai-core-api-jvm-2.15.0-dev-97.jar
- 访问 https://repo.mirai.mamoe.net/snapshots/net/mamoe/mirai-core-utils-jvm/2.15.0-dev-97
下载mirai-core-utils-jvm-2.15.0-dev-97.jar
- 访问 https://repo.mirai.mamoe.net/snapshots/net/mamoe/mirai-console/2.15.0-dev-97
下载mirai-console-2.15.0-dev-97-all.jar
下载好后,按照如下步骤操作:
- 首先删除 mirai-console 根目录下的
libs
目录的所有文件。 - 打开
config.json
,将net.mamoe:mirai-core-all
,net.mamoe:mirai-console-terminal
和net.mamoe:mirai-console
的版本改为2.15.0-M1
。 - 启动一次 mirai-console-loader,等待其下载库文件。
- 下载完成后(即已经出现 mirai 的 logo)立刻强制关闭 mirai-console-loader。
- 将在 snapshot 仓库下载好的 jar 放入
libs
目录中。 - 删除所有的
sha1
文件。 - 删除原先的
mirai-console-2.15.0-M1-all.jar
文件。 - 用任何压缩软件(如 Bandizip)打开原先的
mirai-core-all-2.15.0-M1-all.jar
,删除其中的net/mamoe/mirai
包文件夹。
操作完成后,
libs
中的内容应该和如下图片相同:- 删除
bots
下的登录缓存。 - 通过以下方式启动:
java -D"file.encoding=utf-8" -cp "./libs/*" net.mamoe.mirai.console.terminal.MiraiConsoleTerminalLoader
启动成功后尝试使用
ANDROID_PHONE
协议登录,其他协议与稳定版相同,仅更新了手机协议。注意:
- 每一个 snapshot 版本仅保留一个月,若发现此评论中的构建已被删除,请自动替换为最新构建的版本号。
- mirai 构建的文件没有签名校验,所以可以直接删除 jar 中的类。
- snapshot 构建没有依赖,所以借用原先包含依赖的
mirai-core-all
中的依赖。
针对基于
mirai-core
开发的开发者其他信息
mirai snapshot 构建仓库:https://repo.mirai.mamoe.net/
获取 dev 分支最新构建依赖版本号的方法:
05月03日
fix-protocol-version
已更新
https://github.com/cssxsh/fix-protocol-version/tree/v1.5.0
它现在也会在2.15+
下工作再次强调此次插件仅用于处理
code=235
问题
另外, 登录前请删掉(备份)bot/.../device.json
因为code=235
code=45
会拉黑设备信息
04月23日
有用户表示可用通过官方最新版安卓客户端登录挂机让
code=45
退化到code=235
目前的两套比较稳妥的解决方案
- 密码登录
mirai 2.14
+ fix-protocol-version 1.4.0 +ANDROID_PAD
- mirai-device-generator
- mirai-login-solver-sakura
登录前请删掉(备份)
bot/.../device.json
因为code=235
code=45
会拉黑设备信息
mirai-login-solver-sakura
在服务器使用请添加 jvm 参数-Dmirai.no-desktop=true
- 扫码登录
mirai 2.15
+mirai-console-dev-qrlogin
+ANDROID_WATCH
注意扫码登录只支持
ANDROID_WATCH
和MACOS
协议, 并且会少收到很多事件
目前2.15.0-M1
有 BUG,会导致IllegalProducerStateException
(修复没这么快,建议回退 2.14)另外直接使用
mirai-core 2.15
的开发者可以调用相关API扫码登录,不需要mirai-console-dev-qrlogin
mirai-console-dev-qrlogin
只是把相关API封装成 mirai-console 可用的命令再次声明,目前 mirai 只有
密码登录
和扫码登录
没有所谓的验证码登录
和短信登录
只有密码登录
中出现了验证码验证
和短信验证
至于出现什么验证是不可控的,取决于服务器的要求
他可能出现验证码验证
+短信验证
,也可能只出现短信验证
,也可能只出现验证码验证
还可能什么也不出现最近在更新 Mirai 的文档,有建议的可用来提一提
https://github.com/mamoe/mirai/pull/2639
04月15日
目前常见
code
的总结-
code=45
重度版本验证
目前无法处理 (PR 中有正在提交的解决方案,可自行关注)
ANDROID_PHONE
ANDROID_PAD
IPAD
MACOS
全部阵亡,都会有可能触发 -
code=235
轻度版本验证
升级至mirai 2.15
或者 (mirai 2.14
+ fix-protocol-version) 可以一定程度解决
注意要删除bots/.../device.json
文件,让其重新生成,不然仍有可能因device.json
被拉黑而触发 -
code=237
比较常见于滑块验证处理不慎
建议配合 mirai-login-solver-sakura 处理登录, 服务器使用方法请自行查阅其 readme -
code=238
出现于ANDROID_WATCH
协议
他会提示你必须走扫码登录,实际上就是禁止手表协议密码登录了
关于扫码登录,
ANDROID_WATCH
协议会要求在同一局域网。对于服务器来说,
你可以尝试搭建一个工具,让手机的流量
走服务器的网络
。这样就能模拟局域网的情况。fix-protocol-version 更新了新版本 v1.4.0
再次强调fix-protocol-version
而且只会在2.14
下工作
他本来就是临时性的修复,不能解决所有问题
真正的修复要等2.15
的发布
03月30日
QQ的登录方式只有三种
- 密码登录
- 扫码登录 (mirai 2.15 实现)
- 手机号登录 (未实现)
由于密码登录很容易被腾讯识别为疑似盗号之类的
比如因为服务器IP被检测为异地登陆
所以TX会要求滑块之类的人机验证
这是是TX要求,不是mirai故意要你滑块
所以不存在什么滑块登录
,只有密码登录
中出现了滑块验证
fix-protocol-version
而且只会在2.14
下工作(readme 明明说的很清楚是临时性修复)
而且只解决code=235
问题扫码登录只支持
ANDROID_WATCH
和MACOS
协议
扫码登录亦有扫码登录的风控
目前已知有ANDROID_WATCH
要求在同一网络(局域网)下扫码MACOS
报code=235
(这个要求最新的NT QQ
的版本信息,目前无法提供)
03月26日
mirai
2.15.0-M1 已推出,包含扫码登录功能,但还没有设计对应的登录指令
如果你在使用第三方插件体验扫码登录,出现问题请优先回复到第三方fix-protocol-version
只适用于2.14
下 处理各种协议的code=235
问题
03月12日
fix-protocol-version
于v1.2.0
更新了MACOS
协议
https://github.com/cssxsh/fix-protocol-version/releases/tag/v1.2.0
出现code=45
/code=238
问题的可以尝试切换到MACOS
协议
03月09日
出现
code=45
风控 意味着你的QQ被限制只能在最新版手Q上登录
此风控是针对ANDROID_PHONE
和ANDROID_PAD
的Mirai 目前支持的的登录方式只有
密码登录
(不叫滑块登录)
期间出现滑块验证
是正常情况(这是QQ要求的人机检测,无法避免)
45
/235
/237
/238
他们都是密码登录被风控导致的问题
(好好看日志就知道,它们都有一个前缀WrongPasswordException
)至于
扫码登录
他已经在日程中了
具体可以关注 https://github.com/mamoe/mirai/pull/2502
03月08日
出现了新的风控
code=238
(禁止密码登录,强制要求扫码或者短信)
此风控是针对ANDROID_WATCH
和MACOS
的临时修复插件 fix-protocol-version
此插件可以尝试用来解决ANDROID_PHONE
或者ANDROID_PAD
的code=235
风控
03月07日
以最近的情况来看,QQ在督促用户更新客户端
表现情况为code=235
关于对版本信息的更新已在日程中你可以使用 临时修复插件 fix-protocol-version
02月28日
QQ又加强了风控检测
code=45
属于更加严重的登录风控,建议使用手机客户端
挂一下机器人,最好能正常聊天之类的45
,235
,237
都属于登录风控
235
,237
是疑似有问题
45
是确定有问题你可以在以前没登录的电脑上
使用密码登录
试试看,也会有类似的提示code=6
是一定程度锁定了账号,例如,新注册的账号被要求先在手机客户端
上登陆
02月14日
若使用 mirai 版本低于 2.14.0,
在服务器上使用 mirai-login-solver-sakura 时需要 添加参数 jvm 参数-Dmirai.no-desktop=true
,
如果你使用 mcl 启动,你只需要编辑脚本mcl.cmd
或mcl
的内容, 在-jar
的前面加上-Dmirai.no-desktop=true
例如%JAVA_BINARY% -Dmirai.no-desktop=true -jar
若使用 mirai 2.14.0 及以上则不需要添加此参数PS: 只有本地局域网才能配合APP进行扫码
第三方登录器: https://github.com/MrXiaoM/Aoki
使用真实的设备信息生成device.json
可以在登录后将bots
文件夹导出,以供其他环境使用
与之相比 mirai-device-generator 是模拟生成登录风控 (
code=235
和code=237
) 不是单一因素导致的,亦不能靠单一手段直接100%
解决
包括的因素有- IP地址,一个IP地址登录过多的账号,
或者已经被腾讯拉黑
或者和你常用的IP差距过大,你比如本地登录在广州,又迁移到服务器登录在上海 - 登录尝试次数过多
- 长期没用使用安卓之类的官方客户端登录机器人账号 (别问,问就是腾讯想提高用户的客户端安装率)
02月12日
QQ最近加强了登录风控检测,
如果账号删除 cache 后,仍多次重复出现code=235
,code=237
那么你的账号很有可能被风控了,无法使用密码登录账号。有用户表示
ANDROID_WATCH
这个协议比较容易触发短信验证
还有用户表示可以尝试修改密码
之后重新尝试登录至于为什么很长一段时间都能很正常的登上,那是因为
第一次登录成功之后会有快速登录缓存,也就不会走密码登录流程
快速登录会有以下日志
I/Bot.12345: Saved account secrets to local cache for fast login.
但 02-10 上午,腾讯服务器大规模宕机,导致几乎所有人的登录缓存都失效了。目前最新的 mirai 版本为
2.14.0
01月20日
目前最新的登录修复版本为
2.14.0-RC
如果有以下登录问题net.mamoe.mirai.internal.utils.crypto.DecryptionFailedException...
code=6, title=登录失败, message=服务连接中,请稍后再试。(0x6)...
你可以尝试上升级到
2.14.0-RC
参考: https://mirai.mamoe.net/topic/1653最好使用 mirai-login-solver-sakura 完成登录验证
以上为 2023 年
12月18日
https://github.com/KasukuSakura/mirai-login-solver-sakura
TxCaptchaHelper 的 后继产品,另外的一整套验证处理工具,优化和方便处理各种验证码。出现
code=237, title=安全提醒, message=当前网络不稳定
错误
请尝试以下方法步骤解决- 删除
bots/.../
下全部文件 - 保持机器人账号手机端QQ登录
- 在手机端QQ
设置/账号安全/登陆设备管理
中将历史设备删除
10月26日
出现code=235, title=温馨提示, message=当前QQ版本 过低
错误
请尝试以下方法步骤解决- 升级到 2.13.0-RC(2) https://mirai.mamoe.net/topic/1653
- 修改登录协议. 自动登录默认的登陆协议是 ANDROID_PHONE, 可以改成 ANDROID_PAD
可以用指令/autoLogin setConfig 12345 protocol ANDROID_PAD
修改自动登录的协议
如果你是手动登录, 就附加协议参数/login 12345 xxxx ANDROID_PAD
除了ANDROID_PAD
协议之外MACOS
,IPAD
协议也是可用的 - 保持机器人账号手机端QQ登录
- 登录之后完成滑块,之后一般会弹设备验证或者短信验证
- 如果还是报版本过低,尝试删除
bots/.../device.json
,让mirai 重新生成 设备信息, 重启之后,重复步骤 4(想要生成更可靠的信息可以使用 mirai-device-generator ) - 补充说明, 手机端QQ
设置/账号安全/登陆设备管理
中有登录安全相关设置,可以调整之后再尝试
9月21日
可以尝试通过下面这个插件生成更可靠的设备信息,记得要先把旧的设备信息
device.json
删除
https://github.com/cssxsh/mirai-device-generatorMiraiAndroid 出现
设备授权获取失败
,可以尝试清除device.json
, 再重新尝试
9月8日
现在我也不知道什么情况了,反正MiraiAndroid导出的文件可能存在一些问题。建议还是通过滑动验证码登录
7月5日更新
滑动验证助手已经修复
以上为 2022 年
10-29
如果你正在使用苹果系列的手机,使用最原始的方法来解决滑动验证码
https://github.com/project-mirai/mirai-login-solver-selenium
https://docs.mirai.mamoe.net/mirai-login-solver-selenium/9月6日更新
滑行验证助手已失效,请使用MiraiAndroidhttps://install.appcenter.ms/users/mzdluo123/apps/miraiandroid/distribution_groups/release
8月3日更新
滑动验证助手(TxCaptchaHelper)新增高速下载地址https://install.appcenter.ms/users/mzdluo123/apps/txcaptchahelper/distribution_groups/public
7月3日更新
如果你在使用MiraiAndroid进行登录时也遇到了无限要求验证码的问题,请在菜单内重置设备文件或者清除应用数据
6月23日 更新
十分不建议在服务器上进行首次登录
6月22日更新
只要你遇到了各种导致你无法登录的奇奇怪怪的问题都可以按照下面的步骤来操作,以下操作无效请在下面回复,新开贴的不予回复
6月7日更新
Error(title=禁止登录, message=当前上网环境异常,请更换网络环境或在常用设备上登录或稍后再试。, errorInfo=)删除
device.json
, 对于mirai-console
位于bots/**/
内
6月6日更新
所有问题都能使用这个方式解决
先到这里下载MiraiAndroid https://github.com/mzdluo123/MiraiAndroid/releases/
下载之后安装到你的手机上,并且完成登录;登录方法在主屏幕右上角的自动登录里,登录过程中需要验证请在通知栏内点击通知完成验证
登录成功后到左边菜单内找到高级功能,选择你得账号之后导出设备文件(device.json)发送到电脑,并覆盖电脑版文件即可成功登陆
6月3日更新
无法进行设备锁验证的解决方案
临时解决方案: 把 UnsafeDevice 要求设备锁验证提供的链接中的verify
改成qrcode
即可得到一个二维码,使用手机qq扫描二维码完成设备锁验证
以上为 2021 年
无法进行滑动验证码验证的解决方案
请使用 https://github.com/mzdluo123/TxCaptchaHelper
项目来手动完成验证码,必须使用手机手动完成验证码的方法:
https://github.com/project-mirai/mirai-login-solver-selenium
https://docs.mirai.mamoe.net/mirai-login-solver-selenium/请注意,必须将手动完成教程里的方式添加 JVM 属性 mirai.slider.captcha.supported (添加参数 -Dmirai.slider.captcha.supported) ,然后将显示的网页url复制到手机完成操作```
code_text
-
-
简单的Rss订阅插件 已添加RssHub支持 番剧订阅Bt种子自动上传
Rss Helper
基于 Mirai Console 的RSS订阅插件
指令
注意: 使用前请确保可以 在聊天环境执行指令
带括号的/
前缀是可选的
<...>
中的是指令名,由空格隔开表示或,选择其中任一名称都可执行例如/rss add https://github.com/cssxsh.atom
[...]
表示参数,当[...]
后面带?
时表示参数可选
{...}
表示连续的多个参数 下列指令的 URL 参数可以使用 base64 编码 后的形式RssBaseCommand
指令 描述 /<rss> <add> [url]
添加一个订阅 /<rss> <list>
列出订阅列表 /<rss> <interval> [url] [duration]
设置订阅间隔, 单位分钟 /<rss> <stop> [url]
取消一个订阅 RssGithubCommand
指令 描述 /<rss-github> <releases> [owner] [repo]
添加一个Releases订阅 /<rss-github> <commits> [owner] [repo]
添加一个Commits订阅 /<rss-github> <tags> [owner] [repo]
添加一个Tags订阅 /<rss-github> <activity> [user]
添加一个Activity订阅 /<rss-github> <private> [user] [secret]
添加一个Private订阅 RssMikanCommand
指令 描述 /<rss-mikan mikan> <my> [token]
添加一个MyBangumi订阅 /<rss-mikan mikan> <classic>
添加一个Classic订阅 /<rss-mikan mikan> <bangumi> [id] [sub]?
添加一个Bangumi订阅 /<rss-mikan mikan> <search> [word]
添加一个Search订阅 指令基于 蜜柑计划
RssMoeCommand
指令 描述 /<rss-moe> <recent>
查看当季番剧TAG /<rss-moe> <search> [name]
搜索TAG /<rss-moe> <tags> {ids}
添加一个Tag订阅 指令基于 萌番组
RssTestCommand
指令 描述 /<rss-test> <build> [url]
测试一个订阅 /<rss-test> <ssl>
测试SSL /<rss-test> <clear>
清空种子文件 RssMiraiCommand
指令 描述 /<rss-mirai mirai> <category> [value]
添加标签订阅 /<rss-mirai mirai> <plugin>
添加插件发布订阅 /<rss-mirai mirai> <other>
添加其他项目发布订阅 RssHubCommand
指令 描述 /<rss-hub rsshub> <add>
交互添加RssHub订阅 交互过程举例
1748(1438159989) 23:29:58 /rsshub add QQBot(3337342367) 23:30:02 request returned 1899 routes QQBot(3337342367) 23:30:03 请输入路由名 1748(1438159989) 23:30:07 755 QQBot(3337342367) 23:30:07 (0, /755/user/:username) QQBot(3337342367) 23:30:08 /755/user/:username, 输入:username (置空可以输入#) 1748(1438159989) 23:30:21 akimoto-manatsu QQBot(3337342367) 23:30:26 1748 /rsshub add RSS订阅任务[秋元真夏(乃木坂46) - 755]已添加
配置文件
RssHubConfig.yml
可以配置rsshub的域名,即可以配置rsshub的源
此配置只对新的rsshub订阅订阅行为有效配置
RssHubConfig
- domain rsshub 服务器的域名,默认为官方的 rsshub.app
HttpClientConfig
- doh Dns Over Https Url (为空时关闭Doh,使用系统DNS since 1.0.0-dev-6)
- sni 需要移除 SNI HostName 的域名的正则表达式列表
- proxy 代理列表 host: proxy, host=127.0.0.1时是全局代理
- ipv6 doh 开启ipv6 支持 (since 1.0.3)
RssContentConfig
- limit 订阅内容输出到QQ消息的最大长度,超过则只会输出
内容过长
TODO
- 翻译功能
- 代理支持
- Doh支持
- 将Html转化为Mirai的MessageChain(主要目的是显示图片)
安装
MCL 指令安装
./mcl --update-package io.github.gnuf0rce:rss-helper --channel stable --type plugin
手动安装
- 运行 Mirai Console 生成
plugins
文件夹 - 从 Releases 下载
jar
并将其放入plugins
文件夹中
-
Arknights Helper / 明日方舟 助手,更新订阅的微博号配置项
Arknights Helper
基于 Mirai Console 的 明日方舟 助手插件
使用前应该查阅的相关文档或项目
Arknights Helper 在2.0版本进行了重构 需要重新配置订阅 详见 方舟蹲饼指令
注意: 使用前请确保可以 在聊天环境执行指令
带括号的/
前缀是可选的
<...>
中的是指令名,由空格隔开表示或,选择其中任一名称都可执行例如/抽卡 十连
[...]
表示参数,当[...]
后面带?
时表示参数可选
{...}
表示连续的多个参数本插件指令权限ID 格式为
xyz.cssxsh.mirai.plugin.arknights-helper:command.*
,*
是指令的第一指令名
例如/方舟公招 远程位 支援
的权限ID为xyz.cssxsh.mirai.plugin.arknights-helper:command.ark-recruit
助手抽卡指令
指令 描述 /<gacha 抽卡> <one 单抽> [times]?
单抽 times
次,默认为1/<gacha 抽卡> <one 十连> [times]?
十连 times
次,默认为1/<gacha 抽卡> <detail 详情>
查看卡池规则 /<gacha 抽卡> <set 设置> [name]
设置卡池为 name
, 默认为NORMAL
/<gacha 抽卡> <pool 卡池> [name] [set]? {rules}
设置卡池 name
的规则为rules
,当set
为true
时设置为当前卡池抽卡每一抽会消耗
600
合成玉,合成玉可以通过答题获得ArknightsGachaCommand 卡池规则
rules
参数格式rules
参数从第二行起,按行分割
每行格式为规则干员名|星级|other|...:概率
或者注释#...
星级用连续的*
表示,例如*****
表示五星干员,需要单行设置,设置的概率不包括已设置干员名
other表示剩余的其他干员
概率用小数表示,全部行的概率加起来的概率要为100%
,即1.00
例子/抽卡 卡池 限时寻访深悼 浊心斯卡蒂|凯尔希:0.014 赤冬:0.04 ******:0.006 *****:0.04 ****:0.48 other:0.42
助手答题指令
指令 描述 /<ark-mine 方舟挖矿 方舟答题> [type]?
机器人会提出一个问题 /<ark-question 方舟问题> <detail 详情> [name]
查看自定义问题的详情 /<ark-question 方舟问题> <list 列表>
列出已经设置的自定义问题 /<ark-question 方舟问题> <delete 删除>
删除指定问题 /<ark-question 方舟问题> <add 添加>
与机器人互动,输入条件,设置新问题 /<ark-question 方舟问题> <count 统计>
答题情况统计 - 回复选项序号
A~Z
,即算回答问题 type
是提问问题类型,默认为全部类型
可选值BUILDING
,PLAYER
,TALENT
,POSITION
,PROFESSION
,RARITY
,POWER
,ILLUST
,
VOICE
,SKILL
,STORY
,ENEMY
,WEEKLY
,MUSIC
,OTHER
- 回答了当前问题才会出现下一个问题
- 快速回答(规定时间的1/3内)会有相应奖励
- 群聊模式的其他群员亦可回答题目,但题目只能被回答一次,且其他人作为抢答者有相应奖励和惩罚
- 题目结构如下
[类型](得分) 问题 A. 选项 B. 选项 ...
助手公招指令
指令 描述 /<ark-recruit 方舟公招> {words}
查看关键词 words
的公招干员words
的数量为1~5
例如/方舟公招 远程位 支援
助手材料指令
指令 描述 /<ark-item 方舟材料> [name] [limit]? [now]?
查看材料的关卡掉落率 /<ark-stage 方舟关卡> [name] [limit]? [now]?
查看关卡的材料掉落率 /<ark-zone 方舟章节> [name] [limit]? [now]?
查看地图所有关卡的材料掉落率 limit
是显示前多少项查询结果now
是是否只显示当前开启关卡,默认为true
助手蹲饼指令
指令 描述 /<ark-guard 方舟蹲饼> <detail 详情>
查看蹲饼详情 /<ark-guard 方舟蹲饼> <blog 微博> [contact] {blogs}
设置微博蹲饼内容 /<ark-guard 方舟蹲饼> <video 视频> [contact] {videos}
设置视频蹲饼内容 /<ark-guard 方舟蹲饼> <announce 公告> [contact] {announces}
设置公告蹲饼内容 /<ark-guard 方舟蹲饼> <weekly 周常> [contact] {weeklies}
设置周常蹲饼内容 contact
为群号或Q号blogs
可选值为ARKNIGHTS
(官号),BYPRODUCT
(朝陇山),MOUNTEN
(一拾山),HISTORICUS
(泰拉记事社)
例如/方舟蹲饼 微博 123456 ARKNIGHTS MOUNTEN
, 就订阅了官方号和一拾山videos
可选值为ANIME
,MUSIC
,GAME
,ENTERTAINMENT
例如/方舟蹲饼 视频 123456 GAME MUSIC
, 就订阅了PV和音乐单曲announces
可选值为ANDROID
,IOS
,BILIBILI
例如/方舟蹲饼 公告 123456 ANDROID
, 就订阅了官服的公告weeklies
可选值为EVOLVE
,MATERIAL
,SPECIAL
例如/方舟蹲饼 周常 123456 EVOLVE MATERIAL
, 就订阅了物资筹备和芯片搜索
助手数据指令
指令 描述 /<ark-data 方舟数据> <clear 清理>
清理缓存 /<ark-data 方舟数据> <cron 定时>
重载定时设置 位于
Mirai-Console
运行目录下的config/xyz.cssxsh.mirai.plugin.arknights-helper
文件夹下的cron.json
文件助手表情指令
** 需要 Meme Helper 作为前置**
指令 描述 /<ark-face 方舟表情> <random 随机>
随机发送一个表情 /<ark-face 方舟表情> <detail 详情>
查看表情详情 配置文件
位于
Mirai-Console
运行目录下的config/xyz.cssxsh.mirai.plugin.arknights-helper
文件夹下的config
文件安装
MCL 指令安装
./mcl --update-package xyz.cssxsh:arknights-helper --channel maven-stable --type plugin
手动安装
TODO
- 配置问题类型出现的概率
- 记录答题正确率 21/06/10
- 关卡规划
- 周常提醒
- 游戏公告
数据来源
- 游戏数据 Kengxxiao/ArknightsGameData
- 掉落数据 企鹅物流数据统计
- 语音数据 PRTS WIKI
- 回复选项序号
-
Mirai Content Censor 群内容审核插件
Mirai Content Censor
基于 Mirai Console 和 百度AI内容审核 的自动禁言助手
本插件原命名
Mirai-AntiPorn-Plugin
设置
百度AI
使用前请根据 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
是否检查文本,默认 trueimage
是否检查图片,默认 falseaudio
是否检查语音,默认 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
文件夹中
TODO
- 配置禁言时间
- QPS延迟
- 视频内容审核
- 转发消息内容审核
-
Mirai Administrator 机器人管理插件,好友/群管理,黑名单,宵禁
Mirai Administrator
基于 Mirai Console 的 管理员 Bot 及其标准
使用前应该查阅的相关文档或项目
本插件实现的功能有:
- 联系人相关 自动审批,指令查看,用户留言
- 消息相关 发送消息,撤回消息
- 群管理相关 群消息审核,自动宵禁,自动清理不发言,禁言自动退群
本插件提供服务接口以供其他插件拓展功能
例如使用 Mirai Content Censor 依靠百度API审查群消息
例如使用 Mirai Authenticator 验证加群请求MCL 指令安装
请确认 mcl.jar 的版本是 2.1.0+
./mcl --update-package xyz.cssxsh.mirai:mirai-administrator --channel maven-stable --type plugin
指令
注意: 使用前请确保可以 在聊天环境执行指令
<...>
中的是指令名
[...]
表示参数,当[...]
后面带?
时表示参数可选本插件指令权限ID 格式为
xyz.cssxsh.mirai.plugin.mirai-administrator:command.*
,*
是指令的第一指令名
例如/send to 12345
的权限ID为xyz.cssxsh.mirai.plugin.mirai-administrator:command.send
对 机器人发送的联系人请求通知消息 回复同意
或不同意
或拉黑
即可处理
插件提供黑名单功能,使用指令/contact black u12345
, 即可拉黑用户,Bot将不响应用户动作(包括其他插件的功能)AdminContactCommand
Command Description /<contact> <delete> [contact]
删除联系人 /<contact> <handle> [id] [accept]? [black]?
处理联系人申请 /<contact> <request>
查看申请列表 /<contact> <black> {permitteeIds}
拉黑 /<contact> <white> {permitteeIds}
取消拉黑 /<contact> <backup>
触发备份功能 id
是 事件id 或 好友id 或 群idaccept
和black
参数为true
,yes
,enabled
,on
,1
时表示true
(不区分大小写)- 对 机器人发送的新联系人通知消息 回复
同意
或不同意
或拉黑
即可处理,详见 联系人审批配置 permitteeIds
是 权限系统的用户标识符,例如m12345.6789
, 可以提供多个 PermitteeId 一次性拉黑/取消拉黑- 黑名单通过
@EventHandler(priority = EventPriority.HIGH, concurrency = ConcurrencyKind.LOCKED)
拦截消息
AdminFriendCommand
Command Description /<friend> <list>
好友列表 /<friend> <delete> [friend]
删除好友 AdminGroupCommand
Command Description /<group> <list>
群列表 /<group> <member> [group]
群成员 /<group> <quit> [group]
退出群聊 /<group> <kick> [member] [reason]? [black]?
踢出群员 /<group> <nick> [member] [nick]
群昵称 /<group> <title> [member] [title]
群头衔 /<group> <mute> [member] [second]
禁言 /<group> <quiet> [group] [open]?
全体禁言 /<group> <admin> [member] [operation]?
设置管理员 /<group> <announce> [group]
设置公告 /<group> <rank> [group] {levels}
设置等级头衔 AdminRecallCommand
Command Description /<recall> [contact]?
撤回消息 - 不指定
contact
时,可以通过回复消息指定要撤销的消息,如果没有指定,将尝试撤销最后一条不是由指令发送者发送的消息 contact
是群员时,将尝试撤销这个群员的最后一条消息contact
是群或好友时,将尝试撤销bot的最后一条消息
AdminRegisteredCommand
Command Description /<registered>
查看已注册指令 /<reg>
查看已注册指令 AdminSendCommand
Command Description /<send> <groups> [bot]? [at]? [second]?
发送给所有群 /<send> <friends> [bot]? [second]?
发送给所有好友 /<send> <to> [contact] [at]?
发送给指定联系人 /<send> <nudge> [user]
戳一戳指定联系人 /<send> <log> {addresses}
备份日志到邮箱 bot
参数在命令行模式下需要指定at
参数为true
,yes
,enabled
,on
,1
时表示true
, 将附加一个Atsecond
参数为 延迟的秒数 例如/send groups 123456 false 10
addresses
参数为 邮箱地址
AdminTimerCommand
Command Description /<timer> <config>
显示当前设置 /<timer> <mute> [moment] [cron] [group]?
宵禁 /<timer> <cleaner> [day] [cron] [group]?
清理不发言 /<timer> <status> [cron] [bot]?
定时发送机器人状态 /<timer> <message> [cron] [target] [at]
定时发送消息 -
group
为 要操作的群,在群聊中可以不指定 -
cron
, 为 CRON 表达式, 由秒 分钟 小时 日 月 周
组成
例如0 0 1 * * ?
表示每天 01:00 执行一次,0 30 2 ? * 2-6
表示星期一至星期五 每天 02:30 执行一次
可以使用在线编辑器生成 https://www.bejson.com/othertools/cron/
为防止被 空格 分成多个参数,请使用"
包裹参数 -
moment
为 DURATION 表达式, 由PnDTnHnMn.nS
组成
例如P1DT2H3M4.5S
表示 一天二小时三分钟四点五秒,PT5H
表示 五小时 -
mute 指令,moment 小于
0
宵禁就会关闭
例如/timer mute PT5H "0 0 1 ? * 2-6"
, 将会在 星期一到星期五的凌晨01:00 禁言 5 小时
例如/timer mute PT0S "0 0 0 1 * ?"
, 将会 取消 禁言定时器 -
day 单位为天数的发言期限, 小于
0
宵禁就会关闭
例如/timer cleaner 365 "0 0 12 ? * 0"
, 将会 取消 禁言定时器
配置
联系人审批配置
AdminAutoApproverConfig.yml
禁言自动退群配置
AdminAutoQuitConfig.yml
mute_limit
大于这个设置秒数的禁言会触发自动退群
留言配置
AdminCommentConfig.yml
xyz.cssxsh.mirai.plugin.mirai-administrator:comment.include
作用: 拥有此权限的用户,可以给机器人留言
机器人上线消息配置
AdminOnlineMessageConfig.yml
xyz.cssxsh.mirai.plugin.mirai-administrator:online.include
作用: 拥有此权限的群,会发送上线通知
消息审查及机器人所有者
AdminSetting.yml
censor_types
可选值IMAGE, FLASH, SERVICE, APP, AUDIO, FORWARD, VIP, MARKET, MUSIC, POKE
- 正则词库, 须手动添加,将会加载 censor 文件夹中的 txt 文件,每一行对应一个正则匹配,会监听文件改动,无需重启
邮件配置
AdminMailConfig.yml
配置一些默认的发送对象admin.mail.properties
配置邮箱账号等
格式参考
mail.host=smtp.mail.qq.com mail.auth=true mail.user=xxx mail.password=*** mail.from=cssxsh@qq.com mail.store.protocol=smtp mail.transport.protocol=smtp # smtp mail.smtp.starttls.enable=true mail.smtp.auth=true mail.smtp.timeout=15000
QQ邮箱帮助: https://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
-
RE: Android版登录显示qq版本过低登录失败
你可以尝试如下几种方法
- 更新 mirai 至 2.13.0-RC https://mirai.mamoe.net/topic/1653
- 更换登录的协议
config/Console/AutoLogin.yml
- 删除
bots/..../device.json
让他重新生成
-
使用QQ截图无法显示的问题
使用qq截图时经常会出现无法显示的问题
原因是傻逼qq随机生成的文件名包含很多特殊符号例如👇
![B3Y%]3H6FPDJ3QI~%%_4@0F.png](/assets/uploads/files/1675753280156-b3y-3h6fpdj3qi-_4-0f.png)
B3Y%]3H6FPDJ3QI~%%_4@0F
你只需要手动改一下
![12345.png](/assets/uploads/files/1675753280156-b3y-3h6fpdj3qi-_4-0f.png)