diff --git a/Cargo.lock b/Cargo.lock index 01d9f93..4de58cb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1349,7 +1349,7 @@ dependencies = [ [[package]] name = "wynnrobot" -version = "0.13.0" +version = "0.13.1" dependencies = [ "chrono 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "configure 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/Cargo.toml b/Cargo.toml index 83e0d17..22bb757 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] authors = ["Sakuhl <2012collector@gmail.com>"] name = "wynnrobot" -version = "0.13.0" +version = "0.13.1" [dependencies] chrono = "0.4.0" diff --git a/src/commands/feed.rs b/src/commands/feed.rs index ccaf833..6ebb28c 100644 --- a/src/commands/feed.rs +++ b/src/commands/feed.rs @@ -28,12 +28,20 @@ pub fn territory_livefeed() { let mut territories: Value = serde_json::from_reader(resp).unwrap(); + let mut timestamp = territories.as_object().unwrap().get("request").unwrap().as_object().unwrap().get("timestamp").unwrap().as_u64().unwrap(); + loop { thread::sleep_ms(10_000); // 10 seconds let resp = reqwest::get("https://api.wynncraft.com/public_api.php?action=territoryList").unwrap(); let new_territories: Value = serde_json::from_reader(resp).unwrap(); + let new_timestamp = new_territories.as_object().unwrap().get("request").unwrap().as_object().unwrap().get("timestamp").unwrap().as_u64().unwrap(); + if !(new_timestamp > timestamp) { // time went backwards for wynncraft? + continue; + } + timestamp = new_timestamp; + for key in territories.get("territories").unwrap().as_object().unwrap().keys() { let value = territories.get("territories").unwrap().as_object().unwrap().get(key).unwrap(); let new_value = new_territories.get("territories").unwrap().as_object().unwrap().get(key).unwrap();