From b274e16b133a3c5846f6e95566d980f021433166 Mon Sep 17 00:00:00 2001 From: Hansoo Date: Sun, 15 Jan 2023 16:52:27 +0900 Subject: [PATCH] modified data type for new data schema --- src-tauri/src/main.rs | 38 ++++++---------- src/lib/DisplayData.svelte | 89 ++++++++++++++++++-------------------- 2 files changed, 56 insertions(+), 71 deletions(-) diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index a49d20b..35ea20f 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -8,9 +8,7 @@ use wana_kana::to_katakana::*; #[derive(Serialize, Deserialize, Debug, Clone)] struct SearchResult { id: i64, - dex_index: String, - jap_name: String, - eng_name: String, + name: String, types: String, hp: i64, attack: i64, @@ -18,8 +16,8 @@ struct SearchResult { special_attack: i64, special_defense: i64, speed: i64, - thumb_small: String, - thumb_big: String, + abilities: String, + thumbnail: String, } #[derive(Serialize, Deserialize, Debug, Clone)] @@ -49,7 +47,7 @@ fn greet(name: &str) -> String { fn autosearch(keyword: &str) -> serde_json::Value { let connection = sqlite::open("./pokemon.db").unwrap(); - let query = "SELECT * FROM pokemon WHERE LOWER(eng_name) like ? or jap_name like ? or jap_name like ? or LOWER(dex_index) like ? LIMIT 5"; + let query = "SELECT * FROM pokemon WHERE name like ? or name like ? LIMIT 5"; let mut result: Vec = vec![]; let aste_keyword = format!("%{}%", keyword.to_lowercase()); let katakana = format!("%{}%", to_katakana(keyword)); @@ -60,21 +58,15 @@ fn autosearch(keyword: &str) -> serde_json::Value { .into_iter() .bind((1, aste_keyword.as_str())) .unwrap() - .bind((2, aste_keyword.as_str())) - .unwrap() - .bind((3, katakana.as_str())) - .unwrap() - .bind((4, aste_keyword.as_str())) + .bind((2, katakana.as_str())) .unwrap() .map(|row| row.unwrap()) { let row_result = Autosearch { id: row.read::("id"), name: format!( - "{} - {} ({})", - row.read::<&str, _>("dex_index").to_string(), - row.read::<&str, _>("jap_name").to_string(), - row.read::<&str, _>("eng_name").to_string() + "{}", + row.read::<&str, _>("name").to_string() ), }; result.push(row_result); @@ -96,12 +88,10 @@ fn search(index: i64) -> SearchResult { { let row_result = SearchResult { id: row.read::("id"), - dex_index: row.read::<&str, _>("dex_index").to_string(), - eng_name: row.read::<&str, _>("eng_name").to_string(), - jap_name: row.read::<&str, _>("jap_name").to_string(), + name: row.read::<&str, _>("name").to_string(), types: row.read::<&str, _>("types").to_string(), - thumb_big: row.read::<&str, _>("thumb_big").to_string(), - thumb_small: row.read::<&str, _>("thumb_small").to_string(), + thumbnail: row.read::<&str, _>("thumbnail").to_string(), + abilities: row.read::<&str, _>("abilities").to_string(), hp: row.read::("hp"), attack: row.read::("attack"), defense: row.read::("defense"), @@ -113,12 +103,10 @@ fn search(index: i64) -> SearchResult { } return SearchResult { id: 0, - dex_index: "#???".to_string(), - eng_name: "Missigno".to_string(), - jap_name: "Missigno".to_string(), + name: "Missigno".to_string(), types: "[]".to_string(), - thumb_big: "".to_string(), - thumb_small: "".to_string(), + thumbnail: "".to_string(), + abilities: "{}".to_string(), hp: 0, attack: 0, defense: 0, diff --git a/src/lib/DisplayData.svelte b/src/lib/DisplayData.svelte index 70837c0..112456d 100644 --- a/src/lib/DisplayData.svelte +++ b/src/lib/DisplayData.svelte @@ -46,64 +46,60 @@ let result = [] parsed_types.forEach(type => { switch (type) { - case 0: { + case 1: { result.push(`
ノーマル
`) break; } - case 1: { - result.push(`
かくとう
`) - break; - } case 2: { - result.push(`
ひこう
`) - break; - } - case 3: { - result.push(`
どく
`) - break; - } - case 4: { - result.push(`
じめん
`) - break; - } - case 5: { - result.push(`
いわ
`) - break; - } - case 6: { - result.push(`
むし
`) - break; - } - case 7: { - result.push(`
ゴースト
`) - break; - } - case 8: { - result.push(`
はがね
`) - break; - } - case 9: { result.push(`
ほのお
`) break; } - case 10: { + case 3: { result.push(`
みず
`) break; } - case 11: { - result.push(`
くさ
`) - break; - } - case 12: { + case 4: { result.push(`
でんき
`) break; } - case 13: { + case 5: { + result.push(`
くさ
`) + break; + } + case 6: { + result.push(`
こおり
`) + break; + } + case 7: { + result.push(`
かくとう
`) + break; + } + case 8: { + result.push(`
どく
`) + break; + } + case 9: { + result.push(`
じめん
`) + break; + } + case 10: { + result.push(`
ひこう
`) + break; + } + case 11: { result.push(`
エスパー
`) break; } + case 12: { + result.push(`
むし
`) + break; + } + case 13: { + result.push(`
いわ
`) + break; + } case 14: { - result.push(`
こおり
`) + result.push(`
ゴースト
`) break; } case 15: { @@ -115,6 +111,10 @@ break; } case 17: { + result.push(`
はがね
`) + break; + } + case 18: { result.push(`
フェアリー
`) break; } @@ -166,15 +166,12 @@
{#if pokemonData && pokemonData.id && pokemonData.id > 0}
- {pokemonData.jap_name}/ + {pokemonData.jap_name}
- - - - +
{pokemonData.jap_name}
{pokemonData.eng_name}{pokemonData.name}
{@html generate_type(pokemonData.types)}