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 upgrade -y
RUN apt-get install -y libssl-dev
RUN apt-get install -y libssl-dev ca-certificates
ENTRYPOINT ["./cph_open"]

View File

@ -19,6 +19,7 @@ fn main() {
let most_recent_event_id: u64 =
find_most_recent_event_id(&potential_cph_open_filename, last_checked_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);
}
@ -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>> {
let mut check_ahead = 0;
let mut last_checked_event_id = last_checked;
let mut last_event_exists = true;
while last_event_exists == true {
last_checked_event_id += 1;
println!("Checking event: {}", last_checked_event_id);
let (exists, is_cph_open) = check_event(last_checked_event_id);
while check_ahead < 3 {
let id_to_check = last_checked_event_id + 1 + check_ahead;
println!("Checking event: {}", id_to_check);
let (exists, is_cph_open) = check_event(id_to_check);
println!("- Exists: {}", exists);
println!("- CPH-OPEN: {}", is_cph_open);
last_event_exists = exists;
thread::sleep(Duration::from_secs(2));
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) {
let mut no_requests = 0;
let mut event_confirmed = false;
let mut matches = false;
while no_requests < 3 && !event_confirmed {
while no_requests < 5 && !event_confirmed {
no_requests += 1;
let content = reqwest::blocking::get(format!("{URL}{id}"))
.expect("")