Added searching by lower or card name

Also added help strings
This commit is contained in:
2025-08-19 22:02:18 +01:00
parent 9f03e3e11f
commit 98af8885a6
3 changed files with 50 additions and 21 deletions

View File

@@ -4,14 +4,17 @@ use scryfall_deser::get_card_by_name;
use scryfall_deser::get_local_cache_folder;
use scryfall_deser::init_db;
use scryfall_deser::update_db_with_file;
use scryfall_deser::GetNameType;
use textdistance::str::damerau_levenshtein;
#[derive(Parser, Debug)]
#[command(version, about, long_about = None)]
struct Args {
/// Download the latest bulk from Scryfall and update local db
#[arg(short, long)]
update: bool,
remainder: Vec<String>,
/// Text to search for card with
search_text: Vec<String>,
}
fn main() {
@@ -24,14 +27,14 @@ fn main() {
update_db_with_file(path);
return;
}
let card_name = args.remainder;
let card_name = args.search_text;
if card_name.is_empty() {
panic!("You need to put some card text to search");
}
let search_string = card_name.join(" ");
//dbg!(&search_string);
let cards = get_all_lowercase_card_names();
//dbg!(&cards);
let mut matching_cards = Vec::new();
for card in cards {
if card.contains(&search_string) {
@@ -40,8 +43,23 @@ fn main() {
}
if matching_cards.is_empty() {
// Do some distance checking stuff
} else if matching_cards.len() == 1 {
let card = get_card_by_name(&matching_cards[0], GetNameType::LowercaseName);
dbg!(card);
} else {
// This will be the harder part I think
}
//dbg!(matching_cards);
let card = get_card_by_name("Black Lotus");
/* For testing - all seemed to work alright
let card = get_card_by_name("Black Lotus", GetNameType::Name);
dbg!(card);
let cards = get_all_card_names();
for card in cards {
let card = get_card_by_name(&card);
dbg!(&card);
if card.is_none() {
panic!("None card for {:?}", card);
}
}
*/
}