bhcli

"Strange's fork of n0tr1v's bhcli (onion)"
git clone https://git.dasho.dev/Strange/bhcli.git
Log | Files | Refs | README

commit a4a8b7e4c0049c23985ae3db32da688cc7f105c6
parent 68ee2e289b2cc9e1c5d38b3296e1ba9589bea0f9
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Fri, 31 Mar 2023 18:17:59 -0700

refactor name

Diffstat:
Msrc/lechatphp/mod.rs | 24++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/src/lechatphp/mod.rs b/src/lechatphp/mod.rs @@ -163,24 +163,24 @@ 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_map = find_letters(&img); + let letters_set = find_letters(&img); - if letters_map.len() != NB_CHARS as usize { - return Err(CaptchaErr(format!("did not find exactly 5 letters {}", letters_map.len()))); + if letters_set.len() != NB_CHARS as usize { + return Err(CaptchaErr(format!("did not find exactly 5 letters {}", letters_set.len()))); } // Step2: Find the starting letter - let starting = get_starting_letter(&img, &letters_map) + let starting = get_starting_letter(&img, &letters_set) .ok_or(CaptchaErr("could not find starting letter".to_owned()))?; // Step3: Solve path - let answer = solve_path(starting, &letters_map, &img); + let answer = solve_path(starting, &letters_set, &img); Ok(answer) } -fn solve_path(starting: Letter, letters_map: &HashSet<Letter>, img: &DynamicImage) -> String { +fn solve_path(starting: Letter, letters_set: &HashSet<Letter>, img: &DynamicImage) -> String { let mut answer = String::new(); - let mut remaining: HashSet<_> = letters_map.iter().collect(); + let mut remaining: HashSet<_> = letters_set.iter().collect(); let mut letter = remaining.take(&starting).unwrap(); for _ in 0..NB_CHARS { answer.push(letter.character); @@ -202,7 +202,7 @@ fn find_letters(img: &DynamicImage) -> HashSet<Letter> { const IMAGE_WIDTH: u32 = 150; const IMAGE_HEIGHT: u32 = 200; const MIN_PX_FOR_LETTER: usize = 21; - let mut letters_map: HashSet<Letter> = HashSet::new(); + let mut letters_set: HashSet<Letter> = HashSet::new(); for y in 0..IMAGE_HEIGHT-LETTER_HEIGHT { for x in 0..IMAGE_WIDTH-LETTER_WIDTH { let letter_img = img.crop_imm(x, y, LETTER_WIDTH, LETTER_HEIGHT); @@ -240,18 +240,18 @@ fn find_letters(img: &DynamicImage) -> HashSet<Letter> { } let letter = Letter::new(Point::new(x, y), c); - letters_map.insert(letter); // Keep letters in hashmap for easy access + letters_set.insert(letter); break; } } } - letters_map + letters_set } -fn get_starting_letter(img: &DynamicImage, letters_map: &HashSet<Letter>) -> Option<Letter> { +fn get_starting_letter(img: &DynamicImage, letters_set: &HashSet<Letter>) -> Option<Letter> { const MIN_STARTING_PT_RED_PX: usize = 50; let mut starting: Option<Letter> = None; - for letter in letters_map.iter() { + for letter in letters_set.iter() { let square = img.crop_imm(letter.offset.x-5, letter.offset.y-3, LETTER_WIDTH+5+6, LETTER_HEIGHT+3+2); let count_red = count_red_px(&square); if count_red > MIN_STARTING_PT_RED_PX {