check ahead
This commit is contained in:
parent
ec59d97e52
commit
8336bfee91
@ -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"]
|
||||
|
||||
24
src/main.rs
24
src/main.rs
@ -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("")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user