commit 44542f415b93e2515f03768914f69acc8e9db6bf
parent 9aa9c4b03c0649b5dfa3d3826b7d2277a6b44b30
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Fri, 31 Mar 2023 19:40:38 -0700
cleanup
Diffstat:
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/src/lechatphp/mod.rs b/src/lechatphp/mod.rs
@@ -163,11 +163,7 @@ fn solve_difficulty3(img: &DynamicImage) -> Result<String, CaptchaErr> {
//img.save(format!("captcha.gif")).unwrap();
// Step1: Find all letters with red on the center
- let letters_set = find_letters(&img);
-
- if letters_set.len() != NB_CHARS as usize {
- return Err(CaptchaErr(format!("did not find exactly 5 letters {}", letters_set.len())));
- }
+ let letters_set = find_letters(&img)?;
// Step2: Find the starting letter
let starting = get_starting_letter(&img, &letters_set)
@@ -198,7 +194,7 @@ fn solve_path(starting: &Letter, letters_set: &HashSet<Letter>, img: &DynamicIma
answer
}
-fn find_letters(img: &DynamicImage) -> HashSet<Letter> {
+fn find_letters(img: &DynamicImage) -> Result<HashSet<Letter>, CaptchaErr> {
const IMAGE_WIDTH: u32 = 150;
const IMAGE_HEIGHT: u32 = 200;
const MIN_PX_FOR_LETTER: usize = 21;
@@ -244,7 +240,10 @@ fn find_letters(img: &DynamicImage) -> HashSet<Letter> {
}
}
}
- letters_set
+ if letters_set.len() != NB_CHARS as usize {
+ return Err(CaptchaErr(format!("did not find exactly 5 letters {}", letters_set.len())));
+ }
+ Ok(letters_set)
}
fn get_starting_letter<'a>(img: &DynamicImage, letters_set: &'a HashSet<Letter>) -> Option<&'a Letter> {