Flclash覆写脚本分享14-(我是标题)

2026-04-11 08:101阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

最近好忙,早有计划更新的,一直拖到现在。
晚上吃的有点早,现在下半夜了,好饿好饿好饿。
好饿-原神社区-米游社144×144 20.9 KB
刚刚点了份外卖,下半夜居然还有商家在供餐,还有小哥在跑外卖,太奇妙了。
好饿-原神社区-米游社1080×1080 64.6 KB

脚本14修改日志如下,从GitHub脚本仓库复制粘贴的,偷个懒
可爱猫咪抱着枕头,配文“猫同意偷个懒”超萌超有趣 |领结猫 领结猫表情包|可爱表情表情包图片gif动图- 求表情 网225×225 6.17 KB

  • scripts14:基于 scripts13 修改。经确认,FLClash 的覆写脚本与附加规则无法同时生效,因此添加了 myManualRules,可根据个人需要在其中添加规则。
    • 过滤掉原始配置中引用了本脚本未定义的 rule-providerRULE-SET 规则,避免 rule set [xxx] not found 报错。
    • 修复原始规则中带有中文策略组名(如 🎯 全球直连🛑 广告拦截)被一律替换为 节点选择 的问题,改为按关键字智能映射:含"直连"→DIRECT,含"拦截/广告"→REJECT,其余→节点选择
    • 为 IP 类规则自动追加 no-resolve,避免触发不必要的 DNS 解析。
    • rule-providersrp() 工厂函数生成,消除重复结构。
    • REGIONS 从对象数组改为元组数组,减少冗余字段名。
    • emoji 国旗替换改为 flagMap + replaceAll,抽成独立的 norm() 函数。
    • target 映射逻辑抽成 mapTarget() 单行函数。

scripts14:

