chore(katana): move regex building to swordfish

Welp, I can add my dirty workaround now
This commit is contained in:
2024-01-10 12:31:29 +07:00
parent 5accadf277
commit 952467d4b1
2 changed files with 41 additions and 40 deletions

View File

@ -41,43 +41,13 @@ pub async fn query_character(name: &String, series: &String) -> Option<Character
}
pub async fn query_character_regex(name: &String, series: &String) -> Option<Character> {
let mut name_regex = String::new();
let mut ascii_name = String::new();
for c in name.chars() {
if c.is_ascii_alphanumeric() {
ascii_name.push(c);
} else {
ascii_name.push(' ');
}
}
ascii_name.split_whitespace().for_each(|word| {
name_regex.push_str("(?=.*\\b");
name_regex.push_str(word.to_lowercase().as_str());
name_regex.push_str("\\b)");
});
name_regex.push_str(".+");
let mut series_regex = String::new();
let mut ascii_series = String::new();
for c in series.chars() {
if c.is_ascii_alphanumeric() {
ascii_series.push(c);
} else {
ascii_series.push(' ');
}
}
ascii_series.split_whitespace().for_each(|word| {
series_regex.push_str("(?=.*\\b");
series_regex.push_str(word.to_lowercase().as_str());
series_regex.push_str("\\b)");
});
series_regex.push_str(".+");
KATANA
.get()
.unwrap()
.find_one(
mongodb::bson::doc! {
"name": {"$regex": name_regex, "$options" : "i"},
"series": {"$regex": series_regex, "$options" : "i"}
"name": {"$regex": name, "$options" : "i"},
"series": {"$regex": series, "$options" : "i"}
},
None,
)