From 72fa35d41a575de41574761cd6881f7d888d4408 Mon Sep 17 00:00:00 2001 From: Arthur Roberts Date: Sat, 16 Aug 2025 03:59:24 +0100 Subject: [PATCH] Got all cards out from db --- scryfall_deser/src/db.rs | 12 ++++++++++++ scryfall_deser/src/lib.rs | 2 +- scryfall_deser/src/main.rs | 14 ++++++++------ 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/scryfall_deser/src/db.rs b/scryfall_deser/src/db.rs index 3f373dc..0a9971f 100644 --- a/scryfall_deser/src/db.rs +++ b/scryfall_deser/src/db.rs @@ -26,6 +26,18 @@ CREATE TABLE cards ( .to_string() } +pub fn get_all_card_names() -> Vec { + let sqlite_file = get_local_data_sqlite_file(); + let conn = rusqlite::Connection::open(sqlite_file).unwrap(); + let mut stmt = conn.prepare("SELECT name FROM cards;").unwrap(); + let mut rows = stmt.query([]).unwrap(); + let mut card_names = Vec::new(); + while let Some(row) = rows.next().unwrap() { + card_names.push(row.get(0).unwrap()); + } + card_names +} + pub fn update_db_with_file(file: PathBuf) -> bool { let ac = fs::read_to_string(file).unwrap(); let ac: Vec = serde_json::from_str(&ac).unwrap(); diff --git a/scryfall_deser/src/lib.rs b/scryfall_deser/src/lib.rs index d149d3a..d65df66 100644 --- a/scryfall_deser/src/lib.rs +++ b/scryfall_deser/src/lib.rs @@ -5,7 +5,7 @@ mod deser; pub use crate::deser::ScryfallCard; mod db; -pub use db::{init_db, update_db_with_file}; +pub use db::{get_all_card_names, init_db, update_db_with_file}; mod utils; pub use utils::get_local_cache_folder; diff --git a/scryfall_deser/src/main.rs b/scryfall_deser/src/main.rs index eab7bfb..c27ebac 100644 --- a/scryfall_deser/src/main.rs +++ b/scryfall_deser/src/main.rs @@ -1,4 +1,5 @@ use clap::Parser; +use scryfall_deser::get_all_card_names; use scryfall_deser::get_local_cache_folder; use scryfall_deser::init_db; use scryfall_deser::update_db_with_file; @@ -14,7 +15,11 @@ struct Args { fn main() { let args = Args::parse(); if args.update { - unimplemented!("Haven't implemented update yet"); + init_db(); + let mut path = get_local_cache_folder(); + // TODO - actually download and update + path.push("oracle-cards-20250814210711.json"); + update_db_with_file(path); } let card_name = args.remainder; if card_name.is_empty() { @@ -22,9 +27,6 @@ fn main() { } let search_string = card_name.join(" "); dbg!(search_string); - - init_db(); - let mut path = get_local_cache_folder(); - path.push("oracle-cards-20250814210711.json"); - update_db_with_file(path); + let cards = get_all_card_names(); + dbg!(cards); }