面向海外产品的OPC如何将域名添加带代理
/**
* 综合分流规则脚本
* - 域名分流 (DOMAIN/DOMAIN-SUFFIX)
* - 多节点配置
*/
// ====================== 域名分流配置 ======================
const domainRules = [
// ChatGPT 相关 - 走 AInode 专用节点
"DOMAIN-SUFFIX,openai.com,AInode",
"DOMAIN-SUFFIX,chatgpt.com,AInode",
"DOMAIN,letai.run,AInode",
"DOMAIN,api.letai.run,AInode"
];
// ====================== 代理组配置 ======================
const proxyGroups = [
{
name: "AInode",
type: "select",
proxies: ['US7-HY2','u9un-v2-US-LosAngeles4'], // 您的实际 AI节点 节点名称
interval: 600,
url: "https://www.google.com/generate_204",
lazy: true,
icon: "https://fastly.jsdelivr.net/gh/clash-verge-rev/clash-verge-rev.github.io@main/docs/assets/icons/us.svg"
}
];
// ====================== 程序入口 ======================
function main(config) {
const proxyCount = config?.proxies?.length ?? 0;
const proxyProviderCount = typeof config?.["proxy-providers"] === "object" ?
Object.keys(config["proxy-providers"]).length : 0;
if (proxyCount === 0 && proxyProviderCount === 0) {
console.warn("警告:配置文件中未找到任何代理节点");
}
if (!config["proxy-groups"]) {
config["proxy-groups"] = [];
}
// 合并自定义代理组
proxyGroups.forEach(newGroup => {
const existingIndex = config["proxy-groups"].findIndex(group => group.name === newGroup.name);
if (existingIndex === -1) {
config["proxy-groups"].push(newGroup);
} else {
config["proxy-groups"][existingIndex] = {
...config["proxy-groups"][existingIndex],
...newGroup
};
}
});
// 合并所有规则(优先级从高到低)
const allRules = [
// 应用规则(最高优先级)
// 域名规则
...domainRules
];
// 确保 rules 存在
if (!config["rules"]) {
config["rules"] = [];
}
return config;
}