From 40e308dab4b2d2407cb800554786a90dd62b0741 Mon Sep 17 00:00:00 2001 From: Zastian Pretorius Date: Mon, 11 Jul 2022 16:26:08 +0100 Subject: [PATCH] fixed bug where you could not watch the last episode --- src/anime/anime.rs | 10 +++++----- src/ln/ln.rs | 2 +- src/ln/menu.rs | 15 ++++++++++----- src/main.rs | 6 +++--- 4 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/anime/anime.rs b/src/anime/anime.rs index 0239180..29769db 100644 --- a/src/anime/anime.rs +++ b/src/anime/anime.rs @@ -1,4 +1,4 @@ -use crate::{string_input,int_input,u16_input}; +use crate::{string_input,int_input}; use crate::{anime_names,anime_ep_range,anime_link}; use crate::open_video; use crate::main; @@ -30,9 +30,9 @@ pub fn anime_stream(){ count += 1; }); let mut anime_num: usize = usize::MAX; - while anime_num == usize::max_value() || anime_num >= anime_list.len() { + while anime_num == usize::max_value() || anime_num > anime_list.len() { anime_num = int_input("Enter anime number: "); - if anime_num >= anime_list.len() { + if anime_num > anime_list.len() { println!("Invalid anime number"); } } @@ -47,9 +47,9 @@ pub fn anime_stream(){ loop{ println!("select episode 1-{}: ", ep_range); let mut ep_num: usize = usize::MAX; - while ep_num == usize::max_value() || ep_num >= ep_range as usize { + while ep_num == usize::max_value() || ep_num > ep_range as usize { ep_num = int_input("Enter episode number: "); - if ep_num >= ep_range as usize { + if ep_num > ep_range as usize { println!("Invalid episode number"); } } diff --git a/src/ln/ln.rs b/src/ln/ln.rs index 085d3a1..d733ee0 100644 --- a/src/ln/ln.rs +++ b/src/ln/ln.rs @@ -1,7 +1,7 @@ use std::fs::File; use std::io::Write; use crate::{search_ln,chapter_selector,get_full_text,open_bat}; -pub fn ln(){ +pub fn ln_read(){ let ln_url = search_ln(); let mut selected_page = 1; loop { diff --git a/src/ln/menu.rs b/src/ln/menu.rs index 34f0b46..caf485b 100644 --- a/src/ln/menu.rs +++ b/src/ln/menu.rs @@ -11,8 +11,7 @@ use crate::{ }; pub fn chapter_selector(ln_url: &str, mut selected_page: u32) -> (String, u32) { - let exit = false; - while exit == false { + loop { let ln_html = ln::scraper::get_html(ln_url); let ln_id = get_ln_id(&ln_html); let ln_last_page = get_ln_last_page(&ln_html); @@ -42,11 +41,17 @@ pub fn chapter_selector(ln_url: &str, mut selected_page: u32) -> (String, u32) { main(); } else { let chapter_number = chapter_number.trim().to_string(); - let chapter_number = chapter_number.parse::().unwrap(); - let chapter_url = &ln_chapters_urls[chapter_number]; + let mut chapter_number_int = 0; + if chapter_number.parse::().is_ok() { + chapter_number_int = chapter_number.parse::().unwrap(); + } else { + println!("{}", "Invalid chapter number".red()); + continue; + } + //let chapter_number = chapter_number.parse::().unwrap(); + let chapter_url = &ln_chapters_urls[chapter_number_int as usize]; let chapter_url = chapter_url.trim().to_string(); return (chapter_url, selected_page); } } - ("".to_string(), 1) } diff --git a/src/main.rs b/src/main.rs index a1444df..57e42af 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,12 +1,12 @@ use crate::anime::anime::anime_stream; use crate::anime::scraper::{anime_ep_range, anime_link, anime_names}; -use crate::ln::ln::ln; +use crate::ln::ln::ln_read; use crate::ln::menu::chapter_selector; use crate::ln::open_text::open_bat; use crate::ln::scraper::get_full_text; use crate::{ anime::player::open_video, - helpers::take_input::{int_input, string_input, u16_input}, + helpers::take_input::{int_input, string_input}, ln::search::search_ln, }; use colored::Colorize; @@ -30,7 +30,7 @@ fn main() { std::process::exit(0); } if _arg == "l" { - ln(); + ln_read(); } else if _arg == "a" { anime_stream() } else {