Separated previously used function
This commit is contained in:
@@ -152,7 +152,7 @@ pub fn get_card_by_name(name: &str, name_type: GetNameType) -> Option<DbCard> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn find_matching_cards_seperate_words(search_strings: &Vec<String>) -> Vec<DbCard> {
|
pub fn find_matching_cards_scryfall_style(search_strings: &Vec<String>) -> Vec<DbCard> {
|
||||||
assert!(!search_strings.is_empty());
|
assert!(!search_strings.is_empty());
|
||||||
let sqlite_file = get_local_data_sqlite_file();
|
let sqlite_file = get_local_data_sqlite_file();
|
||||||
let conn = rusqlite::Connection::open(sqlite_file).unwrap();
|
let conn = rusqlite::Connection::open(sqlite_file).unwrap();
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ pub use crate::deser::ScryfallCard;
|
|||||||
|
|
||||||
mod db;
|
mod db;
|
||||||
pub use db::{
|
pub use db::{
|
||||||
find_matching_cards, find_matching_cards_seperate_words, get_all_card_names,
|
find_matching_cards, find_matching_cards_scryfall_style, get_all_card_names,
|
||||||
get_all_lowercase_card_names, get_card_by_name, init_db, update_db_with_file, GetNameType,
|
get_all_lowercase_card_names, get_card_by_name, init_db, update_db_with_file, GetNameType,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
use scryfall_deser::find_matching_cards;
|
use scryfall_deser::find_matching_cards_scryfall_style;
|
||||||
use scryfall_deser::find_matching_cards_seperate_words;
|
|
||||||
use scryfall_deser::get_card_by_name;
|
use scryfall_deser::get_card_by_name;
|
||||||
use scryfall_deser::get_local_cache_folder;
|
use scryfall_deser::get_local_cache_folder;
|
||||||
use scryfall_deser::init_db;
|
use scryfall_deser::init_db;
|
||||||
@@ -55,6 +54,17 @@ fn exact_search(search_strings: Vec<String>) -> MtgCardExit {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// For use with find_matching_cards
|
||||||
|
fn _combine_search_strings(search_strings: Vec<String>) -> String {
|
||||||
|
let mut search_string = String::new();
|
||||||
|
for card in search_strings {
|
||||||
|
search_string.push_str(&card.to_lowercase());
|
||||||
|
search_string.push_str(" ");
|
||||||
|
}
|
||||||
|
search_string.pop();
|
||||||
|
search_string
|
||||||
|
}
|
||||||
|
|
||||||
fn main() -> MtgCardExit {
|
fn main() -> MtgCardExit {
|
||||||
let args = Args::parse();
|
let args = Args::parse();
|
||||||
if args.update {
|
if args.update {
|
||||||
@@ -75,18 +85,7 @@ fn main() -> MtgCardExit {
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO consider scryfall-like search where I think they do something like:
|
let matching_cards = find_matching_cards_scryfall_style(&args.search_text);
|
||||||
// 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);
|
|
||||||
*/
|
|
||||||
let matching_cards = find_matching_cards_seperate_words(&args.search_text);
|
|
||||||
|
|
||||||
if matching_cards.is_empty() {
|
if matching_cards.is_empty() {
|
||||||
// Do some distance checking stuff
|
// Do some distance checking stuff
|
||||||
|
|||||||
Reference in New Issue
Block a user