Scryfall-type search is working

This commit is contained in:
2025-08-20 22:30:57 +01:00
parent e966a22707
commit e40a64579b
4 changed files with 48 additions and 18 deletions

View File

@@ -1,5 +1,6 @@
use clap::Parser;
use scryfall_deser::find_matching_cards;
use scryfall_deser::find_matching_cards_seperate_words;
use scryfall_deser::get_card_by_name;
use scryfall_deser::get_local_cache_folder;
use scryfall_deser::init_db;
@@ -74,15 +75,18 @@ fn main() -> MtgCardExit {
return res;
}
// TODO consider scryfall-like search where I think they do something like:
// SELECT... WHERE name LIKE "<word1>" AND name LIKE "<word2>"...
/*
let mut search_string = String::new();
for card in args.search_text {
search_string.push_str(&card.to_lowercase());
search_string.push_str(" ");
}
search_string.pop();
let matching_cards = find_matching_cards(&search_string);
//dbg!(&matching_cards);
*/
let matching_cards = find_matching_cards_seperate_words(&args.search_text);
if matching_cards.is_empty() {
// Do some distance checking stuff
@@ -103,17 +107,4 @@ fn main() -> MtgCardExit {
return MtgCardExit::Success;
}
unreachable!("Don't know how you got here - there's a real bug with this");
/* 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);
}
}
*/
}