diff options
| author | seth <[email protected]> | 2024-04-20 02:31:40 +0000 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-04-19 22:31:40 -0400 |
| commit | 3d07413690c551d9f034c93af85ae8da5a495e14 (patch) | |
| tree | 517d2e053ebdeb9a3be0ffce6dec36cbc4ce316e /src/handlers/event/pinboard.rs | |
| parent | 1b92b254bc64b356f5c59657d2f0acc767bb2964 (diff) | |
spring cleaning (#165)
* treewide: lightly refactor everything
* once_cell -> std::sync
* remove build.rs
we can get our target at runtime
* commands::copypasta: refactor selection
* drop owo_colors
* reactboard: always remove author from count
* commands: better handle behavior outside of guilds
* ci: garnix -> gha
* nix: drop flake-parts & pre-commit-hooks
* nix: fix rust flags in derivation
* add gha badge to readme
* ci: fail when format changes are made
* ci: only run on push to main
* nix: fix nil script
* nix: add libiconv to darwin deps
* ci: disable fail-fast
* nix: fix actionlint & static checks
* ci: add release gates
* nix: fix nil check again
* ci: give release gates unique names
* ci: only build static packages in docker workflow
* nix: move dev outputs to subflake
* fix some typos
* nix: cleanup checks & dev shell
* add editorconfig
Diffstat (limited to 'src/handlers/event/pinboard.rs')
| -rw-r--r-- | src/handlers/event/pinboard.rs | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/handlers/event/pinboard.rs b/src/handlers/event/pinboard.rs index be10eac..5b7d454 100644 --- a/src/handlers/event/pinboard.rs +++ b/src/handlers/event/pinboard.rs @@ -1,7 +1,7 @@ use crate::{utils, Data}; use eyre::{eyre, Context as _, OptionExt as _, Result}; -use log::debug; +use log::{debug, warn}; use poise::serenity_prelude::{ ChannelId, Context, CreateAllowedMentions, CreateMessage, Message, MessageType, User, }; @@ -12,7 +12,12 @@ pub async fn handle(ctx: &Context, message: &Message, data: &Data) -> Result<()> } let gid = message.guild_id.unwrap_or_default(); - let settings = data.storage.get_guild_settings(&gid).await?; + let Some(storage) = &data.storage else { + warn!("Can't create PinBoard entry; no storage backend found!"); + return Ok(()); + }; + + let settings = storage.get_guild_settings(&gid).await?; if !settings.pinboard_enabled { debug!("PinBoard is disabled in {gid}, ignoring"); @@ -53,13 +58,13 @@ pub async fn handle(ctx: &Context, message: &Message, data: &Data) -> Result<()> .find(|pin| pin.id == reference_id) .ok_or_else(|| eyre!("Couldn't find a pin for message {reference_id}!"))?; - redirect(ctx, pin, &message.author, target).await?; + redirect(ctx, pin, &message.author, &target).await?; pin.unpin(ctx).await?; Ok(()) } -async fn redirect(ctx: &Context, pin: &Message, pinner: &User, target: ChannelId) -> Result<()> { +async fn redirect(ctx: &Context, pin: &Message, pinner: &User, target: &ChannelId) -> Result<()> { let embed = utils::resolve_message_to_embed(ctx, pin).await; let mentions = CreateAllowedMentions::new().empty_roles().empty_users(); let message = CreateMessage::default() |
