diff --git a/src/ln/menu.rs b/src/ln/menu.rs index b0cf4e4..d2a2ab6 100644 --- a/src/ln/menu.rs +++ b/src/ln/menu.rs @@ -27,9 +27,10 @@ pub fn chapter_selector(ln_url: &str, mut selected_page: u32) -> (String, u32) { } count += 1; }); - println!("(n)\t{}", "Go to next page".red()); - println!("(b)\t{}", "Go to previous page".red()); - println!("(q)\t{}", "go back to main menu".red()); + println!("(n)\t{}", "Go to next page".green()); + println!("(b)\t{}", "Go to previous page".yellow()); + println!("(s)\t{}", "Search another title".red()); + println!("(q)\t{}", "quit".red()); let chapter_number = string_input("Which chapter do you want to read? "); if chapter_number == "n" && selected_page < ln_last_page.parse::().unwrap() { selected_page += 1; @@ -38,17 +39,21 @@ pub fn chapter_selector(ln_url: &str, mut selected_page: u32) -> (String, u32) { selected_page -= 1; print!("\x1B[2J\x1B[1;1H"); } else if chapter_number == "q" { + print!("\x1B[2J\x1B[1;1H"); + std::process::exit(0); + } else if chapter_number == "s" { main(); - } else { + } + else { let chapter_number = chapter_number.trim().to_string(); - let mut chapter_number_int = 0; + let mut _chapter_number_int = 0; if chapter_number.parse::().is_ok() { - chapter_number_int = chapter_number.parse::().unwrap(); + _chapter_number_int = chapter_number.parse::().unwrap(); } else { - println!("{}", "Invalid chapter number".red()); + println!("{}", "Invalid option".red()); continue; } - let chapter_url = &ln_chapters_urls[chapter_number_int as usize]; + let chapter_url = &ln_chapters_urls[_chapter_number_int as usize]; let chapter_url = chapter_url.trim().to_string(); return (chapter_url, selected_page); } diff --git a/src/ln/search.rs b/src/ln/search.rs index 8b70e49..9788eec 100644 --- a/src/ln/search.rs +++ b/src/ln/search.rs @@ -29,13 +29,9 @@ pub fn search_ln() -> String { } count += 1; }); - println!("(n)\t{}", "Search another title".red()); - let mut ln_number = String::new(); - std::io::stdin() - .read_line(&mut ln_number) - .expect("Failed to read line"); - ln_number = ln_number.trim().to_string(); - if ln_number != "n" { + println!("(s)\t{}", "Search another title".green()); + let ln_number = string_input("Enter an option: "); + if ln_number != "s" && ln_number.parse::().is_ok() { let ln_number = ln_number.trim().to_string(); let ln_number = ln_number.parse::().unwrap(); let ln_url = &ln_urls[ln_number]; @@ -43,6 +39,8 @@ pub fn search_ln() -> String { _is_n = true; print!("\x1B[2J\x1B[1;1H"); return ln_url; + } else { + print!("invalid input"); } print!("\x1B[2J\x1B[1;1H"); }