From 5abbe686cf54eea1eb3d17a59dbed631b0c8a474 Mon Sep 17 00:00:00 2001 From: clerie Date: Sat, 20 Jul 2024 19:13:54 +0200 Subject: [PATCH] Migrate baedernames to HashMap and display fetched names --- src/main.rs | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/main.rs b/src/main.rs index 4eb2fe1..5b570e2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -10,6 +10,8 @@ use serde::{ Serialize, }; +use std::collections::HashMap; + #[derive(Serialize, Deserialize)] struct TrafficDataThresholds { level: i64, @@ -29,12 +31,7 @@ struct TrafficDataItem { thresholds: Vec, } -struct BaederNames { - id: String, - name: String, -} - -async fn get_baeder_names() -> Result, String> { +async fn get_baeder_names() -> Result, String> { let client = reqwest::Client::new(); let baedernames_req = client.get(String::from("https://www.berlinerbaeder.de/baeder/sommerbaeder-auslastung/")) @@ -51,13 +48,13 @@ async fn get_baeder_names() -> Result, String> { let r = Regex::new(r#" = vec!{}; + let mut baedernames= HashMap::new(); for c in r.captures_iter(baedernames_body.as_str()) { - baedernames.push(BaederNames { - id: c.get(1).unwrap().as_str().to_string(), - name: c.get(2).unwrap().as_str().to_string(), - }) + baedernames.insert( + c.get(1).unwrap().as_str().to_string(), // id + c.get(2).unwrap().as_str().to_string(), // name + ); } return Ok(baedernames); @@ -91,7 +88,14 @@ async fn main() { } } - let baedernames = get_baeder_names().await; + // If baedernames cannot be fetched, ignore them + let baedernames = get_baeder_names().await.unwrap_or(HashMap::new()); + + println!("Baedernames:"); + for (id, name) in baedernames { + println!("{id}: {name}"); + } + println!(""); let app = Router::new() .route("/", get(route_index))