diff --git a/Cargo.toml b/Cargo.toml index 8eb1f82..58b17b5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,6 +22,7 @@ reqwest = { version = "0.11.22", features = [ serde = { version = "1.0.190", features = ["derive"] } serde_repr = "0.1.17" enum-iterator = "1.4.1" +chrono = {version = "0.4.31", features = ["serde"] } log = "0.4.20" diff --git a/src/types/response.rs b/src/types/response.rs index 9d2e242..0d0803a 100644 --- a/src/types/response.rs +++ b/src/types/response.rs @@ -1,3 +1,5 @@ +use chrono::serde::ts_seconds::deserialize as from_ts; +use chrono::{DateTime, Utc}; use serde::Deserialize; use serde_repr::*; @@ -204,18 +206,24 @@ pub struct TrackerStat { pub is_backup: bool, pub last_announce_peer_count: i64, pub last_announce_result: String, - pub last_announce_start_time: i64, + #[serde(deserialize_with = "from_ts")] + pub last_announce_start_time: DateTime, pub last_announce_succeeded: bool, - pub last_announce_time: i64, + #[serde(deserialize_with = "from_ts")] + pub last_announce_time: DateTime, pub last_announce_timed_out: bool, pub last_scrape_result: String, - pub last_scrape_start_time: i64, + #[serde(deserialize_with = "from_ts")] + pub last_scrape_start_time: DateTime, pub last_scrape_succeeded: bool, - pub last_scrape_time: i64, + #[serde(deserialize_with = "from_ts")] + pub last_scrape_time: DateTime, pub last_scrape_timed_out: bool, pub leecher_count: i64, - pub next_announce_time: i64, - pub next_scrape_time: i64, + #[serde(deserialize_with = "from_ts")] + pub next_announce_time: DateTime, + #[serde(deserialize_with = "from_ts")] + pub next_scrape_time: DateTime, pub scrape_state: TrackerState, pub scrape: String, pub seeder_count: i64,