diff --git a/youmubot-osu/src/discord/announcer.rs b/youmubot-osu/src/discord/announcer.rs index 2a78793..2e33f0d 100644 --- a/youmubot-osu/src/discord/announcer.rs +++ b/youmubot-osu/src/discord/announcer.rs @@ -45,10 +45,12 @@ impl youmubot_prelude::Announcer for Announcer { channels: MemberToChannels, ) -> Result<()> { // For each user... - let data = d.read().await; - let data = data.get::().unwrap(); + let users = { + let data = d.read().await; + let data = data.get::().unwrap(); + data.all().await? + }; let now = chrono::Utc::now(); - let users = data.all().await?; users .into_iter() .map(|mut osu_user| { @@ -78,7 +80,14 @@ impl youmubot_prelude::Announcer for Announcer { println!("scanning {} done", osu_user.id); osu_user.last_update = now; osu_user.pp = v.try_into().unwrap(); - data.save(osu_user).await.pls_ok(); + ctx.data + .read() + .await + .get::() + .unwrap() + .save(osu_user) + .await + .pls_ok(); } Err(e) => { eprintln!("osu: Cannot update {}: {}", osu_user.id, e);