feat: 视频规则部分,添加不区分大小写的“包含”过滤 (#559)

This commit is contained in:
ᴀᴍᴛᴏᴀᴇʀ
2025-12-06 22:00:14 +08:00
committed by GitHub
parent f1703096fd
commit 3f047771cb
3 changed files with 5 additions and 0 deletions

View File

@@ -16,6 +16,7 @@ impl Evaluatable<&str> for Condition<String> {
match self {
Condition::Equals(expected) => expected == value,
Condition::Contains(substring) => value.contains(substring),
Condition::IContains(substring) => value.to_lowercase().contains(&substring.to_lowercase()),
Condition::Prefix(prefix) => value.starts_with(prefix),
Condition::Suffix(suffix) => value.ends_with(suffix),
Condition::MatchesRegex(_, regex) => regex.is_match(value),

View File

@@ -11,6 +11,8 @@ use serde::{Deserialize, Deserializer, Serialize, Serializer};
pub enum Condition<T: Serialize + Display> {
Equals(T),
Contains(T),
#[serde(rename = "icontains")]
IContains(T),
#[serde(deserialize_with = "deserialize_regex", serialize_with = "serialize_regex")]
MatchesRegex(String, #[derivative(PartialEq = "ignore")] regex::Regex),
Prefix(T),
@@ -41,6 +43,7 @@ impl<T: Serialize + Display> Display for Condition<T> {
match self {
Condition::Equals(v) => write!(f, "等于“{}”", v),
Condition::Contains(v) => write!(f, "包含“{}”", v),
Condition::IContains(v) => write!(f, "包含(不区分大小写)“{}”", v),
Condition::MatchesRegex(pat, _) => write!(f, "匹配“{}”", pat),
Condition::Prefix(v) => write!(f, "以“{}”开头", v),
Condition::Suffix(v) => write!(f, "以“{}”结尾", v),