mirror of
https://github.com/Brandon-Rozek/website-toots.git
synced 2024-11-09 10:40:35 -05:00
Added duplication check and sleep
This commit is contained in:
parent
bc01b85f87
commit
5add4461c2
1 changed files with 31 additions and 3 deletions
|
@ -2,7 +2,9 @@ use regex::Regex;
|
||||||
use reqwest::header::HeaderValue;
|
use reqwest::header::HeaderValue;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
use std::io::Write;
|
use std::io::{BufReader, Write};
|
||||||
|
use std::thread::sleep;
|
||||||
|
use std::time::Duration;
|
||||||
|
|
||||||
static RETRIEVE_NUM_TOOTS: usize = 1000;
|
static RETRIEVE_NUM_TOOTS: usize = 1000;
|
||||||
static SERVER: &str = "fosstodon.org";
|
static SERVER: &str = "fosstodon.org";
|
||||||
|
@ -144,10 +146,33 @@ async fn main() {
|
||||||
.expect("Failed to create directory");
|
.expect("Failed to create directory");
|
||||||
}
|
}
|
||||||
|
|
||||||
let path = format!("{}/{}.json", data_dir, toot_id);
|
let path: String = format!("{}/{}.json", data_dir, toot_id);
|
||||||
|
|
||||||
|
let mut update_json = false;
|
||||||
|
|
||||||
|
let f = File::open(path.clone());
|
||||||
|
if f.is_ok() {
|
||||||
|
let reader = BufReader::new(f.unwrap());
|
||||||
|
let f_json_result: Result<serde_json::Value, _> = serde_json::from_reader(reader);
|
||||||
|
if f_json_result.is_ok() {
|
||||||
|
// If the JSON from the network is different, update
|
||||||
|
if f_json_result.unwrap() != *item {
|
||||||
|
update_json = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// File doesn't exist (probably) so
|
||||||
|
// try to write the new JSON
|
||||||
|
update_json = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if update_json {
|
||||||
write_json_to_file(&item, path.as_ref())
|
write_json_to_file(&item, path.as_ref())
|
||||||
.expect("Failed to write to file");
|
.expect("Failed to write to file");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
println!("Retrieved {} toots from server", json_array.len());
|
println!("Retrieved {} toots from server", json_array.len());
|
||||||
|
|
||||||
let next_url_result: Result<String, String> = headers
|
let next_url_result: Result<String, String> = headers
|
||||||
|
@ -164,5 +189,8 @@ async fn main() {
|
||||||
Ok(next_url) => url = next_url,
|
Ok(next_url) => url = next_url,
|
||||||
Err(_) => more_toots_exist = false,
|
Err(_) => more_toots_exist = false,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Sleep for the 1 second to not overload the server
|
||||||
|
sleep(Duration::new(1, 0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue