commit bdf3a29ffe6365aecd9c84e9c6fe05a199378bc4
parent 0aa296f7f6e4f0f5bd771bbfae12cdd3304f92d2
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Thu, 30 Mar 2023 00:56:47 -0700
cleanup
Diffstat:
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/src/lechatphp/mod.rs b/src/lechatphp/mod.rs
@@ -78,15 +78,15 @@ lazy_static! {
static ref ON_COLOR: Rgba<u8> = Rgba::from([252, 254, 252, 255]);
}
-fn get_letter_img(letter: char) -> Option<DynamicImage> {
+fn get_letter_img(letter: char) -> DynamicImage {
for (k, v) in B64_MAP.iter() {
if *v == letter {
let img_dec = general_purpose::STANDARD.decode(format!("{}{}", B64_PREFIX, k)).unwrap();
let img = image::load_from_memory(&img_dec).ok()?;
- return Some(img);
+ return img;
}
}
- None
+ panic!("letter image not found for {}", letter);
}
pub fn solve_b64(b64_str: &str) -> Option<String> {
@@ -131,7 +131,7 @@ fn solve_difficulty2(img: &DynamicImage) -> Option<String> {
for i in 0..5 {
let sub_img = img.crop_imm(5 + ((8+1)*i), 7, 8, 14);
'alphabet_loop: for c in ALPHABET1.chars() {
- let good_letter_img = get_letter_img(c).unwrap();
+ let good_letter_img = get_letter_img(c);
for y in 0..14 {
for x in 0..8 {
if good_letter_img.get_pixel(x, y) == *ON_COLOR &&
@@ -218,20 +218,20 @@ fn solve_difficulty3(img: &DynamicImage) -> Result<String, CaptchaErr> {
}
for c in ALPHABET1.chars() {
- let good_letter_img = get_letter_img(c).unwrap();
+ let good_letter_img = get_letter_img(c);
if !img_contains_letter(&letter_img, &good_letter_img) {
continue;
}
// "w" fits in "W". So if we find "W" 1 px bellow, discard "w"
if c == 'w' {
- let capital_w_img = get_letter_img('W').unwrap();
+ let capital_w_img = get_letter_img('W');
let one_px_down_img = img.crop_imm(x, y+1, 8, 14);
if img_contains_letter(&one_px_down_img, &capital_w_img) {
continue;
}
} else if c == 'k' {
- let capital_k_img = get_letter_img('K').unwrap();
+ let capital_k_img = get_letter_img('K');
let one_px_up_img = img.crop_imm(x+1, y+1, 8, 14);
if img_contains_letter(&one_px_up_img, &capital_k_img) {
continue;