优化类型判断逻辑

This commit is contained in:
Shawn
2022-07-22 15:24:07 +08:00
parent 99fb5e337b
commit 458c73f65f

View File

@@ -1,5 +1,5 @@
/** /**
☑️ 资源解析器 ©𝐒𝐡𝐚𝐰𝐧 ⟦2022-07-21 15:30⟧ ☑️ 资源解析器 ©𝐒𝐡𝐚𝐰𝐧 ⟦2022-07-22 15:20⟧
---------------------------------------------------------- ----------------------------------------------------------
🛠 发现 𝐁𝐔𝐆 请反馈: https://t.me/Shawn_Parser_Bot 🛠 发现 𝐁𝐔𝐆 请反馈: https://t.me/Shawn_Parser_Bot
⛳️ 关注 🆃🅶 相关频道: https://t.me/QuanX_API ⛳️ 关注 🆃🅶 相关频道: https://t.me/QuanX_API
@@ -577,7 +577,7 @@ function Type_Check(subs) {
} else if ( (((ModuleK.some(RewriteCheck) || para1.indexOf("dst=rewrite") != -1) && (para1.indexOf("dst=filter") == -1) && subs.indexOf("[Proxy]") == -1) || typeU == "module") && typeU != "nodes" && typeU != "rule" && typeQ !="filter") { // Surge 类型 module /rule-set(含url-regex) 类型 } else if ( (((ModuleK.some(RewriteCheck) || para1.indexOf("dst=rewrite") != -1) && (para1.indexOf("dst=filter") == -1) && subs.indexOf("[Proxy]") == -1) || typeU == "module") && typeU != "nodes" && typeU != "rule" && typeQ !="filter") { // Surge 类型 module /rule-set(含url-regex) 类型
typec="rewrite" typec="rewrite"
type = (typeQ == "unsupported" || typeQ =="rewrite")? "sgmodule" : "wrong-field" type = (typeQ == "unsupported" || typeQ =="rewrite")? "sgmodule" : "wrong-field"
} else if (((RuleK.some(RuleCheck) && subs.indexOf(html) == -1 ) || typeU == "rule" || para1.indexOf("dst=filter")!=-1) && typeU != "nodes" && !(typeQ == "server" && QuanXK.some(NodeCheck))) { } else if (((RuleK.some(RuleCheck) && subs.indexOf(html) == -1 ) || typeU == "rule" || para1.indexOf("dst=filter")!=-1) && typeU != "nodes" && !(typeQ == "server" && (QuanXK.some(NodeCheck) || SurgeK.some(NodeCheck))) ) {
// rule/filter类型 // rule/filter类型
// 2022-07-20 remove constrain && !/\[(Proxy|server_local)\]/.test(subs) adter html // 2022-07-20 remove constrain && !/\[(Proxy|server_local)\]/.test(subs) adter html
typec = "filter" typec = "filter"
@@ -1156,7 +1156,7 @@ function Rule_Handle(subs, Pout, Pin) {
Tout = Pout; //过滤参数 Tout = Pout; //过滤参数
ply = Ppolicy; //策略组 ply = Ppolicy; //策略组
var nlist = [] var nlist = []
var RuleK = ["//", "#", ";","["]; //排除项目 var RuleK = ["//", "#", ";","[","^"]; //排除项目
var RuleK2 = ["host,", "-suffix,", "domain,", "-keyword,", "ip-cidr,", "ip-cidr6,", "geoip,", "user-agent,", "ip6-cidr,"]; var RuleK2 = ["host,", "-suffix,", "domain,", "-keyword,", "ip-cidr,", "ip-cidr6,", "geoip,", "user-agent,", "ip6-cidr,"];
if (Tout != "" && Tout != null) { // 有 out 参数时 if (Tout != "" && Tout != null) { // 有 out 参数时
var dlist = []; var dlist = [];
@@ -1240,7 +1240,7 @@ function Rule_Handle(subs, Pout, Pin) {
function Rule_Policy(content) { //增加、替换 policy function Rule_Policy(content) { //增加、替换 policy
var cnt = content.replace(/^\s*\-\s/g,"").replace(/REJECT-TINYGIF/gi,"reject").trim().split("//")[0].trim().split(","); var cnt = content.replace(/^\s*\-\s/g,"").replace(/REJECT-TINYGIF/gi,"reject").trim().split("//")[0].trim().split(",");
var RuleK = ["//", "#", ";","[","/", "hostname","no-ipv6","no-system","<","{","}","]"]; var RuleK = ["//", "#", ";","[","/", "hostname","no-ipv6","no-system","<","{","}","]","^"];
var RuleK1 = ["host", "domain", "ip-cidr", "geoip", "user-agent", "ip6-cidr"]; var RuleK1 = ["host", "domain", "ip-cidr", "geoip", "user-agent", "ip6-cidr"];
const RuleCheck = (item) => cnt[0].trim().toLowerCase().indexOf(item) == 0; //无视注释行 const RuleCheck = (item) => cnt[0].trim().toLowerCase().indexOf(item) == 0; //无视注释行
const RuleCheck1 = (item) => cnt[0].trim().toLowerCase().indexOf(item) == 0 ; //无视 quanx 不支持的规则类别&排除 hostname const RuleCheck1 = (item) => cnt[0].trim().toLowerCase().indexOf(item) == 0 ; //无视 quanx 不支持的规则类别&排除 hostname
@@ -2191,7 +2191,7 @@ function emoji_del(str) {
//为节点名添加 emoji //为节点名添加 emoji
function get_emoji(emojip, sname) { function get_emoji(emojip, sname) {
var Lmoji = { var Lmoji = {
"🏳️‍🌈": ["流量", "套餐", "剩余", "重置", "到期" , "时间", "应急", "过期", "Bandwidth", "expire"], "🏳️‍🌈": ["流量", "套餐", "剩余", "重置", "到期" , "时间", "应急", "过期", "Bandwidth", "expire","traffic"],
"🇦🇩": ["安道尔"], "🇦🇩": ["安道尔"],
"🇦🇿": ["阿塞拜疆"], "🇦🇿": ["阿塞拜疆"],
"🇦🇹": ["奥地利", "奧地利", "Austria", "维也纳"], "🇦🇹": ["奥地利", "奧地利", "Austria", "维也纳"],