MCPcopy Create free account
hub / github.com/Script-Hub-Org/Script-Hub / generateRule

Function generateRule

Rewrite-Parser.beta.js:3315–3569  ·  view source on GitHub ↗
(node, platform, flags = {})

Source from the content-addressed store, hash-verified

3313}
3314// 生成规则
3315function generateRule(node, platform, flags = {}) {
3316 // 平台特性配置(保持不变)
3317 const platformFeatures = {
3318 mihomo: {
3319 supportsExtendedMatching: true,
3320 supportsNoResolve: true,
3321 supportsPreMatching: true,
3322 supportsSrc: true,
3323 rejectPolicyRegex: /^REJECT(-[A-Z]+)*$/,
3324 },
3325 surge: {
3326 supportsExtendedMatching: false,
3327 supportsNoResolve: true,
3328 supportsPreMatching: true,
3329 supportsSrc: false,
3330 rejectPolicyRegex: /^REJECT(-[A-Z]+)*$/,
3331 },
3332 loon: {
3333 supportsExtendedMatching: false,
3334 supportsNoResolve: false,
3335 supportsPreMatching: false,
3336 supportsSrc: false,
3337 rejectPolicyRegex: /^REJECT(-[A-Z]+)*$/,
3338 },
3339 }
3340
3341 const FLAG_SUPPORTED_TYPES = {
3342 extendedMatching: ['RULE-SET', 'DOMAIN-SET', 'DOMAIN-KEYWORD', 'DOMAIN-SUFFIX', 'DOMAIN', 'URL-REGEX'],
3343 noResolve: ['IP-CIDR', 'IP-CIDR6', 'GEOIP', 'IP-ASN', 'RULE-SET'],
3344 src: ['IP-CIDR', 'IP-CIDR6', 'GEOIP', 'IP-ASN', 'IP-SUFFIX'],
3345 preMatching: [
3346 'DOMAIN',
3347 'DOMAIN-SUFFIX',
3348 'DOMAIN-KEYWORD',
3349 'DOMAIN-SET',
3350 'DOMAIN-WILDCARD',
3351 'IP-CIDR',
3352 'IP-CIDR6',
3353 'GEOIP',
3354 'IP-ASN',
3355 'SUBNET',
3356 'DEST-PORT',
3357 'SRC-PORT',
3358 'SRC-IP',
3359 'RULE-SET',
3360
3361 'AND',
3362 'OR',
3363 'NOT',
3364 ],
3365 }
3366
3367 const LOGICAL_OPERATORS_ARITY = {
3368 AND: 'n',
3369 OR: 'n',
3370 NOT: 1,
3371 }
3372

Callers 1

modifyRuleFunction · 0.70

Calls 1

traverseTreeFunction · 0.70

Tested by

no test coverage detected