MiSub 的核心灵魂在于其强大的节点处理引擎。从 v2.5.0 版本开始,我们引入了操作符链 (Operator Chain) 架构,将节点转换逻辑从硬编码升级为高度可定制的流式管道。
操作符链类似于工业生产流水线。每一个“操作符 (Operator)”都是一个独立的加工工序:
- 输入:原始节点列表(来自机场订阅或手动输入)。
- 加工:按照您设定的顺序,依次执行过滤、重命名、排序等操作。
- 输出:最终生成的、符合您需求的干净节点列表。
Tip
继承机制:在“订阅组”中,如果您不配置任何操作符,系统将自动使用“全局设置”中的默认链。如果您在订阅组中单独配置,则会完全覆盖全局设置。
通过多种维度精准控制节点的去留。
- 协议限制:仅保留 vless, hysteria2 等特定协议。
- 地区限制:通过内置算法识别香港、日本等常用地区。
- 包含/排除正则:使用正则表达式匹配节点名称。
- 脚本过滤:支持自定义逻辑。
- 精简模式:自动剔除已过期的、流量超限的或名称中含有“流量额度”等无效节点。
重塑节点名称,使其在客户端中整齐划一。
- 正则替换:将
香港 01替换为HK-01。 - 模板重写:支持占位符,如
{emoji}{region}-{protocol}-{index}。{emoji}: 自动添加国旗。{regionZh}: 中文地区名。{index}: 自动递增序列号。
定义节点的优先级。可以添加多个排序条件(Weight),按照先后顺序作为主次关键字。
- 常用排序:按地区升序 -> 按协议升序 -> 按名称升序。
基于服务器地址和端口的指纹识别,自动合并多份订阅中重复的节点,保持列表清爽。
如果您有极特殊的转换需求,脚本操作符允许您编写 JavaScript 代码。
运行环境变量:
$nodes: 当前节点对象数组。$context: 运行时上下文(包括用户信息、目标客户端等)。$utils: 辅助函数库(如格式化、地区编码转换)。
代码示例:
// 为所有日本节点添加后缀
return ($nodes) => {
return $nodes.map(node => {
if (node.name.includes("日本")) {
node.name += " [速度极快]";
}
return node;
});
}Q: 我应该把操作符放在全局还是订阅组? A: 如果大部分机场的处理方案一致,建议放在“全部设置”。对于特殊的“直连组”或“流媒体专线”,可以在订阅组中单独定制。
Q: 操作符的执行顺序有影响吗?
A: 非常有影响! 通常建议的顺序是:
去重 (Dedup) -> 过滤 (Filter) -> 重命名 (Rename) -> 排序 (Sort)。
先过滤掉不需要的节点,再对剩下的节点进行重命名和排序,效率最高。