fix(katana): a -> [ao] in regex
I plan to move to ScyllaDB once Mongo gets too slow
This commit is contained in:
parent
1933a1fda2
commit
8ed238455d
@ -202,6 +202,8 @@ fn regexify_text(text: &String) -> String {
|
|||||||
ascii_text.push_str("[Rk]");
|
ascii_text.push_str("[Rk]");
|
||||||
} else if ['m'].contains(&c) {
|
} else if ['m'].contains(&c) {
|
||||||
ascii_text.push_str("(m|ra)");
|
ascii_text.push_str("(m|ra)");
|
||||||
|
} else if ['a'].contains(&c) {
|
||||||
|
ascii_text.push_str("[ao]")
|
||||||
} else if c.is_ascii_alphanumeric() {
|
} else if c.is_ascii_alphanumeric() {
|
||||||
ascii_text.push(c);
|
ascii_text.push(c);
|
||||||
} else {
|
} else {
|
||||||
@ -519,9 +521,9 @@ pub async fn analyze_card_subprocess(
|
|||||||
|
|
||||||
async fn execute_analyze_drop(image: DynamicImage, count: u32) -> Result<DroppedCard, String> {
|
async fn execute_analyze_drop(image: DynamicImage, count: u32) -> Result<DroppedCard, String> {
|
||||||
let config = CONFIG.get().unwrap();
|
let config = CONFIG.get().unwrap();
|
||||||
match config.tesseract.backend.as_str() {
|
match config.tesseract.backend {
|
||||||
"libtesseract" => analyze_card_libtesseract(image, count).await,
|
String::from("libtesseract") => analyze_card_libtesseract(image, count).await,
|
||||||
"subprocess" => analyze_card_subprocess(image, count).await,
|
String::from("subprocess") => analyze_card_subprocess(image, count).await,
|
||||||
_ => {
|
_ => {
|
||||||
panic!("Invalid Tesseract backend: {}", config.tesseract.backend);
|
panic!("Invalid Tesseract backend: {}", config.tesseract.backend);
|
||||||
}
|
}
|
||||||
@ -567,10 +569,10 @@ pub async fn analyze_drop_message(message: &Message) -> Result<Vec<DroppedCard>,
|
|||||||
save_image_if_trace(&card_img, &format!("debug/3-cropped-{}.png", i));
|
save_image_if_trace(&card_img, &format!("debug/3-cropped-{}.png", i));
|
||||||
jobs.push(async move {
|
jobs.push(async move {
|
||||||
trace!("Analyzing card {}", i);
|
trace!("Analyzing card {}", i);
|
||||||
Ok((i, execute_analyze_drop(card_img, i).await))
|
(i, execute_analyze_drop(card_img, i).await)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
let mut handles: Vec<task::JoinHandle<Result<(u32, Result<DroppedCard, String>), String>>> =
|
let mut handles: Vec<task::JoinHandle<(u32, Result<DroppedCard, String>)>> =
|
||||||
Vec::new();
|
Vec::new();
|
||||||
for job in jobs {
|
for job in jobs {
|
||||||
let handle = task::spawn(job);
|
let handle = task::spawn(job);
|
||||||
@ -579,18 +581,13 @@ pub async fn analyze_drop_message(message: &Message) -> Result<Vec<DroppedCard>,
|
|||||||
for handle in handles {
|
for handle in handles {
|
||||||
let result = handle.await;
|
let result = handle.await;
|
||||||
match result {
|
match result {
|
||||||
Ok(result) => {
|
Ok((i, card_result)) => {
|
||||||
match result {
|
let card = match card_result {
|
||||||
Ok((i, card_result)) => {
|
Ok(card) => card,
|
||||||
let card = match card_result {
|
|
||||||
Ok(card) => card,
|
|
||||||
Err(why) => return Err(format!("Failed to analyze card: {}", why)),
|
|
||||||
};
|
|
||||||
trace!("Finished analyzing card {}", i);
|
|
||||||
cards.push(card);
|
|
||||||
}
|
|
||||||
Err(why) => return Err(format!("Failed to analyze card: {}", why)),
|
Err(why) => return Err(format!("Failed to analyze card: {}", why)),
|
||||||
};
|
};
|
||||||
|
trace!("Finished analyzing card {}", i);
|
||||||
|
cards.push(card);
|
||||||
}
|
}
|
||||||
Err(why) => return Err(format!("Failed to analyze card: {:?}", why)),
|
Err(why) => return Err(format!("Failed to analyze card: {:?}", why)),
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user