From cb81c0a8f4cc33d16ef6c45ae951ae0b926e936f Mon Sep 17 00:00:00 2001 From: seth Date: Fri, 15 Dec 2023 02:13:08 -0500 Subject: storage: don't copy all guild settings to index --- src/api/guzzle.rs | 2 +- src/api/shiggy.rs | 2 +- src/storage/mod.rs | 18 +++++++++--------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/api/guzzle.rs b/src/api/guzzle.rs index 1f285e9..2f2571a 100644 --- a/src/api/guzzle.rs +++ b/src/api/guzzle.rs @@ -23,7 +23,7 @@ pub async fn get_random_teawie() -> Result { let status = resp.status(); if let StatusCode::OK = status { - let data = resp.json::().await?; + let data: GuzzleResponse = resp.json().await?; Ok(data.url) } else { Err(eyre!("Failed to get random Teawie with {status}")) diff --git a/src/api/shiggy.rs b/src/api/shiggy.rs index 1fe4b49..fb955bb 100644 --- a/src/api/shiggy.rs +++ b/src/api/shiggy.rs @@ -23,7 +23,7 @@ pub async fn get_random_shiggy() -> Result { let status = resp.status(); if let StatusCode::OK = status { - let data = resp.json::().await?; + let data: SafebooruResponse = resp.json().await?; Ok(data.file_url) } else { Err(eyre!("Failed to get random shiggy with {status}")) diff --git a/src/storage/mod.rs b/src/storage/mod.rs index 320e79f..0947120 100644 --- a/src/storage/mod.rs +++ b/src/storage/mod.rs @@ -118,7 +118,8 @@ impl Storage { self.set_key(&key, &settings).await?; // adding to index since we need to look all of these up sometimes - self.add_to_index(SETTINGS_KEY, settings).await?; + self.add_to_index(SETTINGS_KEY, settings.guild_id.as_u64()) + .await?; Ok(()) } @@ -147,7 +148,12 @@ impl Storage { pub async fn get_all_guild_settings(&self) -> Result> { debug!("Fetching all guild settings"); - let guilds: Vec = self.get_from_index(SETTINGS_KEY).await?; + let guild_ids: Vec = self.get_from_index(SETTINGS_KEY).await?; + let mut guilds = vec![]; + for id in guild_ids { + let settings = self.get_guild_settings(&GuildId::from(id)).await?; + guilds.push(settings); + } Ok(guilds) } @@ -159,13 +165,7 @@ impl Storage { let guilds = self.get_all_guild_settings().await?; let opted: Vec = guilds .iter() - .filter_map(|g| { - if g.optional_commands_enabled { - Some(g.guild_id) - } else { - None - } - }) + .filter_map(|g| g.optional_commands_enabled.then_some(g.guild_id)) .collect(); Ok(opted) -- cgit v1.2.3