Fixed matching the BulkType
The serde to_string thing has "" around the strings.
This commit is contained in:
@@ -2,6 +2,7 @@ use sqlite;
|
||||
use std::fs;
|
||||
use std::path::PathBuf;
|
||||
|
||||
use super::utils::get_local_cache_folder;
|
||||
use super::utils::{create_cache_folder, get_local_data_folder, SQLITE_FILENAME};
|
||||
|
||||
fn get_local_data_sqlite_file() -> PathBuf {
|
||||
@@ -30,6 +31,8 @@ pub fn init_db() -> bool {
|
||||
create_cache_folder();
|
||||
let sqlite_file = get_local_data_sqlite_file();
|
||||
println!("sqlite file location: {}", sqlite_file.display());
|
||||
// TESTING
|
||||
println!("cache folder: {}", get_local_cache_folder().display());
|
||||
let _res = fs::remove_file(&sqlite_file);
|
||||
// TODO actually check result for whether it was a permissions thing or something
|
||||
let connection = sqlite::open(sqlite_file).unwrap();
|
||||
|
||||
@@ -5,7 +5,7 @@ use ureq;
|
||||
use uuid::Uuid;
|
||||
|
||||
#[allow(dead_code)]
|
||||
#[derive(Deserialize, Debug)]
|
||||
#[derive(Deserialize, Debug, Clone)]
|
||||
struct ScryfallBulkData {
|
||||
pub id: Uuid,
|
||||
pub uri: String,
|
||||
@@ -20,7 +20,7 @@ struct ScryfallBulkData {
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
#[derive(Deserialize, Debug)]
|
||||
#[derive(Deserialize, Debug, Clone)]
|
||||
struct ScryfallBulk {
|
||||
pub object: String,
|
||||
pub has_more: bool,
|
||||
@@ -56,11 +56,17 @@ pub fn download_latest(
|
||||
|
||||
let mut download_uri = String::new();
|
||||
for scryfall_bulk in bulk_body.data {
|
||||
if serde_json::to_string(&stype).unwrap() == scryfall_bulk.stype {
|
||||
if serde_json::to_string(&stype)
|
||||
.unwrap()
|
||||
.contains(&scryfall_bulk.stype)
|
||||
{
|
||||
download_uri = scryfall_bulk.download_uri;
|
||||
break;
|
||||
}
|
||||
}
|
||||
assert!(!download_uri.is_empty());
|
||||
return Ok(());
|
||||
// Just while testing - don't need to download 150MB every time...
|
||||
let cards_response = ureq::get(download_uri)
|
||||
.header("User-Agent", "Arthur's Card Finger Testing v0.1")
|
||||
.header("Accept", "application/json")
|
||||
|
||||
@@ -38,7 +38,7 @@ fn get_local_data_sqlite_file() -> PathBuf {
|
||||
}
|
||||
|
||||
// NOTE: this should be idempotent - creating a dir always is... right?
|
||||
pub fn create_cache_folder() {
|
||||
pub fn create_data_folder() {
|
||||
let f = get_local_data_folder();
|
||||
let ret = fs::create_dir(&f);
|
||||
match ret {
|
||||
@@ -57,3 +57,24 @@ pub fn create_cache_folder() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// NOTE: this should be idempotent - creating a dir always is... right?
|
||||
pub fn create_cache_folder() {
|
||||
let f = get_local_cache_folder();
|
||||
let ret = fs::create_dir(&f);
|
||||
match ret {
|
||||
Ok(_) => (),
|
||||
Err(e) => {
|
||||
if e.raw_os_error().unwrap() == 17 {
|
||||
// 17 = this is folder already exists - which is fine for us
|
||||
// TODO probably should use e.kind() for better readability
|
||||
return;
|
||||
}
|
||||
panic!(
|
||||
"Couldn't create folder within your cache folder: {}. Error is {}",
|
||||
f.display(),
|
||||
e
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user