标签 订阅管理 下的文章

多个机场配置

使用 Sparkle + 内置 Sub-Store 统一归纳整理分组多个机场节点

效果如图:

1.Sub-Store 配置

1.1 新建单条订阅

  • 名称:可以直接取机场名称
  • 来源:远程订阅
  • 链接:机场复制的订阅链接,直接复制 clash 订阅链接即可
  • 其他默认即可

将所需要统一管理的机场按步骤逐个添加

1.2 新建组合订阅

  • 名称: 随意,区分即可 如 ‘机场合集’

  • 手动选择需要纳入到合集的单条机场订阅

  • 忽略失败的远程订阅:禁用 或 启用 (无通知)

  • 节点操作:添加一个脚本操作 -> 选择类型为脚本 -> 粘贴以下内容 (目的是为每个节点后缀添加你的订阅名以区分节点归属于哪个机场)

    • // Example: // Script Operator // 1. backend version(>2.14.88): $server.name = $server.name+" - "+$server._subName
      $server.ecn = true $server['test-url'] = 'http://1.0.0.1/generate_204' 

1.3 复制并导入组合订阅

  • 点击你创建的组合订阅,复制通用订阅 或 Mihomo 类型订阅
  • 在订阅管理中导入你复制的订阅链接

到这一步为止,你就得到了一个包含所有组合订阅机场节点的本地订阅,但是由于没有进行统一分组以及标识,还需要进行下一步配置

2. 覆写配置

覆写 - > 右上角-> 新建 JavaScript 命名并粘贴以下 js 代码 。你可以自由修改并测试,下面的是我使用的分组策略

