Skip to content

Latest commit

 

History

History
78 lines (58 loc) · 3.2 KB

File metadata and controls

78 lines (58 loc) · 3.2 KB

MiSub 操作符链 (Operator Chain) 完全指南

MiSub 的核心灵魂在于其强大的节点处理引擎。从 v2.5.0 版本开始,我们引入了操作符链 (Operator Chain) 架构,将节点转换逻辑从硬编码升级为高度可定制的流式管道。


1. 核心概念:什么是操作符链?

操作符链类似于工业生产流水线。每一个“操作符 (Operator)”都是一个独立的加工工序:

  1. 输入:原始节点列表(来自机场订阅或手动输入)。
  2. 加工:按照您设定的顺序,依次执行过滤、重命名、排序等操作。
  3. 输出:最终生成的、符合您需求的干净节点列表。

Tip

继承机制:在“订阅组”中,如果您不配置任何操作符,系统将自动使用“全局设置”中的默认链。如果您在订阅组中单独配置,则会完全覆盖全局设置。


2. 内置操作符详解

🛒 过滤节点 (Filter)

通过多种维度精准控制节点的去留。

  • 协议限制:仅保留 vless, hysteria2 等特定协议。
  • 地区限制:通过内置算法识别香港、日本等常用地区。
  • 包含/排除正则:使用正则表达式匹配节点名称。
  • 脚本过滤:支持自定义逻辑。
  • 精简模式:自动剔除已过期的、流量超限的或名称中含有“流量额度”等无效节点。

🏷️ 节点重命名 (Rename)

重塑节点名称,使其在客户端中整齐划一。

  • 正则替换:将 香港 01 替换为 HK-01
  • 模板重写:支持占位符,如 {emoji}{region}-{protocol}-{index}
    • {emoji}: 自动添加国旗。
    • {regionZh}: 中文地区名。
    • {index}: 自动递增序列号。

🔢 节点排序 (Sort)

定义节点的优先级。可以添加多个排序条件(Weight),按照先后顺序作为主次关键字。

  • 常用排序:按地区升序 -> 按协议升序 -> 按名称升序。

🧹 智能去重 (Dedup)

基于服务器地址和端口的指纹识别,自动合并多份订阅中重复的节点,保持列表清爽。


3. 🛡️ 脚本操作符 (Script) —— 终极定制

如果您有极特殊的转换需求,脚本操作符允许您编写 JavaScript 代码。

运行环境变量:

  • $nodes: 当前节点对象数组。
  • $context: 运行时上下文(包括用户信息、目标客户端等)。
  • $utils: 辅助函数库(如格式化、地区编码转换)。

代码示例:

// 为所有日本节点添加后缀
return ($nodes) => {
  return $nodes.map(node => {
    if (node.name.includes("日本")) {
      node.name += " [速度极快]";
    }
    return node;
  });
}

4. 常见问题 (FAQ)

Q: 我应该把操作符放在全局还是订阅组? A: 如果大部分机场的处理方案一致,建议放在“全部设置”。对于特殊的“直连组”或“流媒体专线”,可以在订阅组中单独定制。

Q: 操作符的执行顺序有影响吗? A: 非常有影响! 通常建议的顺序是: 去重 (Dedup) -> 过滤 (Filter) -> 重命名 (Rename) -> 排序 (Sort)。 先过滤掉不需要的节点,再对剩下的节点进行重命名和排序,效率最高。