minor revise

This commit is contained in:
Shawn
2020-07-10 10:57:35 +08:00
parent 92bd20341e
commit fae702e8ed

View File

@@ -1,21 +1,20 @@
/** /**
☑️ 资源解析器 ©𝐒𝐡𝐚𝐰𝐧 ⟦2020-07-08 19:39⟧ ☑️ 资源解析器 ©𝐒𝐡𝐚𝐰𝐧 ⟦2020-07-10 11:39⟧
---------------------------------------------------------- ----------------------------------------------------------
🛠 发现 𝐁𝐔𝐆 请反馈: @Shawn_KOP_bot 🛠 发现 𝐁𝐔𝐆 请反馈: @Shawn_KOP_bot
⛳️ 关注 🆃🅶 相关频道: https://t.me/QuanX_API ⛳️ 关注 🆃🅶 相关频道: https://t.me/QuanX_API
🗣 🆃🄷🄰🄽🄺🅂 🆃🄾 @Jamie CHIEN, @M**F**, @c0lada 🗣 🆃🄷🄰🄽🄺🅂 🆃🄾 @Jamie CHIEN, @M**F**, @c0lada
🤖 主要功能: 🤖 主要功能:
A. 将各格式的服务器订阅解析成 𝐐𝐮𝐚𝐧𝐭𝐮𝐦𝐮𝐥𝐭 𝐗 格式 将各格式的服务器订阅解析成 𝐐𝐮𝐚𝐧𝐭𝐮𝐦𝐮𝐥𝐭 𝐗 格式
支持 𝒗𝒎𝒆𝒔𝒔/𝒔𝒔(𝒓/𝒅)/𝒕𝒓𝒐𝒋𝒂𝒏/𝒒𝒖𝒂𝒏𝒙/𝒔𝒖𝒓𝒈𝒆/𝒉𝒕𝒕𝒑(𝒔) 订阅 支持 𝑽𝒎𝒆𝒔𝒔/𝑺𝑺(𝑹/𝑫)/𝑻𝒓𝒐𝒋𝒂𝒏/𝑸𝒖𝒂𝒏𝑿/𝑺𝒖𝒓𝒈𝒆/𝑯𝑻𝑻𝑷(𝑺) 订阅
提供说明 1⃣ 中的可选个性化参数(筛选、重命名 等) 提供说明 1⃣ 中的可选个性化参数(筛选、重命名 等)
B. 𝗿𝗲𝘄𝗿𝗶𝘁𝗲(重写) /𝗳𝗶𝗹𝘁𝗲𝗿(分流) 的 转换&筛选 𝗿𝗲𝘄𝗿𝗶𝘁𝗲(重写) & 𝗳𝗶𝗹𝘁𝗲𝗿(分流) 的 转换&筛选
用于禁用远程引用中某(几)项 𝗿𝗲𝘄𝗿𝗶𝘁𝗲/𝗵𝗼𝘀𝘁𝗻𝗮𝗺𝗲/𝗳𝗶𝗹𝘁𝗲𝗿 用于禁用远程引用中某(几)项 𝗿𝗲𝘄𝗿𝗶𝘁𝗲/𝗵𝗼𝘀𝘁𝗻𝗮𝗺𝗲/𝗳𝗶𝗹𝘁𝗲𝗿
𝐒𝐮𝐫𝐠𝐞 类型规则 𝗹𝗶𝘀𝘁(无策略组)的解析使用 𝐒𝐮𝐫𝐠𝐞 类型规则 𝗹𝗶𝘀𝘁 与 模块 𝐦𝐨𝐝𝐮𝐥𝐞 的解析使用
✔︎ 𝐒𝐮𝐫𝐠𝐞 模块/配置 𝐮𝐫𝐥-𝐫𝐞𝐠𝐞𝐱/𝐬𝐜𝐫𝐢𝐩𝐭/𝐫𝐞𝐰𝐫𝐢𝐭𝐞(302/307) 的解析
---------------------------------------------------------- ----------------------------------------------------------
0⃣ ⟦原始链接⟧ 后加 "#" 使用, 不同参数用 "&" 连接: 0⃣ ⟦原始链接⟧ 后加 "#" 使用, 不同参数用 "&" 连接:
⚠️ ☞ 𝐡𝐭𝐭𝐩𝐬://𝐦𝐲𝐬𝐮𝐛.𝐜𝐨𝐦#𝗶𝗻=香港+台湾&𝗲𝗺𝗼𝗷𝗶=1&𝘁𝗳𝗼=1 ⚠️ ☞ 𝐡𝐭𝐭𝐩𝐬://𝐦𝐲𝐬𝐮𝐛.𝐜𝐨𝐦#𝙚𝙢𝙤𝙟𝙞=1&𝙩𝙛𝙤=1&𝙞𝙣=香港+台湾
❖ 本地资源引用, 请将参数 "#𝗶𝗻=𝘅𝘅𝘅..." 填入资源文件第一行 ❖ ❖ 本地资源引用, 请将参数 "#𝗶𝗻=𝘅𝘅𝘅..." 填入资源文件第一行 ❖
1⃣ ⟦𝐬𝐞𝐫𝐯𝐞𝐫 节点⟧ ➠ 参数说明: 1⃣ ⟦𝐬𝐞𝐫𝐯𝐞𝐫 节点⟧ ➠ 参数说明:
@@ -42,10 +41,11 @@ B. 𝗿𝗲𝘄𝗿𝗶𝘁𝗲(重写) /𝗳𝗶𝗹𝘁𝗲𝗿(分流) 的
2⃣ ⟦𝐫𝐞𝐰𝐫𝐢𝐭𝐞 重写⟧/⟦𝐟𝐢𝐥𝐭𝐞𝐫 分流⟧ ➠ 参数说明: 2⃣ ⟦𝐫𝐞𝐰𝐫𝐢𝐭𝐞 重写⟧/⟦𝐟𝐢𝐥𝐭𝐞𝐫 分流⟧ ➠ 参数说明:
⦿ 𝗶𝗻, 𝗼𝘂𝘁, 根据关键词 保留/禁用 相关的规则、重写; ⦿ 𝗶𝗻, 𝗼𝘂𝘁, 根据关键词 保留/禁用 相关的规则、重写;
⦿ 𝗶𝗻𝗵𝗻, 𝗼𝘂𝘁𝗵𝗻, “保留/删除”主机名(𝒉𝒐𝒔𝒕𝒏𝒂𝒎𝒆); ⦿ 𝗶𝗻𝗵𝗻, 𝗼𝘂𝘁𝗵𝗻, “保留/删除”主机名(𝒉𝒐𝒔𝒕𝒏𝒂𝒎𝒆);
⦿ 𝗱𝘀𝘁=𝗿𝗲𝗴𝗲𝘅/𝘀𝗰𝗿𝗶𝗽𝘁,分别为只保留 𝐒𝐮𝐫𝐠𝐞-𝐦𝐨𝐝𝐮𝐥𝐞/𝐩𝐫𝐨𝐟𝐢𝐥𝐞 中的 𝐮𝐫𝐥-𝐫𝐞𝐠𝐞𝐱/𝐬𝐜𝐫𝐢𝐩𝐭(302/307), 默认全部保留; ❖ 示范: 禁用 "淘宝比价" 及 "weibo" 的 js 同主机名
⦿ 分流规则另有 "𝗽𝗼𝗹𝗶𝗰𝘆=𝘅𝘅𝘅" 参数, 可用于直接指定策略组,或为 𝐒𝐮𝐫𝐠𝐞 类型 𝗿𝘂𝗹𝗲-𝘀𝗲𝘁 生成策略组(默认"𝐒𝐡𝐚𝐰𝐧"策略组);
⦿ 示范: 禁用重写引用中 "淘宝比价 js" 以及 "weibo" 的 js 同主机名
𝐡𝐭𝐭𝐩𝐬://𝐦𝐲𝐥𝐢𝐬𝐭#𝒐𝒖𝒕=𝒕𝒃_𝒑𝒓𝒊𝒄𝒆.𝒋𝒔+𝒘𝒃_𝒂𝒅.𝒋𝒔&𝒐𝒖𝒕𝒉𝒏=𝒘𝒆𝒊𝒃𝒐 𝐡𝐭𝐭𝐩𝐬://𝐦𝐲𝐥𝐢𝐬𝐭#𝒐𝒖𝒕=𝒕𝒃_𝒑𝒓𝒊𝒄𝒆.𝒋𝒔+𝒘𝒃_𝒂𝒅.𝒋𝒔&𝒐𝒖𝒕𝒉𝒏=𝒘𝒆𝒊𝒃𝒐
⦿ 𝗱𝘀𝘁=𝗿𝗲𝗴𝗲𝘅/𝘀𝗰𝗿𝗶𝗽𝘁,分别为只保留 𝐒𝐮𝐫𝐠𝐞-𝐦𝐨𝐝𝐮𝐥𝐞 中的 𝐮𝐫𝐥-𝐫𝐞𝐠𝐞𝐱/𝐬𝐜𝐫𝐢𝐩𝐭(302/307), 默认全部保留;
❖ 把含 𝐮𝐫𝐥-𝐫𝐞𝐠𝐞𝐱𝗿𝘂𝗹𝗲-𝘀𝗲𝘁 转成重写时, 一定要 𝗱𝘀𝘁=𝗿𝗲𝗴𝗲𝘅
⦿ 𝗽𝗼𝗹𝗶𝗰𝘆 参数, 用于直接指定策略组,或为 𝐒𝐮𝐫𝐠𝐞 类型 𝗿𝘂𝗹𝗲-𝘀𝗲𝘁 生成策略组(默认"𝐒𝐡𝐚𝐰𝐧"策略组);
3⃣ 通知参数 𝗻𝘁𝗳=0/1, 用于 关闭/打开 资源解析器的提示通知 3⃣ 通知参数 𝗻𝘁𝗳=0/1, 用于 关闭/打开 资源解析器的提示通知
⦿ 𝗿𝗲𝘄𝗿𝗶𝘁𝗲/𝗳𝗶𝗹𝘁𝗲𝗿 默认“开启”通知提示, 以防规则误删除 ⦿ 𝗿𝗲𝘄𝗿𝗶𝘁𝗲/𝗳𝗶𝗹𝘁𝗲𝗿 默认“开启”通知提示, 以防规则误删除
@@ -92,6 +92,7 @@ const rwrite_link = {"open-url":link0.split("#")[0], "media-url": "https://shrtm
const rwhost_link = {"open-url":link0.split("#")[0], "media-url": "https://shrtm.nu/0n5J"} const rwhost_link = {"open-url":link0.split("#")[0], "media-url": "https://shrtm.nu/0n5J"}
const rule_link={"open-url":link0.split("#")[0], "media-url": "https://shrtm.nu/cpHD"} const rule_link={"open-url":link0.split("#")[0], "media-url": "https://shrtm.nu/cpHD"}
const nan_link={"open-url":link0.split("#")[0], "media-url": qxpng} const nan_link={"open-url":link0.split("#")[0], "media-url": qxpng}
const bug_link={"open-url":"https://t.me/Shawn_KOP_bot", "media-url": "https://shrtm.nu/obcB"} // bug link
const sub_link={"open-url":link0.split("#")[0], "media-url": "https://shrtm.nu/ebAr"} const sub_link={"open-url":link0.split("#")[0], "media-url": "https://shrtm.nu/ebAr"}
const subinfo_link1={"open-url":link0.split("#")[0], "media-url": "https://shrtm.nu/uo13"} const subinfo_link1={"open-url":link0.split("#")[0], "media-url": "https://shrtm.nu/uo13"}
@@ -177,11 +178,11 @@ if(type0=="Subs-B64Encode"){
total=content0.split("\n"); total=content0.split("\n");
total=Rule_Handle(total,Pout0,Pin0); total=Rule_Handle(total,Pout0,Pin0);
}else if(content0.trim()==""){ }else if(content0.trim()==""){
$notify("‼️ 引用"+"⟦"+subtag+"⟧"+" 链接返回內容为空","⁉️请自行复制原始链接到浏览器, 确认链接是否失效",para.split("#")[0],nan_link); $notify("‼️ 引用"+"⟦"+subtag+"⟧"+" 返回內容为空","⁉️ 点通知跳转以确认链接是否失效",para.split("#")[0],nan_link);
flag=0; flag=0;
$done({content : ""}) $done({content : ""})
}else if(type0=="unknown"){ }else if(type0=="unknown"){
$notify("😭 太难写了, 可能是 bug ⁉️ "+"⟦"+subtag+"⟧", "👻 本解析器 暂未支持/未能识别 该订阅格式", "⚠️ 已尝试直接导入Quantumult X",nan_link); $notify("😭 太难写了, 可能是 bug ⁉️ "+"⟦"+subtag+"⟧", "👻 本解析器 暂未支持/未能识别 该订阅格式", "⚠️ 直接导入Quantumult X \n 如认为是 BUG, 请点通知跳转反馈",bug_link);
$done({content : content0}); $done({content : content0});
flag=-1; flag=-1;
}else { flag=0 } }else { flag=0 }
@@ -273,7 +274,7 @@ function Type_Check(subs){
var subsn=subs.split("\n") var subsn=subs.split("\n")
//$notify("Subs","cnt",subs) //$notify("Subs","cnt",subs)
if(subs.indexOf(html)!=-1){ if(subs.indexOf(html)!=-1){
$notify("‼️ 该链接返回内容有误","⁉️ 请自行复制原始链接到浏览器, 确认链接是否失效",link0,nan_link); $notify("‼️ 该链接返回内容有误","⁉️ 点通知跳转以确认链接是否失效",link0,nan_link);
type="web"; type="web";
} else if(subsn.length>=1 && SubK2.some(SubCheck)){ //未b64加密的多行URI 组合订阅 } else if(subsn.length>=1 && SubK2.some(SubCheck)){ //未b64加密的多行URI 组合订阅
type="Subs" type="Subs"
@@ -285,7 +286,7 @@ function Type_Check(subs){
type="Surge"; // Surge Profiles type="Surge"; // Surge Profiles
} else if(SurgeK.some(SurgeCheck)){ } else if(SurgeK.some(SurgeCheck)){
type="Subs" // Surge proxy list type="Subs" // Surge proxy list
} else if(subi.indexOf("[Script]")!=-1 || subi.indexOf("[Rule]")!=-1 || subi.indexOf("[URL Rewrite]")!=-1){ // Surge module /profile 类型 } else if(subi.indexOf("[Script]")!=-1 || subi.indexOf("[Rule]")!=-1 || subi.indexOf("[URL Rewrite]")!=-1 || para1.indexOf("dst=regex")!=-1){ // Surge module /rule-set(url-regex) 类型
type="sgmodule" type="sgmodule"
}else if(subi.indexOf("hostname=")!=-1 || RewriteK.some(RewriteCheck)){ }else if(subi.indexOf("hostname=")!=-1 || RewriteK.some(RewriteCheck)){
type="rewrite" type="rewrite"