js 代码
// 这里的 main 函数会接收当前的配置(config),修改后返回
function main(config) {
  
  // 1. 定义我们需要的节点分组和对应的正则
  // 格式:[组名, 正则表达式, 图标(可选)]
  const regionFilters = [
    ['🇭🇰 香港节点', /(HK|Hong|Kong|香港|🇭🇰)/i],
    ['🇯🇵 日本节点', /(JP|Japan|日本|🇯🇵)/i],
    ['🇺🇸 美国节点', /(US|America|美国|🇺🇸)/i],
    ['🇸🇬 新加坡节点', /(SG|Singapore|新加坡|🇸🇬)/i],
    ['🇹🇼 台湾节点', /(TW|Taiwan|台湾|🇹🇼)/i],
    ['🇰🇷 韩国节点', /(KR|Korea|韩国|🇰🇷)/i]
  ];

  // 辅助函数:检查是否是垃圾节点(剩余流量、官网等)
  const isBadProxy = (name) => {
    return /剩余|到期|重置|官网|客户端|备用|过期|错误|流量|时间/i.test(name);
  };

  // 2. 准备分组的节点容器
  const groups = {
    '🇭🇰 香港节点': [],
    '🇯🇵 日本节点': [],
    '🇺🇸 美国节点': [],
    '🇸🇬 新加坡节点': [],
    '🇹🇼 台湾节点': [],
    '🇰🇷 韩国节点': [],
    '🌍 其他地区': [],
    '♻️ 自动选择': [] // 所有可用节点
  };

  // 3. 遍历现有节点,进行分类
  const proxies = config.proxies || [];
  
  proxies.forEach(proxy => {
    const name = proxy.name;
    
    // 过滤垃圾节点
    if (isBadProxy(name)) return;

    // 加入“自动选择”全集
    groups['♻️ 自动选择'].push(name);

    let matched = false;
    // 尝试匹配特定地区
    for (const [groupName, regex] of regionFilters) {
      if (regex.test(name)) {
        groups[groupName].push(name);
        matched = true;
        break; // 一个节点只归入一个主地区
      }
    }

    // 如果没匹配到任何主要国家,放入“其他地区”
    if (!matched) {
      groups['🌍 其他地区'].push(name);
    }
  });

  // 4. 定义新的策略组结构
  const newProxyGroups = [
    {
      name: '🚀 节点选择',
      type: 'select',
      proxies: [
        '♻️ 自动选择',
        '🇭🇰 香港节点',
        '🇯🇵 日本节点',
        '🇺🇸 美国节点',
        '🇸🇬 新加坡节点',
        '🇹🇼 台湾节点',
        '🇰🇷 韩国节点',
        '🌍 其他地区',
        'DIRECT'
      ]
    },
    {
      name: '♻️ 自动选择',
      type: 'url-test',
      url: 'http://www.gstatic.com/generate_204',
      interval: 300,
      tolerance: 50,
      proxies: groups['♻️ 自动选择'].length > 0 ? groups['♻️ 自动选择'] : ['DIRECT']
    },
    // 生成各个地区的 url-test 组
    ...regionFilters.map(([name]) => ({
      name: name,
      type: 'url-test',
      url: 'http://www.gstatic.com/generate_204',
      interval: 300,
      tolerance: 50,
      // 如果该地区没节点,回退到 DIRECT 防止报错
      proxies: groups[name].length > 0 ? groups[name] : ['DIRECT']
    })),
    {
      name: '🌍 其他地区',
      type: 'select', // 其他地区用手动选择比较好,因为可能包含不同国家
      proxies: groups['🌍 其他地区'].length > 0 ? groups['🌍 其他地区'] : ['DIRECT']
    },
    {
      name: '📲 电报消息',
      type: 'select',
      proxies: ['🚀 节点选择', '🇸🇬 新加坡节点', '🇭🇰 香港节点', '🇺🇸 美国节点']
    },
    {
      name: '🤖 OpenAI',
      type: 'select',
      proxies: ['🇺🇸 美国节点', '🇯🇵 日本节点', '🇸🇬 新加坡节点', '🚀 节点选择']
    },
    {
      name: '🐟 漏网之鱼',
      type: 'select',
      proxies: ['🚀 节点选择', 'DIRECT']
    }
  ];

  // 5. 定义规则集 (Rule Providers)
  const ruleProviders = {
    reject: {
      type: 'http',
      behavior: 'domain',
      url: 'https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt',
      path: './ruleset/reject.yaml',
      interval: 86400
    },
    icloud: {
      type: 'http',
      behavior: 'domain',
      url: 'https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/icloud.txt',
      path: './ruleset/icloud.yaml',
      interval: 86400
    },
    apple: {
      type: 'http',
      behavior: 'domain',
      url: 'https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/apple.txt',
      path: './ruleset/apple.yaml',
      interval: 86400
    },
    google: {
      type: 'http',
      behavior: 'domain',
      url: 'https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/google.txt',
      path: './ruleset/google.yaml',
      interval: 86400
    },
    proxy: {
      type: 'http',
      behavior: 'domain',
      url: 'https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt',
      path: './ruleset/proxy.yaml',
      interval: 86400
    },
    direct: {
      type: 'http',
      behavior: 'domain',
      url: 'https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt',
      path: './ruleset/direct.yaml',
      interval: 86400
    },
    private: {
      type: 'http',
      behavior: 'domain',
      url: 'https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/private.txt',
      path: './ruleset/private.yaml',
      interval: 86400
    },
    telegramcidr: {
      type: 'http',
      behavior: 'ipcidr',
      url: 'https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/telegramcidr.txt',
      path: './ruleset/telegramcidr.yaml',
      interval: 86400
    },
    cncidr: {
      type: 'http',
      behavior: 'ipcidr',
      url: 'https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/cncidr.txt',
      path: './ruleset/cncidr.yaml',
      interval: 86400
    },
    lancidr: {
      type: 'http',
      behavior: 'ipcidr',
      url: 'https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/lancidr.txt',
      path: './ruleset/lancidr.yaml',
      interval: 86400
    },
    applications: {
      type: 'http',
      behavior: 'classical',
      url: 'https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/applications.txt',
      path: './ruleset/applications.yaml',
      interval: 86400
    }
  };

  // 6. 定义规则 (Rules)
  const rules = [
    'DOMAIN-KEYWORD,augment,🇺🇸 美国节点',
    'RULE-SET,google,🇺🇸 美国节点',
    'DOMAIN-KEYWORD,google,🇺🇸 美国节点',
    'DOMAIN-KEYWORD,antigravity,🇺🇸 美国节点',
    'DOMAIN-SUFFIX,goog,🇺🇸 美国节点',
    'RULE-SET,applications,DIRECT',
    'DOMAIN,clash.razord.top,DIRECT',
    'RULE-SET,private,DIRECT',
    'RULE-SET,reject,REJECT',
    'RULE-SET,icloud,DIRECT',
    'RULE-SET,apple,DIRECT',
    'RULE-SET,proxy,🚀 节点选择',
    'DOMAIN-KEYWORD,github,🚀 节点选择',
    'RULE-SET,direct,DIRECT',
    'RULE-SET,telegramcidr,📲 电报消息',
    'GEOIP,LAN,DIRECT',
    'GEOIP,CN,DIRECT',
    'RULE-SET,lancidr,DIRECT',
    'RULE-SET,cncidr,DIRECT',
    'MATCH,🐟 漏网之鱼'
  ];

  // 7. 写入配置
  config['proxy-groups'] = newProxyGroups;
  config['rule-providers'] = ruleProviders;
  config['rules'] = rules;

  // 返回修改后的配置
  return config;
}

