summaryrefslogtreecommitdiff
path: root/src/storage/mod.rs
diff options
context:
space:
mode:
authorseth <[email protected]>2024-12-19 16:26:18 -0500
committerGitHub <[email protected]>2024-12-19 21:26:18 +0000
commit2ae2b978f3fad7a58cb129333b36a210bb200488 (patch)
treeef12b9e1a29462c4de6b787fcf9c34d80b563b9f /src/storage/mod.rs
parent77309844e6b890544bc4eea7f03bbafe493ba61e (diff)
jolly winter cleanup (#251)
* ci: bump DeterminateSystems/nix-installer-action from 13 to 16 Bumps [DeterminateSystems/nix-installer-action](https://github.com/determinatesystems/nix-installer-action) from 13 to 16. - [Release notes](https://github.com/determinatesystems/nix-installer-action/releases) - [Commits](https://github.com/determinatesystems/nix-installer-action/compare/v13...v16) --- updated-dependencies: - dependency-name: DeterminateSystems/nix-installer-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> * crates: bump serde from 1.0.209 to 1.0.215 Bumps [serde](https://github.com/serde-rs/serde) from 1.0.209 to 1.0.215. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.209...v1.0.215) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * crates: bump serde_json from 1.0.127 to 1.0.133 Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.127 to 1.0.133. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.127...v1.0.133) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * crates: bump tokio from 1.40.0 to 1.41.1 Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.40.0 to 1.41.1. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.40.0...tokio-1.41.1) --- updated-dependencies: - dependency-name: tokio dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * crates: bump reqwest from 0.12.7 to 0.12.9 Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.12.7 to 0.12.9. - [Release notes](https://github.com/seanmonstar/reqwest/releases) - [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md) - [Commits](https://github.com/seanmonstar/reqwest/compare/v0.12.7...v0.12.9) --- updated-dependencies: - dependency-name: reqwest dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * nix: update flake.lock * ci: bump DeterminateSystems/magic-nix-cache-action from 7 to 8 Bumps [DeterminateSystems/magic-nix-cache-action](https://github.com/determinatesystems/magic-nix-cache-action) from 7 to 8. - [Release notes](https://github.com/determinatesystems/magic-nix-cache-action/releases) - [Commits](https://github.com/determinatesystems/magic-nix-cache-action/compare/v7...v8) --- updated-dependencies: - dependency-name: DeterminateSystems/magic-nix-cache-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> * treewide: debrand * nix: adopt new darwin sdk * nix: drop treefmt * nix: misc formatting changes * ci: cleanup * nix: pass version info to static builds * nix: mv {derivation,package}.nix * eyre -> anyhow * remove 2024 edition warnings * format with rustfmt * remove optional commands * ci: don't include internal variables in job names * nix: enable for lto builds --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: getchoo-bot[bot] <183349775+getchoo-bot[bot]@users.noreply.github.com>
Diffstat (limited to 'src/storage/mod.rs')
-rw-r--r--src/storage/mod.rs44
1 files changed, 7 insertions, 37 deletions
diff --git a/src/storage/mod.rs b/src/storage/mod.rs
index 45c150a..b025de9 100644
--- a/src/storage/mod.rs
+++ b/src/storage/mod.rs
@@ -1,9 +1,9 @@
use std::{env, fmt::Debug, str::FromStr};
-use eyre::Result;
+use anyhow::Result;
use log::debug;
use poise::serenity_prelude::{GuildId, MessageId};
-use redis::{AsyncCommands, Client, ConnectionLike, RedisError};
+use redis::{AsyncCommands, Client, RedisError};
pub mod reactboard;
pub mod settings;
@@ -30,10 +30,6 @@ impl Storage {
Ok(Self::from_str(&redis_url)?)
}
- pub fn is_connected(&mut self) -> bool {
- self.client.check_connection()
- }
-
pub async fn create_guild_settings(&self, settings: Settings) -> Result<()> {
let guild_key = format!("{SETTINGS_KEY}:{}", settings.guild_id);
@@ -41,7 +37,7 @@ impl Storage {
redis::pipe()
.set(&guild_key, &settings)
.sadd(SETTINGS_KEY, u64::from(settings.guild_id))
- .query_async(&mut con)
+ .exec_async(&mut con)
.await?;
Ok(())
@@ -65,7 +61,7 @@ impl Storage {
redis::pipe()
.del(&guild_key)
.srem(SETTINGS_KEY, u64::from(*guild_id))
- .query_async(&mut con)
+ .exec_async(&mut con)
.await?;
Ok(())
@@ -81,34 +77,6 @@ impl Storage {
Ok(exists)
}
- pub async fn get_all_guild_settings(&self) -> Result<Vec<Settings>> {
- debug!("Fetching all guild settings");
-
- let mut con = self.client.get_multiplexed_async_connection().await?;
- let found: Vec<u64> = con.smembers(SETTINGS_KEY).await?;
-
- let mut guilds = vec![];
- for key in found {
- let settings = self.get_guild_settings(&key.into()).await?;
- guilds.push(settings);
- }
-
- Ok(guilds)
- }
-
- /// get guilds that have enabled optional commands
- pub async fn get_opted_guilds(&self) -> Result<Vec<GuildId>> {
- debug!("Fetching opted-in guilds");
-
- let guilds = self.get_all_guild_settings().await?;
- let opted: Vec<GuildId> = guilds
- .iter()
- .filter_map(|g| g.optional_commands_enabled.then_some(g.guild_id))
- .collect();
-
- Ok(opted)
- }
-
// reactboard
pub async fn create_reactboard_entry(
@@ -123,7 +91,9 @@ impl Storage {
let entry_key = format!("{REACTBOARD_KEY}:{guild_id}:{}", entry.original_message_id);
let mut con = self.client.get_multiplexed_async_connection().await?;
- con.set_ex(&entry_key, &entry, 30 * 24 * 60 * 60).await?; // 30 days
+ // https://github.com/redis-rs/redis-rs/issues/1228
+ con.set_ex::<_, _, ()>(&entry_key, &entry, 30 * 24 * 60 * 60)
+ .await?; // 30 days
Ok(())
}