diff --git a/youmubot-osu/src/discord/db.rs b/youmubot-osu/src/discord/db.rs index 9ff7737..ec7cc81 100644 --- a/youmubot-osu/src/discord/db.rs +++ b/youmubot-osu/src/discord/db.rs @@ -7,7 +7,7 @@ use serenity::model::id::{ChannelId, UserId}; use youmubot_db_sql::{models::osu as models, models::osu_user as model, Pool}; use youmubot_prelude::*; -use crate::models::{Beatmap, Mode, Score}; +use crate::models::{Beatmap, Mode}; /// Save the user IDs. #[derive(Debug, Clone)] @@ -101,46 +101,6 @@ impl OsuLastBeatmap { } } -/// Save each channel's last requested beatmap. -#[derive(Debug, Clone)] -pub struct OsuUserBests(Pool); - -impl TypeMapKey for OsuUserBests { - type Value = OsuUserBests; -} - -impl OsuUserBests { - pub fn new(pool: Pool) -> Self { - Self(pool) - } -} - -impl OsuUserBests { - pub async fn save( - &self, - user: impl Into, - mode: Mode, - scores: impl IntoIterator, - ) -> Result<()> { - let user = user.into(); - scores - .into_iter() - .map(|score| models::UserBestScore { - user_id: user.get() as i64, - beatmap_id: score.beatmap_id as i64, - mode: mode as u8, - mods: score.mods.bits() as i64, - cached_at: Utc::now(), - score: bincode::serialize(&score).unwrap(), - }) - .map(|mut us| async move { us.store(&self.0).await }) - .collect::>() - .try_collect::<()>() - .await?; - Ok(()) - } -} - /// An osu! saved user. #[derive(Serialize, Deserialize, Debug, Clone)] pub struct OsuUser { diff --git a/youmubot-osu/src/discord/mod.rs b/youmubot-osu/src/discord/mod.rs index 5d0e63d..0a8e88e 100644 --- a/youmubot-osu/src/discord/mod.rs +++ b/youmubot-osu/src/discord/mod.rs @@ -14,7 +14,7 @@ use serenity::{ utils::MessageBuilder, }; -use db::{OsuLastBeatmap, OsuSavedUsers, OsuUser, OsuUserBests}; +use db::{OsuLastBeatmap, OsuSavedUsers, OsuUser}; use embeds::{beatmap_embed, score_embed, user_embed}; pub use hook::{dot_osu_hook, hook, score_hook}; use server_rank::{SERVER_RANK_COMMAND, SHOW_LEADERBOARD_COMMAND}; @@ -56,7 +56,6 @@ pub struct OsuEnv { // databases pub(crate) saved_users: OsuSavedUsers, pub(crate) last_beatmaps: OsuLastBeatmap, - pub(crate) user_bests: OsuUserBests, // clients pub(crate) client: Arc, pub(crate) oppai: BeatmapCache, @@ -91,7 +90,6 @@ pub async fn setup( // Databases let saved_users = OsuSavedUsers::new(prelude.sql.clone()); let last_beatmaps = OsuLastBeatmap::new(prelude.sql.clone()); - let user_bests = OsuUserBests::new(prelude.sql.clone()); // API client let osu_client = Arc::new( @@ -118,7 +116,6 @@ pub async fn setup( // Legacy data data.insert::(last_beatmaps.clone()); data.insert::(saved_users.clone()); - data.insert::(user_bests.clone()); data.insert::(osu_client.clone()); data.insert::(oppai_cache.clone()); data.insert::(beatmap_cache.clone()); @@ -127,7 +124,6 @@ pub async fn setup( prelude, saved_users, last_beatmaps, - user_bests, client: osu_client, oppai: oppai_cache, beatmaps: beatmap_cache,