应用配置

  • 在你刚刚导入成功的组合订阅处,选择编辑信息,在覆写处选择你刚刚新建的覆写配置文件,保存。点击保存后正常来讲没有任何弹框提示,如果有那就是配置有问题。

到这里就配置完了,效果就是开头贴出的效果图,小白第一次写这种配置帖,请多担待。


📌 转载信息
转载时间:
2026/1/20 17:50:46

Prizrak-Box 是一个跨平台的轻量桌面客户端(Pandora-Box 的分支项目),适配 Mihomo 内核,支持多种代理协议、规则自动分组与 TUN 模式。

Prizrak-Box 在原 Pandora-Box 的基础上做了以下扩展:

1、改进了订阅页面的流量使用和订阅信息显示方式。原版是显示在顶部,只能显示当前使用订阅的信息。俄版将信息显示在每个卡片上,更直观和整体掌握订阅的流量使用情况。

流量使用和订阅信息显示方式

2、在设置页面添加了自定义控制面板。

自定义控制面板

3、软件背景可以自定义上传设置
自定义背景设置

4、针对macOS系统的软件安装包添加了签名,防止在软件安装时系统提示“软件已损坏”

5、软件详细使用如下,需要自行网页翻译
使用介绍

题外话:
这两个软件的作者有意思,软件名字起的都这么诡异。

“Pandora-Box”,是一个来自希腊神话的文化隐喻,意指一个看似无害但一旦开启就会释放出灾难和混乱的事物。

而 “Prizrak”(Призрак) 在俄语中通常翻译为“幽灵”、“鬼魂”或“幻影”。

他们似乎在说:富强需谨慎,自由非无界,探索亦有度

一键管理您的 Cursor IDE 账户、订阅和使用量

Auto Cursor - 专业的 Cursor IDE 管理工具
Auto Cursor - 专业的 Cursor IDE 管理工具1
注销账户:一键删除cursor账户;取消订阅:自动打开新窗口注入登录态跳转到取消订阅页面,需要手动点击取消;切换账号会自动重置机器id
支持自动注册-自动获取验证码-自动绑卡-绑卡后自动添加账号并获取 accessToken 和 WorkosCursorSessionToken(自动注册部分代码参考 cursor-free-vip

使用说明

1. 检查 Cursor 安装
应用启动时会自动检测系统中的 Cursor 编辑器安装。如果未检测到,会显示相应提示。

2. 选择备份文件
在主界面中,应用会列出所有可用的机器ID备份文件,包括:

  • 文件名
  • 创建日期
  • 文件大小

3. 预览机器ID
选择备份文件后,可以预览其中包含的机器ID信息:

  • telemetry.devDeviceId
  • telemetry.macMachineId
  • telemetry.machineId
  • telemetry.sqmId
  • storage.serviceMachineId

4. 确认恢复
确认要恢复的机器ID后,应用会:

  • 创建当前配置的备份
  • 更新 storage.json 文件
  • 更新 SQLite 数据库
  • 更新 machineId 文件
  • 更新系统级标识(如果有权限)
  • 5. 完成恢复
    恢复完成后,需要:
  • 关闭 Cursor 编辑器
  • 重新启动 Cursor 编辑器
  • 检查编辑器是否正常工作

安全说明

  • 应用只读取和修改 Cursor 相关的配置文件
  • 系统级操作需要相应权限
  • 所有操作前都会创建备份
  • 不会收集或上传任何用户数据

常见问题

Q: 为什么需要管理员权限?
A: 某些系统级ID更新(如Windows注册表、macOS系统配置)需要提升权限。

Q: 恢复失败怎么办?
A: 应用会显示详细的错误信息,并且已创建的备份可以用于手动恢复。

Q: 支持哪些备份文件格式?
A: 支持标准的 JSON 格式备份文件,文件名格式为 storage.json.bak.YYYYMMDD_HHMMSS。

仓库地址

[bsgit user="wuqi-y"]auto-cursor-releases[/bsgit]