function main(config) { const ICON = "https://cdn.jsdelivr.net/gh/Koolson/Qure@master/IconSet/Color/"; const RULE = "https://cdn.jsdelivr.net/gh/ACL4SSR/ACL4SSR@master/Clash/"; const ratioRe = /(?:\[(\d+(?:\.\d+)?)\s*[xX×]\]|(\d+(?:\.\d+)?)\s*[xX×倍]|[xX×倍]\s*(\d+(?:\.\d+)?))/i; const blackRe = /(?<!集)群|邀请|返利|官方|官网|网址|订阅|购买|续费|剩余|到期|过期|流量|备用|邮箱|客服|联系|工单|倒卖|防止|梯子|tg|发布|重置/i; const flagMap = { '🇺🇸': 'US', '🇯🇵': 'JP', '🇸🇬': 'SG', '🇭🇰': 'HK', '🇹🇼': 'TW' }; const myManualRules = [ "DOMAIN-SUFFIX,cn,DIRECT", "DOMAIN-SUFFIX,jianguoyun.com,DIRECT", ]; const allProxies = config.proxies || []; const proxies = allProxies.filter(p => { if (!p?.name || blackRe.test(p.name)) return false; const m = p.name.match(ratioRe); return !(m && parseFloat(m[1] || m[2] || m[3]) > 3); }); if (!proxies.length && !allProxies.length) return config; const norm = name => { let s = name.trim().replace(/\s+/g, '').replace(/[【】[\]()()]/g, ''); for (const [flag, code] of Object.entries(flagMap)) s = s.replaceAll(flag, code); return s; }; const REGIONS = [ ["美国节点", "美国|美|US|USA|UnitedStates|United States|纽约|NewYork|NYC|JFK|洛杉矶|LosAngeles|LAX|旧金山|SanFrancisco|SFO|圣何塞|SanJose|SJC|西雅图|Seattle|SEA|芝加哥|Chicago|ORD|达拉斯|Dallas|DFW|硅谷|SiliconValley", "United_States.png"], ["日本节点", "日本|日|JP|JPN|Japan|东京|Tokyo|TYO|NRT|HND|大阪|Osaka|KIX", "Japan.png"], ["狮城节点", "新加坡|狮城|SG|SGP|Singapore|SIN", "Singapore.png"], ["香港节点", "香港|港|HK|HKG|HongKong|Hong Kong", "Hong_Kong.png"], ["台湾节点", "台湾|台|TW|TWN|Taiwan|台北|Taipei|TPE|新北|NewTaipei", "Taiwan.png"], ]; const regions = REGIONS.map(([name, pat, icon]) => { const re = new RegExp(pat.split('|').map(k => k.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')).join('|'), 'i'); const matched = proxies.filter(p => re.test(norm(p.name))).map(p => p.name); return matched.length ? { name, icon, matched } : null; }).filter(Boolean); const regionNames = regions.map(r => r.name); const rp = (name) => ({ url: `${RULE}${name}.list`, path: `./ruleset/${name}.list`, behavior: "classical", interval: 86400, format: "text", type: "http" }); const groups = [ { name: "节点选择", icon: `${ICON}Proxy.png`, type: "select", proxies: [...regionNames, "手动切换"] }, ...regions.map(r => ({ name: r.name, icon: `${ICON}${r.icon}`, type: "url-test", proxies: r.matched, interval: 300, tolerance: 50 })), { name: "手动切换", icon: `${ICON}Available.png`, "include-all": true, type: "select" }, { name: "GLOBAL", icon: `${ICON}Global.png`, type: "select", proxies: ["节点选择", ...regionNames, "手动切换", "DIRECT"] }, ]; const providers = { LocalAreaNetwork: rp("LocalAreaNetwork"), UnBan: rp("UnBan"), BanAD: rp("BanAD"), BanProgramAD: rp("BanProgramAD"), ProxyGFWlist: rp("ProxyGFWlist"), ChinaDomain: rp("ChinaDomain") }; const valid = new Set(["DIRECT", "REJECT", "REJECT-DROP", "PASS", ...groups.map(g => g.name), ...allProxies.map(p => p.name)]); const providerKeys = new Set(Object.keys(providers)); const mapTarget = t => /直连/.test(t) ? "DIRECT" : /拦截|广告/.test(t) ? "REJECT" : "节点选择"; const custom = (config.rules || []) .filter(r => !r.startsWith("MATCH,")) .filter(r => !r.startsWith("RULE-SET,") || providerKeys.has(r.split(',')[1])) .map(r => { const p = r.split(','); if (p.length >= 3) { if (!valid.has(p[2].trim())) p[2] = mapTarget(p[2]); if (p[0].trim().includes("IP")) p[3] = "no-resolve"; } return p.join(','); }); config["proxy-groups"] = groups; config["rule-providers"] = providers; config["rules"] = [ ...myManualRules, "RULE-SET,LocalAreaNetwork,DIRECT", "RULE-SET,UnBan,DIRECT", "RULE-SET,BanAD,REJECT", "RULE-SET,BanProgramAD,REJECT", ...custom, "RULE-SET,ProxyGFWlist,节点选择", "RULE-SET,ChinaDomain,DIRECT", "GEOIP,CN,DIRECT", "MATCH,节点选择", ]; config.proxies = allProxies; return config; }

说起来,之前有佬友建议加入防DNS泄露的配置,还给我推荐了几个别人的帖子,可是我最近没能得到时间来阅读他们。等有空了或许会加入吧。

之前在群里看到 chen08209 提到 flclash 也许会在4月底更新,从录像来看,将会更加的强大和有趣。
群里有一位大佬提出可以帮忙把 App 上架到 Apple Store。
个人而言,我对此非常期待,我非常喜欢 flclash ,如果能在 iPhone和 ipad 上面使用它,我很乐意为此付费,以平衡企业开发者账号的费用和支持 chen08209 的开发工作。

码到这里的时候,外卖小哥到了,我的房门上贴有“请不要敲门,放在门口即可”,但他还是敲响了我的房门,连敲五声。在极为安静的下半夜两点,房门被敲响有点心惊。
93_表情_93652×469 38.5 KB

吃点东西睡觉喽~

网友解答:
--【壹】--:

这个软件界面好丑啊,个人感觉。

问题描述:

最近好忙,早有计划更新的,一直拖到现在。
晚上吃的有点早,现在下半夜了,好饿好饿好饿。
好饿-原神社区-米游社144×144 20.9 KB
刚刚点了份外卖,下半夜居然还有商家在供餐,还有小哥在跑外卖,太奇妙了。
好饿-原神社区-米游社1080×1080 64.6 KB

脚本14修改日志如下,从GitHub脚本仓库复制粘贴的,偷个懒
可爱猫咪抱着枕头,配文“猫同意偷个懒”超萌超有趣 |领结猫 领结猫表情包|可爱表情表情包图片gif动图- 求表情 网225×225 6.17 KB

  • scripts14:基于 scripts13 修改。经确认,FLClash 的覆写脚本与附加规则无法同时生效,因此添加了 myManualRules,可根据个人需要在其中添加规则。
    • 过滤掉原始配置中引用了本脚本未定义的 rule-providerRULE-SET 规则,避免 rule set [xxx] not found 报错。
    • 修复原始规则中带有中文策略组名(如 🎯 全球直连🛑 广告拦截)被一律替换为 节点选择 的问题,改为按关键字智能映射:含"直连"→DIRECT,含"拦截/广告"→REJECT,其余→节点选择
    • 为 IP 类规则自动追加 no-resolve,避免触发不必要的 DNS 解析。
    • rule-providersrp() 工厂函数生成,消除重复结构。
    • REGIONS 从对象数组改为元组数组,减少冗余字段名。
    • emoji 国旗替换改为 flagMap + replaceAll,抽成独立的 norm() 函数。
    • target 映射逻辑抽成 mapTarget() 单行函数。

scripts14:

function main(config) { const ICON = "https://cdn.jsdelivr.net/gh/Koolson/Qure@master/IconSet/Color/"; const RULE = "https://cdn.jsdelivr.net/gh/ACL4SSR/ACL4SSR@master/Clash/"; const ratioRe = /(?:\[(\d+(?:\.\d+)?)\s*[xX×]\]|(\d+(?:\.\d+)?)\s*[xX×倍]|[xX×倍]\s*(\d+(?:\.\d+)?))/i; const blackRe = /(?<!集)群|邀请|返利|官方|官网|网址|订阅|购买|续费|剩余|到期|过期|流量|备用|邮箱|客服|联系|工单|倒卖|防止|梯子|tg|发布|重置/i; const flagMap = { '🇺🇸': 'US', '🇯🇵': 'JP', '🇸🇬': 'SG', '🇭🇰': 'HK', '🇹🇼': 'TW' }; const myManualRules = [ "DOMAIN-SUFFIX,cn,DIRECT", "DOMAIN-SUFFIX,jianguoyun.com,DIRECT", ]; const allProxies = config.proxies || []; const proxies = allProxies.filter(p => { if (!p?.name || blackRe.test(p.name)) return false; const m = p.name.match(ratioRe); return !(m && parseFloat(m[1] || m[2] || m[3]) > 3); }); if (!proxies.length && !allProxies.length) return config; const norm = name => { let s = name.trim().replace(/\s+/g, '').replace(/[【】[\]()()]/g, ''); for (const [flag, code] of Object.entries(flagMap)) s = s.replaceAll(flag, code); return s; }; const REGIONS = [ ["美国节点", "美国|美|US|USA|UnitedStates|United States|纽约|NewYork|NYC|JFK|洛杉矶|LosAngeles|LAX|旧金山|SanFrancisco|SFO|圣何塞|SanJose|SJC|西雅图|Seattle|SEA|芝加哥|Chicago|ORD|达拉斯|Dallas|DFW|硅谷|SiliconValley", "United_States.png"], ["日本节点", "日本|日|JP|JPN|Japan|东京|Tokyo|TYO|NRT|HND|大阪|Osaka|KIX", "Japan.png"], ["狮城节点", "新加坡|狮城|SG|SGP|Singapore|SIN", "Singapore.png"], ["香港节点", "香港|港|HK|HKG|HongKong|Hong Kong", "Hong_Kong.png"], ["台湾节点", "台湾|台|TW|TWN|Taiwan|台北|Taipei|TPE|新北|NewTaipei", "Taiwan.png"], ]; const regions = REGIONS.map(([name, pat, icon]) => { const re = new RegExp(pat.split('|').map(k => k.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')).join('|'), 'i'); const matched = proxies.filter(p => re.test(norm(p.name))).map(p => p.name); return matched.length ? { name, icon, matched } : null; }).filter(Boolean); const regionNames = regions.map(r => r.name); const rp = (name) => ({ url: `${RULE}${name}.list`, path: `./ruleset/${name}.list`, behavior: "classical", interval: 86400, format: "text", type: "http" }); const groups = [ { name: "节点选择", icon: `${ICON}Proxy.png`, type: "select", proxies: [...regionNames, "手动切换"] }, ...regions.map(r => ({ name: r.name, icon: `${ICON}${r.icon}`, type: "url-test", proxies: r.matched, interval: 300, tolerance: 50 })), { name: "手动切换", icon: `${ICON}Available.png`, "include-all": true, type: "select" }, { name: "GLOBAL", icon: `${ICON}Global.png`, type: "select", proxies: ["节点选择", ...regionNames, "手动切换", "DIRECT"] }, ]; const providers = { LocalAreaNetwork: rp("LocalAreaNetwork"), UnBan: rp("UnBan"), BanAD: rp("BanAD"), BanProgramAD: rp("BanProgramAD"), ProxyGFWlist: rp("ProxyGFWlist"), ChinaDomain: rp("ChinaDomain") }; const valid = new Set(["DIRECT", "REJECT", "REJECT-DROP", "PASS", ...groups.map(g => g.name), ...allProxies.map(p => p.name)]); const providerKeys = new Set(Object.keys(providers)); const mapTarget = t => /直连/.test(t) ? "DIRECT" : /拦截|广告/.test(t) ? "REJECT" : "节点选择"; const custom = (config.rules || []) .filter(r => !r.startsWith("MATCH,")) .filter(r => !r.startsWith("RULE-SET,") || providerKeys.has(r.split(',')[1])) .map(r => { const p = r.split(','); if (p.length >= 3) { if (!valid.has(p[2].trim())) p[2] = mapTarget(p[2]); if (p[0].trim().includes("IP")) p[3] = "no-resolve"; } return p.join(','); }); config["proxy-groups"] = groups; config["rule-providers"] = providers; config["rules"] = [ ...myManualRules, "RULE-SET,LocalAreaNetwork,DIRECT", "RULE-SET,UnBan,DIRECT", "RULE-SET,BanAD,REJECT", "RULE-SET,BanProgramAD,REJECT", ...custom, "RULE-SET,ProxyGFWlist,节点选择", "RULE-SET,ChinaDomain,DIRECT", "GEOIP,CN,DIRECT", "MATCH,节点选择", ]; config.proxies = allProxies; return config; }

说起来,之前有佬友建议加入防DNS泄露的配置,还给我推荐了几个别人的帖子,可是我最近没能得到时间来阅读他们。等有空了或许会加入吧。

之前在群里看到 chen08209 提到 flclash 也许会在4月底更新,从录像来看,将会更加的强大和有趣。
群里有一位大佬提出可以帮忙把 App 上架到 Apple Store。
个人而言,我对此非常期待,我非常喜欢 flclash ,如果能在 iPhone和 ipad 上面使用它,我很乐意为此付费,以平衡企业开发者账号的费用和支持 chen08209 的开发工作。

码到这里的时候,外卖小哥到了,我的房门上贴有“请不要敲门,放在门口即可”,但他还是敲响了我的房门,连敲五声。在极为安静的下半夜两点,房门被敲响有点心惊。
93_表情_93652×469 38.5 KB

吃点东西睡觉喽~

网友解答:
--【壹】--:

这个软件界面好丑啊,个人感觉。