reworked the light novel menue to make it more cohesive as well as did error handeling in ln/search.rs

This commit is contained in:
Zastian Pretorius
2022-07-11 23:56:58 +01:00
parent 619b8c7f59
commit 36ac04079c
2 changed files with 18 additions and 15 deletions

View File

@@ -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::<u32>().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::<u32>().is_ok() {
chapter_number_int = chapter_number.parse::<u32>().unwrap();
_chapter_number_int = chapter_number.parse::<u32>().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);
}

View File

@@ -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::<usize>().is_ok() {
let ln_number = ln_number.trim().to_string();
let ln_number = ln_number.parse::<usize>().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");
}