From fef737f99a7a77e95ee56300caa7991103db7650 Mon Sep 17 00:00:00 2001 From: Drew Short Date: Sun, 24 May 2020 16:35:24 -0500 Subject: [PATCH] Added datetime library to handle timestamps --- Cargo.lock | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 1 + src/model.rs | 10 ++++++---- 3 files changed, 55 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9495201..9ef8679 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,6 +4,7 @@ name = "animebox-sync" version = "0.1.0" dependencies = [ + "chrono", "clap", "serde", "serde_json", @@ -29,12 +30,30 @@ dependencies = [ "winapi", ] +[[package]] +name = "autocfg" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" + [[package]] name = "bitflags" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" +[[package]] +name = "chrono" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80094f509cf8b5ae86a4966a39b3ff66cd7e2a3e594accec3743ff3fabeab5b2" +dependencies = [ + "num-integer", + "num-traits", + "serde", + "time", +] + [[package]] name = "clap" version = "2.33.1" @@ -71,6 +90,25 @@ version = "0.2.70" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3baa92041a6fec78c687fa0cc2b3fae8884f743d672cf551bed1d6dac6988d0f" +[[package]] +name = "num-integer" +version = "0.1.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096" +dependencies = [ + "autocfg", +] + [[package]] name = "proc-macro2" version = "1.0.17" @@ -152,6 +190,16 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "time" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "unicode-width" version = "0.1.7" diff --git a/Cargo.toml b/Cargo.toml index 4114b6e..128de4b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,6 +12,7 @@ incremental = false # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] +chrono = { version = "0.4.11", features = ["serde"] } clap = "2.33.1" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" \ No newline at end of file diff --git a/src/model.rs b/src/model.rs index 13a0059..ea8ddc1 100644 --- a/src/model.rs +++ b/src/model.rs @@ -1,9 +1,10 @@ +use chrono::DateTime; use serde::{Deserialize, Serialize}; #[derive(Serialize, Deserialize, Debug)] pub struct AnimeBoxesBackup { #[serde(rename(serialize = "backupTime", deserialize = "backupTime"))] - backup_time: String, + backup_time: DateTime, #[serde(rename(serialize = "backupVersion", deserialize = "backupVersion"))] backup_version: String, #[serde(rename(serialize = "bannedTags", deserialize = "bannedTags"))] @@ -21,7 +22,7 @@ pub struct AnimeBoxesBackup { #[derive(Serialize, Deserialize, Debug)] struct AnimeBoxesFavorite { #[serde(rename(serialize = "dateAdded", deserialize = "dateAdded"))] - date_added: String, + date_added: DateTime, #[serde(rename(serialize = "disableStorage", deserialize = "disableStorage"))] disable_storage: bool, #[serde(rename( @@ -103,7 +104,7 @@ struct AnimeBoxesSearch { #[serde(rename(serialize = "itemId", deserialize = "itemId"))] item_id: i32, #[serde(rename(serialize = "searchDate", deserialize = "searchDate"))] - search_date: String, + search_date: DateTime, #[serde(rename(serialize = "searchText", deserialize = "searchText"))] search_text: String, starred: bool, @@ -111,7 +112,8 @@ struct AnimeBoxesSearch { #[derive(Serialize, Deserialize, Debug)] struct AnimeBoxesServer { - apikey: String, + #[serde(rename(serialize = "apikey", deserialize = "apikey"))] + api_key: String, #[serde(rename(serialize = "isDefault", deserialize = "isDefault"))] is_default: bool, #[serde(rename(serialize = "isSelected", deserialize = "isSelected"))]