mirror of
https://github.com/KOP-XIAO/QuantumultX.git
synced 2026-01-25 21:25:09 +00:00
support domain-set type rule
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
☑️ 资源解析器 ©𝐒𝐡𝐚𝐰𝐧 ⟦2020-08-19 17:59⟧
|
☑️ 资源解析器 ©𝐒𝐡𝐚𝐰𝐧 ⟦2020-08-19 22:29⟧
|
||||||
----------------------------------------------------------
|
----------------------------------------------------------
|
||||||
🛠 发现 𝐁𝐔𝐆 请反馈: @Shawn_KOP_bot
|
🛠 发现 𝐁𝐔𝐆 请反馈: @Shawn_KOP_bot
|
||||||
⛳️ 关注 🆃🅶 相关频道: https://t.me/QuanX_API
|
⛳️ 关注 🆃🅶 相关频道: https://t.me/QuanX_API
|
||||||
@@ -270,7 +270,8 @@ function RegCheck(total, typen, regpara) {
|
|||||||
//判断订阅类型
|
//判断订阅类型
|
||||||
function Type_Check(subs) {
|
function Type_Check(subs) {
|
||||||
var type = "unknown"
|
var type = "unknown"
|
||||||
var RuleK = ["host", "domain", "ip-cidr", "geoip", "user-agent", "ip6-cidr"];
|
var RuleK = ["host,", "-suffix,", "domain,", "ip-cidr,", "geoip,", "user-agent,", "ip6-cidr,"];
|
||||||
|
var DomainK = ["domain-set,"]
|
||||||
var QuanXK = ["shadowsocks=", "trojan=", "vmess=", "http="];
|
var QuanXK = ["shadowsocks=", "trojan=", "vmess=", "http="];
|
||||||
var SurgeK = ["=ss,", "=vmess,", "=trojan,", "=http,", "=custom,", "=https,", "=shadowsocks", "=shadowsocksr"];
|
var SurgeK = ["=ss,", "=vmess,", "=trojan,", "=http,", "=custom,", "=https,", "=shadowsocks", "=shadowsocksr"];
|
||||||
var SubK = ["dm1lc3M", "c3NyOi8v", "dHJvamFu", "c3M6Ly", "c3NkOi8v"];
|
var SubK = ["dm1lc3M", "c3NyOi8v", "dHJvamFu", "c3M6Ly", "c3NkOi8v"];
|
||||||
@@ -278,7 +279,7 @@ function Type_Check(subs) {
|
|||||||
var SubK2 = ["ss://", "vmess://", "ssr://", "trojan://", "ssd://"];
|
var SubK2 = ["ss://", "vmess://", "ssr://", "trojan://", "ssd://"];
|
||||||
var html = "DOCTYPE html"
|
var html = "DOCTYPE html"
|
||||||
var subi = subs.replace(/ /g, "")
|
var subi = subs.replace(/ /g, "")
|
||||||
const RuleCheck = (item) => subs.toLowerCase().indexOf(item) != -1;
|
const RuleCheck = (item) => subi.toLowerCase().indexOf(item) != -1;
|
||||||
const NodeCheck = (item) => subi.toLowerCase().indexOf(item.toLowerCase()) != -1;
|
const NodeCheck = (item) => subi.toLowerCase().indexOf(item.toLowerCase()) != -1;
|
||||||
const RewriteCheck = (item) => subs.indexOf(item) != -1;
|
const RewriteCheck = (item) => subs.indexOf(item) != -1;
|
||||||
var subsn = subs.split("\n")
|
var subsn = subs.split("\n")
|
||||||
@@ -301,6 +302,9 @@ function Type_Check(subs) {
|
|||||||
type = "rewrite"
|
type = "rewrite"
|
||||||
} else if (RuleK.some(RuleCheck) && subs.indexOf(html) == -1) {
|
} else if (RuleK.some(RuleCheck) && subs.indexOf(html) == -1) {
|
||||||
type = "Rule";
|
type = "Rule";
|
||||||
|
} else if (DomainK.some(RuleCheck)) {
|
||||||
|
type = "Rule";
|
||||||
|
content0 = Domain2Rule(content0) // 转换 domain-set
|
||||||
}
|
}
|
||||||
return type
|
return type
|
||||||
}
|
}
|
||||||
@@ -632,6 +636,25 @@ function Rule_Policy(content) { //增加、替换 policy
|
|||||||
} else { return "" }//if RuleK1 check
|
} else { return "" }//if RuleK1 check
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Domain-Set
|
||||||
|
function Domain2Rule(content) {
|
||||||
|
var cnt = content.split("\n");
|
||||||
|
var RuleK = ["//", "#", ";"]
|
||||||
|
var nlist = []
|
||||||
|
for (var i = 0; i< cnt.length; i++) {
|
||||||
|
cc = cnt[i].trim();
|
||||||
|
const RuleCheck = (item) => cc.indexOf(item) != -1; //无视注释行
|
||||||
|
if(!RuleK.some(RuleCheck) && cc) {
|
||||||
|
if (cc[0] == "."){
|
||||||
|
nlist.push("host-suffix, " + cc.slice(1 , cc.length) )
|
||||||
|
} else {
|
||||||
|
nlist.push("host, " + cc )
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nlist.join("\n")
|
||||||
|
}
|
||||||
|
|
||||||
// 正则替换 filter/rewrite 的部分
|
// 正则替换 filter/rewrite 的部分
|
||||||
// 用途:如 tiktok 换区: JP -> KR ,如淘宝比价脚本 -> lite 横幅通知版本
|
// 用途:如 tiktok 换区: JP -> KR ,如淘宝比价脚本 -> lite 横幅通知版本
|
||||||
function ReplaceReg(cnt, para) {
|
function ReplaceReg(cnt, para) {
|
||||||
|
|||||||
Reference in New Issue
Block a user