use janki::{
file_storage::NamedFileStorage,
game::{default_sag, AnkiGame},
item::Fact,
};
use std::io::stdin;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let storage: NamedFileStorage = "./janki_db.json".into();
let map = default_sag();
let mut anki = AnkiGame::new(storage, map)?;
let mut input = String::new();
loop {
input.clear();
println!("Add, Test or Exit - [atE]: ");
stdin().read_line(&mut input)?;
match input.trim() {
"a" => {
let mut term = String::new();
let mut def = String::new();
println!("Enter a term: ");
stdin().read_line(&mut term)?;
println!("Add a definition: ");
stdin().read_line(&mut def)?;
anki.add_card(Fact::new(term.trim(), def.trim()));
}
"t" => {
let mut item = anki.get_item_guard().unwrap().0; let mut answer = String::new();
println!("What is the definition of {}", item.term);
stdin().read_line(&mut answer)?;
if answer.trim() == item.definition {
println!("Correct!");
item.was_succesful = Some(true);
} else {
println!("Wrong - the answer is {}", item.definition);
item.was_succesful = Some(false);
}
}
_ => break,
}
println!("\n\n\n");
}
Ok(())
}