更新_worker.js,优化订阅链接处理逻辑,添加去重功能并调整换行符处理

This commit is contained in:
cmliu
2025-04-26 23:43:55 +08:00
parent 9c78b5652d
commit 057ff53721

View File

@@ -14,13 +14,7 @@ let timestamp = 4102329600000;//2099-12-31
//节点链接 + 订阅链接
let MainData = `
https://raw.githubusercontent.com/mfuu/v2ray/master/v2ray
https://raw.githubusercontent.com/peasoft/NoMoreWalls/master/list_raw.txt
https://raw.githubusercontent.com/ermaozi/get_subscribe/main/subscribe/v2ray.txt
https://raw.githubusercontent.com/aiboboxx/v2rayfree/main/v2
https://raw.githubusercontent.com/mahdibland/SSAggregator/master/sub/airport_sub_merge.txt
https://raw.githubusercontent.com/mahdibland/SSAggregator/master/sub/sub_merge.txt
https://raw.githubusercontent.com/Pawdroid/Free-servers/refs/heads/main/sub
`
`;
let urls = [];
let subConverter = "SUBAPI.cmliussss.net"; //在线订阅转换后端目前使用CM的订阅转换功能。支持自建psub 可自行搭建https://github.com/bulianglin/psub
@@ -126,10 +120,13 @@ export default {
else if (url.searchParams.has('quanx')) 追加UA = 'Quantumult%20X';
else if (url.searchParams.has('loon')) 追加UA = 'Loon';
const 请求订阅响应内容 = await getSUB(urls, request, 追加UA, userAgentHeader);
console.log(请求订阅响应内容);
req_data += 请求订阅响应内容[0].join('\n');
订阅转换URL += "|" + 请求订阅响应内容[1];
const 订阅链接数组 = [...new Set(urls)].filter(item => item?.trim?.()); // 去重
if (订阅链接数组.length > 0) {
const 请求订阅响应内容 = await getSUB(订阅链接数组, request, 追加UA, userAgentHeader);
console.log(请求订阅响应内容);
req_data += 请求订阅响应内容[0].join('\n');
订阅转换URL += "|" + 请求订阅响应内容[1];
}
if (env.WARP) 订阅转换URL += "|" + (await ADD(env.WARP)).join("|");
//修复中文错误
@@ -168,7 +165,7 @@ export default {
return base64.slice(0, base64.length - padding) + '=='.slice(0, padding);
}
base64Data = encodeBase64(result.replace(/\u0026/g, '&'))
base64Data = encodeBase64(result)
}
if (订阅格式 == 'base64' || token == fakeToken) {
@@ -229,11 +226,11 @@ export default {
};
async function ADD(envadd) {
var addtext = envadd.replace(/[ "'|\r\n]+/g, ',').replace(/,+/g, ','); // 将空格、双引号、单引号和换行符替换为逗号
var addtext = envadd.replace(/[ "'|\r\n]+/g, '\n').replace(/\n+/g, '\n'); // 替换为换行
//console.log(addtext);
if (addtext.charAt(0) == ',') addtext = addtext.slice(1);
if (addtext.charAt(addtext.length - 1) == ',') addtext = addtext.slice(0, addtext.length - 1);
const add = addtext.split(',');
if (addtext.charAt(0) == '\n') addtext = addtext.slice(1);
if (addtext.charAt(addtext.length - 1) == '\n') addtext = addtext.slice(0, addtext.length - 1);
const add = addtext.split('\n');
//console.log(add);
return add;
}