check ahead

This commit is contained in:
yen 2024-03-08 18:20:16 +01:00
parent ec59d97e52
commit 8336bfee91
Signed by: yen
GPG Key ID: 120F272B9981E77F
2 changed files with 16 additions and 10 deletions

View File

@ -6,6 +6,6 @@ COPY arm64/cph_open cph_open
RUN apt-get update -y RUN apt-get update -y
RUN apt-get upgrade -y RUN apt-get upgrade -y
RUN apt-get install -y libssl-dev RUN apt-get install -y libssl-dev ca-certificates
ENTRYPOINT ["./cph_open"] ENTRYPOINT ["./cph_open"]

View File

@ -19,6 +19,7 @@ fn main() {
let most_recent_event_id: u64 = let most_recent_event_id: u64 =
find_most_recent_event_id(&potential_cph_open_filename, last_checked_event_id) find_most_recent_event_id(&potential_cph_open_filename, last_checked_event_id)
.expect("Failed to find most recent event id"); .expect("Failed to find most recent event id");
// Check next event
update_last_checked_event_id(&last_event_id_filename, most_recent_event_id); update_last_checked_event_id(&last_event_id_filename, most_recent_event_id);
} }
@ -28,28 +29,33 @@ fn get_last_checked_event_id(filename: &String) -> Result<u64, Box<dyn Error>> {
} }
fn find_most_recent_event_id(cph_filepath: &str, last_checked: u64) -> Result<u64, Box<dyn Error>> { fn find_most_recent_event_id(cph_filepath: &str, last_checked: u64) -> Result<u64, Box<dyn Error>> {
let mut check_ahead = 0;
let mut last_checked_event_id = last_checked; let mut last_checked_event_id = last_checked;
let mut last_event_exists = true; while check_ahead < 3 {
while last_event_exists == true { let id_to_check = last_checked_event_id + 1 + check_ahead;
last_checked_event_id += 1; println!("Checking event: {}", id_to_check);
println!("Checking event: {}", last_checked_event_id); let (exists, is_cph_open) = check_event(id_to_check);
let (exists, is_cph_open) = check_event(last_checked_event_id);
println!("- Exists: {}", exists); println!("- Exists: {}", exists);
println!("- CPH-OPEN: {}", is_cph_open); println!("- CPH-OPEN: {}", is_cph_open);
last_event_exists = exists;
thread::sleep(Duration::from_secs(2)); thread::sleep(Duration::from_secs(2));
if is_cph_open { if is_cph_open {
save_event_id(cph_filepath, last_checked_event_id); save_event_id(cph_filepath, id_to_check);
}
if !exists {
check_ahead += 1;
} else {
last_checked_event_id = id_to_check;
check_ahead = 0;
} }
} }
Ok(last_checked_event_id - 1) Ok(last_checked_event_id)
} }
fn check_event(id: u64) -> (bool, bool) { fn check_event(id: u64) -> (bool, bool) {
let mut no_requests = 0; let mut no_requests = 0;
let mut event_confirmed = false; let mut event_confirmed = false;
let mut matches = false; let mut matches = false;
while no_requests < 3 && !event_confirmed { while no_requests < 5 && !event_confirmed {
no_requests += 1; no_requests += 1;
let content = reqwest::blocking::get(format!("{URL}{id}")) let content = reqwest::blocking::get(format!("{URL}{id}"))
.expect("") .expect("")