When max_time reached, loop back to beginning of time set

This commit is contained in:
Ethan O'Brien 2024-10-18 16:18:05 -05:00
parent 993f6f1e39
commit a31d3b06d7

View file

@ -79,14 +79,21 @@ pub fn timestamp_since_midnight() -> u64 {
unix_timestamp.as_secs() - midnight unix_timestamp.as_secs() - midnight
} }
fn init_time(server_data: &mut JsonValue, token: &str) { fn init_time(data: &JsonValue, server_data: &mut JsonValue, token: &str, max_time: u64) {
let mut edited = false; let mut edited = false;
let default_time = 1709272800;
if max_time > 10 && max_time < data["server_time"].as_u64().unwrap_or(0) && server_data["server_time"].as_u64().unwrap_or(0) < max_time {
server_data["server_time_set"] = timestamp().into();
edited = true;
}
if server_data["server_time_set"].as_u64().is_none() { if server_data["server_time_set"].as_u64().is_none() {
server_data["server_time_set"] = timestamp().into(); server_data["server_time_set"] = timestamp().into();
edited = true; edited = true;
} }
if server_data["server_time"].as_u64().is_none() { if server_data["server_time"].as_u64().is_none() {
server_data["server_time"] = 1709272800.into(); server_data["server_time"] = default_time.into();
edited = true; edited = true;
} }
if edited { if edited {
@ -95,12 +102,16 @@ fn init_time(server_data: &mut JsonValue, token: &str) {
} }
fn set_time(data: &mut JsonValue, uid: i64) { fn set_time(data: &mut JsonValue, uid: i64) {
let max_time = crate::get_args().max_time;
if uid == 0 { if uid == 0 {
if max_time > 10 && max_time < data["server_time"].as_u64().unwrap_or(0) {
data["server_time"] = max_time.into();
}
return; return;
} }
let token = userdata::get_login_token(uid); let token = userdata::get_login_token(uid);
let mut server_data = userdata::get_server_data(&token); let mut server_data = userdata::get_server_data(&token);
init_time(&mut server_data, &token); init_time(data, &mut server_data, &token, max_time);
let time_set = server_data["server_time_set"].as_u64().unwrap_or(timestamp()); let time_set = server_data["server_time_set"].as_u64().unwrap_or(timestamp());
let server_time = server_data["server_time"].as_u64().unwrap_or(0);//1711741114 let server_time = server_data["server_time"].as_u64().unwrap_or(0);//1711741114
@ -116,11 +127,6 @@ pub fn send(mut data: JsonValue, uid: i64, headers: &HeaderMap) -> HttpResponse
//println!("{}", json::stringify(data.clone())); //println!("{}", json::stringify(data.clone()));
set_time(&mut data, uid); set_time(&mut data, uid);
let args = crate::get_args();
if args.max_time > 10 && args.max_time < data["server_time"].as_u64().unwrap_or(0) {
data["server_time"] = args.max_time.into();
}
if !data["data"]["item_list"].is_empty() || !data["data"]["updated_value_list"]["item_list"].is_empty() { if !data["data"]["item_list"].is_empty() || !data["data"]["updated_value_list"]["item_list"].is_empty() {
items::check_for_region(&mut data, headers); items::check_for_region(&mut data, headers);
} }