Add not contains, not regex and regex ignore case

This commit is contained in:
Ajay
2025-06-06 23:51:36 -04:00
parent 3fb9286e47
commit b2461a6a30

View File

@@ -28,7 +28,11 @@ export enum SkipRuleOperator {
Equal = "==", Equal = "==",
NotEqual = "!=", NotEqual = "!=",
Contains = "*=", Contains = "*=",
Regex = "~=" NotContains = "!*=",
Regex = "~=",
RegexIgnoreCase = "~i=",
NotRegex = "!~=",
NotRegexIgnoreCase = "!~i="
} }
export interface AdvancedSkipRule { export interface AdvancedSkipRule {
@@ -127,8 +131,16 @@ function isSkipRulePassing(segment: SponsorTime | VideoLabelsCacheData, rule: Ad
return value !== rule.value; return value !== rule.value;
case SkipRuleOperator.Contains: case SkipRuleOperator.Contains:
return String(value).toLocaleLowerCase().includes(String(rule.value).toLocaleLowerCase()); return String(value).toLocaleLowerCase().includes(String(rule.value).toLocaleLowerCase());
case SkipRuleOperator.NotContains:
return !String(value).toLocaleLowerCase().includes(String(rule.value).toLocaleLowerCase());
case SkipRuleOperator.Regex: case SkipRuleOperator.Regex:
return new RegExp(rule.value as string).test(String(value)); return new RegExp(rule.value as string).test(String(value));
case SkipRuleOperator.RegexIgnoreCase:
return new RegExp(rule.value as string, "i").test(String(value));
case SkipRuleOperator.NotRegex:
return !new RegExp(rule.value as string).test(String(value));
case SkipRuleOperator.NotRegexIgnoreCase:
return !new RegExp(rule.value as string, "i").test(String(value));
default: default:
return false; return false;
} }