keep track of names on the server
This commit is contained in:
parent
d034bbd989
commit
46527362d7
1 changed files with 12 additions and 7 deletions
|
@ -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<Semaphore>) -> Result<u64> {
|
|||
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);
|
||||
|
|
Loading…
Reference in a new issue