diff --git a/src/main.rs b/src/main.rs index c7a0327..d1fdbbb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -53,6 +53,30 @@ fn show_week_period_for_week_number(w: usize, year: i32) { ); } +fn get_week_number() -> isize { + let client = Client::new(); + + let mut res = client + .get(WEEKDAY_WEBSITE) + .header(Connection::close()) + .send() + .unwrap_or_else(|why| { + panic!("Error fetching week number, make sure you have an internet connection"); + }); + + let mut body = String::new(); + res.read_to_string(&mut body).unwrap(); + + let body_index = body.find("\n").unwrap() + "\n".len(); + let break_index = body.find("
").unwrap(); + let week_number = &body[body_index..break_index]; + + return match week_number.parse::() { + Ok(num) => num, + _ => -1, + }; +} + fn main() { let year = Local::now().year(); @@ -69,23 +93,15 @@ fn main() { print_help(); } else { - let client = Client::new(); - - let mut res = client - .get(WEEKDAY_WEBSITE) - .header(Connection::close()) - .send() - .unwrap_or_else(|why| { - panic!("Error fetching week number, make sure you have an internet connection"); - }); - - let mut body = String::new(); - res.read_to_string(&mut body).unwrap(); - - let body_index = body.find("\n").unwrap() + "\n".len(); - let break_index = body.find("
").unwrap(); + println!("{}", get_week_number()); + } +} - let week_number = &body[body_index..break_index]; - println!("{}", week_number); +#[test] +fn week_number_should_be_between_1_and_53() { + if let 1...53 = get_week_number() { + assert!(true, "Week number is between 1 and 53"); + } else { + assert!(false, "Week number is not between 1 and 53"); } }