MiaoKo 是一个自动化测试节点连通性的机器人,并会自动生成连通报告以方便使用者运维。
机器人使用方法
这里我会对机器人在 Telegram 中使用的方法进行说明:
你也可以直接对机器人发送 /help 指令来查看你能执行的指令(不同权限的用户获得的指令列表会有所差异)
公共指令
这里的指令所有人都能使用
/help
获取帮助菜单
/id
回复一个用户来查询 TA 的 Telegram 用户信息,包括 id、数据中心、语言信息等等
/version
查询机器人版本信息和编译序列号
/reportall <订阅ID>
获取某个订阅的在线/掉线节点列表。
⚠️ 注意:请先对订阅设置计划任务(/cron
)后再使用该指令,因为它会获取最近一次测试的结果。如果不设置计划任务,则 /reportall
的结果将没有参考价值(因为它你上次测试它很可能在几天甚至几个月以前)。
/reportonline <订阅ID>
同上,只是它只会返回在线的节点
/reportoffline <订阅ID>
同上,只是它只会返回掉线的节点
/stats <订阅ID>
它与 /reportall
类似,但是,它不止返回最近一次的测试结果,而是会生成一个节点稳定性的折线图。(它会读取[默认]近 120 此的测试数据并绘制图表,因此,如果没有设置计划任务(/cron
),该指令不会被允许调用。)
计划任务类指令
计划任务指令只能由管理、超级管理调用。
/cron <订阅ID> <Cron表达式>
为某个订阅设置计划任务,例如:每2分钟测试一次 mycloud 并写入历史记录:
/cron mycloud @every 2m
你也可以不加表达式来查询某个订阅的计划任务配置:
/cron mycloud
返回:✔ 当前配置: @every 2m
下次执行: 2022-03-20T23:57:32Z
/register <订阅ID> <私密等级>
既然设置了计划任务,当节点掉线/恢复时,MiaoKo 就能提醒你。在需要 MiaoKo 提醒的群发送这个指令就能设置掉线提醒。但如果这个群是公开群,你不想泄露掉线提醒中的 ip / 域名信息,就可以单独配置私密等级。默认的等级是 0,意味着隐藏 2 级域名:"www.*.com"
。如果没有你设置了 1
,则会显示: "*.*.com"
以此类推。如果你设置了 -1
,则会取消私密展示:"www.mycloud.com"
。
/registered
查询当前群注册的所有消息提示
/notify <订阅ID>
与 /registered
类似,但是从另一个纬度:这条指令查询的是某个订阅在哪些群被订阅了。
/unregister <订阅ID> <群组ID>
取消一个群中某个订阅的掉线提醒。如果不加群组 ID,则会取消当前群的掉线提醒。
/mute <订阅ID> <持续时间(秒)>
如果你正在调试节点,导致节点频繁掉线,掉线提醒炸群。但你又不想 /unregister
所有关联的群。你可以用 /mute
把某个订阅的掉线提醒暂时关闭(但需要注意的是,/cron
并没有被暂停,它的掉线历史依然会被记录)。
指令参数
在调用这些自定义指令时,您还可以添加如下参数:
<正则表达式>: 指 Regular Expression,是编程中常用的字符串查询方法。例如:香港|日本
代表所有包含香港或者日本的节点。由于 MiaoKo 的所有输入不识别空格,你可以通过这种方式过滤带有空格的节点:美国\s0[0-6]
代表 美国 01
- 美国 06
。
</cmd:A=B>: 这是 MiaoKo 特有的附加参数。可以拓展这次测试的信息。例如,你想用在后端ID为 guangzhou
的机器上运行美国节点的测速,你可以这样写:
/speed:slave=guangzhou mycloud 美国
⚠️ 注意,:A=B 指令一定是紧贴着命令的(不能有空格)。
所有金刚都支持 :A=B 指令,目前支持的指令为:
:slave=<后端ID>
指定后端进行测试:slavegroup=<后端组别ID>
指定后端组进行负载均衡测试:slavejoint=<后端组别ID>
指定后端组进行多后端联测(废弃):sort=<排序规则>
可选值:name|ping|avgspeed|maxspeed|original
指令派生
自定义指令中,所有指令又能增加 (/xxx)url 与 (/xxx)x 的后缀。前者表示临时测试,而后者代表实时测试(需要注意,实时测试必须在 Matrix 中携带 测速(SPEED) 相关指令才会被允许)
例如:
-
/ping
的派生指令为/pingurl
(由于系统自带的 ping 并不包含测速,因此不能使用 /pingx) -
/test
的派生指令为/testurl
-
/speed
的派生指令为/speedurl
和/speedx
-
/analyze
的派生指令为/analyze
/invite<:A=B>
回复一个用户来邀请他进行一次 /testurl
/speedurl
或 /analyzeurl
。如果邀请人是超级管理,则还可以邀请对方 /new
。所有交互过程都在私聊中,因此不用担心订阅外泄。
订阅相关指令
这些指令都是超级管理的指令
/ignore <订阅ID> <正则表达式>
忽略某个订阅中指定节点的连通性测试,例如:
/ignore mycloud 流量|官网
这样,所有节点名称包含 "流量" "官网" 字样的节点都不会参与 自定义指令 的任务流程,被排除在外。
如果你不传任何表达式,则默认表示列出所有表达式,来方便你 /unignore
。
/unignore <订阅ID> <正则表达式>
同理,你可以恢复被你忽略的表达式。
/new <订阅ID> <订阅链接>
通过这种方式来新增订阅到订阅列表 /new mycloud https://mycloud.com/clash/ewerioweoi3
/remove <订阅ID>
同样,你也可以删除某个订阅,例如:/remove mycloud
/list
列出所有写在 config.yaml
文件中的 订阅ID
/prune
扫描所有在 config.yaml
文件中的订阅。把那些联不通的(过期的)订阅找出来。