surgio
Version:
Generating rules for Surge, Clash, Quantumult like a PRO
110 lines • 5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.anytlsFilter = exports.vlessFilter = exports.hysteria2Filter = exports.wireguardFilter = exports.socks5Filter = exports.trojanFilter = exports.httpsFilter = exports.httpFilter = exports.tuicFilter = exports.snellFilter = exports.v2rayFilter = exports.vmessFilter = exports.shadowsocksrFilter = exports.shadowsocksFilter = exports.youtubePremiumFilter = exports.chinaOutFilter = exports.chinaBackFilter = exports.taiwanFilter = exports.germanyFilter = exports.singaporeFilter = exports.koreaFilter = exports.japanFilter = exports.hkFilter = exports.usFilter = exports.netflixFilter = void 0;
const flag_cn_1 = require("../misc/flag_cn");
const types_1 = require("../types");
const utils_1 = require("./utils");
const netflixFilter = (item) => {
return ['netflix', 'nf', 'hkbn', 'hkt', 'hgc', 'nbu'].some((key) => item.nodeName.toLowerCase().includes(key));
};
exports.netflixFilter = netflixFilter;
const usFilter = (item) => {
return ['🇺🇸', ...flag_cn_1.FLAGS['🇺🇸']].some((key) => item.nodeName.toUpperCase().includes(key));
};
exports.usFilter = usFilter;
const hkFilter = (item) => {
return ['🇭🇰', ...flag_cn_1.FLAGS['🇭🇰']].some((key) => item.nodeName.toUpperCase().includes(key));
};
exports.hkFilter = hkFilter;
const japanFilter = (item) => {
return ['🇯🇵', ...flag_cn_1.FLAGS['🇯🇵']].some((key) => item.nodeName.toUpperCase().includes(key));
};
exports.japanFilter = japanFilter;
const koreaFilter = (item) => {
return ['🇰🇷', ...flag_cn_1.FLAGS['🇰🇷']].some((key) => item.nodeName.toUpperCase().includes(key));
};
exports.koreaFilter = koreaFilter;
const singaporeFilter = (item) => {
return ['🇸🇬', ...flag_cn_1.FLAGS['🇸🇬']].some((key) => item.nodeName.toUpperCase().includes(key));
};
exports.singaporeFilter = singaporeFilter;
const germanyFilter = (item) => {
return ['🇩🇪', ...flag_cn_1.FLAGS['🇩🇪']].some((key) => item.nodeName.toUpperCase().includes(key));
};
exports.germanyFilter = germanyFilter;
const taiwanFilter = (item) => {
return ['🇹🇼', ...flag_cn_1.TAIWAN].some((key) => item.nodeName.toUpperCase().includes(key));
};
exports.taiwanFilter = taiwanFilter;
const chinaBackFilter = (item) => {
return [
'回国',
'Back',
'中国上海',
'中国北京',
'中国徐州',
'中国广州',
'中国东莞',
'中国中山',
'中国深圳',
'中国枣庄',
'中国郑州',
'硅谷上海',
'东京上海',
'GCX',
].some((key) => item.nodeName.includes(key));
};
exports.chinaBackFilter = chinaBackFilter;
exports.chinaOutFilter = (0, utils_1.reverseFilter)(exports.chinaBackFilter);
exports.youtubePremiumFilter = (0, utils_1.mergeFilters)([
exports.usFilter,
exports.japanFilter,
exports.koreaFilter,
exports.hkFilter,
exports.singaporeFilter,
exports.taiwanFilter,
exports.germanyFilter,
]);
// istanbul ignore next
const shadowsocksFilter = (item) => item.type === types_1.NodeTypeEnum.Shadowsocks;
exports.shadowsocksFilter = shadowsocksFilter;
// istanbul ignore next
const shadowsocksrFilter = (item) => item.type === types_1.NodeTypeEnum.Shadowsocksr;
exports.shadowsocksrFilter = shadowsocksrFilter;
// istanbul ignore next
const vmessFilter = (item) => item.type === types_1.NodeTypeEnum.Vmess;
exports.vmessFilter = vmessFilter;
// istanbul ignore next
const v2rayFilter = (item) => item.type === types_1.NodeTypeEnum.Vmess;
exports.v2rayFilter = v2rayFilter;
// istanbul ignore next
const snellFilter = (item) => item.type === types_1.NodeTypeEnum.Snell;
exports.snellFilter = snellFilter;
// istanbul ignore next
const tuicFilter = (item) => item.type === types_1.NodeTypeEnum.Tuic;
exports.tuicFilter = tuicFilter;
// istanbul ignore next
const httpFilter = (item) => item.type === types_1.NodeTypeEnum.HTTP;
exports.httpFilter = httpFilter;
// istanbul ignore next
const httpsFilter = (item) => item.type === types_1.NodeTypeEnum.HTTPS;
exports.httpsFilter = httpsFilter;
// istanbul ignore next
const trojanFilter = (item) => item.type === types_1.NodeTypeEnum.Trojan;
exports.trojanFilter = trojanFilter;
// istanbul ignore next
const socks5Filter = (item) => item.type === types_1.NodeTypeEnum.Socks5;
exports.socks5Filter = socks5Filter;
// istanbul ignore next
const wireguardFilter = (item) => item.type === types_1.NodeTypeEnum.Wireguard;
exports.wireguardFilter = wireguardFilter;
// istanbul ignore next
const hysteria2Filter = (item) => item.type === types_1.NodeTypeEnum.Hysteria2;
exports.hysteria2Filter = hysteria2Filter;
// istanbul ignore next
const vlessFilter = (item) => item.type === types_1.NodeTypeEnum.Vless;
exports.vlessFilter = vlessFilter;
// istanbul ignore next
const anytlsFilter = (item) => item.type === types_1.NodeTypeEnum.AnyTLS;
exports.anytlsFilter = anytlsFilter;
//# sourceMappingURL=filters.js.map