From 46527362d7414900ef93694bfc442b279919c2c5 Mon Sep 17 00:00:00 2001 From: Andy Killorin <37423245+Speedy6451@users.noreply.github.com> Date: Sat, 7 Dec 2024 21:20:29 -0500 Subject: [PATCH] keep track of names on the server --- server/src/main.rs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/server/src/main.rs b/server/src/main.rs index 646044e..e5409fe 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -86,7 +86,7 @@ async fn main() -> Result<()>{ fish: fish.clone(), last_badge: last_badge.clone(), net_status: network_status.clone(), - badge_map + badge_map : badge_map.clone(), }); let listener = tokio::net::TcpListener::bind("0.0.0.0:8080").await.unwrap(); @@ -99,6 +99,14 @@ async fn main() -> Result<()>{ loop { match get_recent_badge(fish_.clone()).await { Result::Ok(badge) => { + let name = Name::from_badge(badge); + let name = match name { + Name::Unknown => { + badge_map.read().await.get(&badge).unwrap_or(&"Unknown".to_string()).clone() + }, + name => format!("{name:?}"), + }; + info!("badge scanned: {name} ({badge:#0x})"); *last_badge.write().await = (badge, Instant::now()); }, Err(e) => { @@ -184,7 +192,6 @@ async fn get_recent_badge(fish: Arc) -> Result { let badge = conn.read_u64().await?; if badge != 0 { - info!("new badge: {badge:#0x}"); Ok(badge) } else { Err(anyhow::anyhow!("no badge present")) @@ -336,6 +343,8 @@ async fn set_last( let (last_badge, _) = *state.last_badge.read().await; + state.badge_map.write().await.insert(last_badge, input.name.clone()); + let name_e = match input.name.as_str() { "Tess" => Name::Tess, "Amaia" => Name::Amaia, @@ -345,11 +354,7 @@ async fn set_last( "Thia" => Name::Thia, "Michael" => Name::Michael, "Zoey" => Name::Zoey, - name => { - state.badge_map.write().await.insert(last_badge, name.to_string()); - Name::Unknown - }, - + _ => Name::Unknown, }; info!("setting {} ({name_e:?}) to {last_badge:#0x}", input.name);