use classcharts::Client;
use std::io::{stdin, stdout, Write};
fn grab_input(text: &'static str) -> String {
let mut s = String::new();
print!("{} ", text);
let _ = stdout().flush();
stdin()
.read_line(&mut s)
.expect("Did not enter a correct string");
if let Some('\n') = s.chars().next_back() {
s.pop();
}
if let Some('\r') = s.chars().next_back() {
s.pop();
}
return s;
}
#[tokio::main]
async fn main() {
let code = grab_input("What is your classcharts code?");
let dob = grab_input("What is your date of birth (DD/MM/YYYY)?");
let client = Client::create(code, dob, None).await;
match client {
Ok(mut client) => {
let student = client.get_student_info().await.unwrap();
println!("Hello, {}!", student.data.user.first_name);
if student.data.user.display_homework {
let homework = client.get_homeworks(None).await.unwrap();
let completed = homework.meta.this_week_completed_count;
println!(
"You have {} completed homework{} this week.",
completed,
if completed == 1 { "" } else { "s" }
);
} else {
println!("Sadly you do not have access to the homework feature but here's a cat 🐱");
}
}
Err(err) => {
println!("{:?}: {}", err, err);
}
}
}