Skip to content

Instantly share code, notes, and snippets.

@yanyongyu
Last active May 1, 2024 09:03
Show Gist options
  • Save yanyongyu/76cf3a4a094fc07c89b682c4c8604a57 to your computer and use it in GitHub Desktop.
Save yanyongyu/76cf3a4a094fc07c89b682c4c8604a57 to your computer and use it in GitHub Desktop.
Clash For Windows parser for replacing rules
parsers:
- reg: ^.*$
code: >
module.exports.parse = async (raw, { yaml }) => {
const profile = yaml.parse(raw);
const proxies = profile.proxies;
const proxyNames = proxies.map((proxy) => proxy.name);
const proxyGroups = [
{
name: "🚧 ζ¨‘εΌεˆ‡ζ’",
type: "select",
proxies: ["πŸš€ θŠ‚η‚Ήι€‰ζ‹©", "DIRECT"],
},
{
name: "πŸš€ θŠ‚η‚Ήι€‰ζ‹©",
type: "select",
proxies: proxyNames,
},
{
name: "🎯 ε…¨ηƒη›΄θΏž",
type: "select",
proxies: ["DIRECT", "🚧 ζ¨‘εΌεˆ‡ζ’"],
},
{
name: "πŸ›‘ 全球拦ζˆͺ",
type: "select",
proxies: ["REJECT", "DIRECT", "🚧 ζ¨‘εΌεˆ‡ζ’"],
},
{
name: "🐟 漏网之鱼",
type: "select",
proxies: ["DIRECT", "🚧 ζ¨‘εΌεˆ‡ζ’"],
},
];
const ruleProviders = {
direct: {
type: "http",
behavior: "domain",
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt",
path: "./ruleset/direct.yaml",
interval: 86400,
},
proxy: {
type: "http",
behavior: "domain",
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt",
path: "./ruleset/proxy.yaml",
interval: 86400,
},
reject: {
type: "http",
behavior: "domain",
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt",
path: "./ruleset/reject.yaml",
interval: 86400,
},
icloud: {
type: "http",
behavior: "domain",
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/icloud.txt",
path: "./ruleset/icloud.yaml",
interval: 86400,
},
apple: {
type: "http",
behavior: "domain",
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/apple.txt",
path: "./ruleset/apple.yaml",
interval: 86400,
},
google: {
type: "http",
behavior: "domain",
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/google.txt",
path: "./ruleset/google.yaml",
interval: 86400,
},
private: {
type: "http",
behavior: "domain",
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/private.txt",
path: "./ruleset/private.yaml",
interval: 86400,
},
gfw: {
type: "http",
behavior: "domain",
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/gfw.txt",
path: "./ruleset/gfw.yaml",
interval: 86400,
},
"tld-not-cn": {
type: "http",
behavior: "domain",
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/tld-not-cn.txt",
path: "./ruleset/tld-not-cn.yaml",
interval: 86400,
},
telegramcidr: {
type: "http",
behavior: "ipcidr",
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/telegramcidr.txt",
path: "./ruleset/telegramcidr.yaml",
interval: 86400,
},
cncidr: {
type: "http",
behavior: "ipcidr",
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/cncidr.txt",
path: "./ruleset/cncidr.yaml",
interval: 86400,
},
lancidr: {
type: "http",
behavior: "ipcidr",
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/lancidr.txt",
path: "./ruleset/lancidr.yaml",
interval: 86400,
},
applications: {
type: "http",
behavior: "classical",
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/applications.txt",
path: "./ruleset/applications.yaml",
interval: 86400,
},
};
const rules = [
"RULE-SET,applications,🎯 ε…¨ηƒη›΄θΏž",
"DOMAIN,clash.razord.top,🎯 ε…¨ηƒη›΄θΏž",
"DOMAIN,yacd.haishan.me,🎯 ε…¨ηƒη›΄θΏž",
"RULE-SET,private,🎯 ε…¨ηƒη›΄θΏž",
"RULE-SET,reject,πŸ›‘ 全球拦ζˆͺ",
"RULE-SET,icloud,🎯 ε…¨ηƒη›΄θΏž",
"RULE-SET,apple,🎯 ε…¨ηƒη›΄θΏž",
"RULE-SET,google,🎯 ε…¨ηƒη›΄θΏž",
"RULE-SET,proxy,🚧 ζ¨‘εΌεˆ‡ζ’",
"RULE-SET,direct,🎯 ε…¨ηƒη›΄θΏž",
"RULE-SET,lancidr,🎯 ε…¨ηƒη›΄θΏž",
"RULE-SET,cncidr,🎯 ε…¨ηƒη›΄θΏž",
"RULE-SET,telegramcidr,🚧 ζ¨‘εΌεˆ‡ζ’",
"GEOIP,LAN,🎯 ε…¨ηƒη›΄θΏž",
"GEOIP,CN,🎯 ε…¨ηƒη›΄θΏž",
"MATCH,🐟 漏网之鱼",
];
return yaml.stringify({
...profile,
"proxy-groups": proxyGroups,
"rule-providers": ruleProviders,
rules,
});
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment