summaryrefslogtreecommitdiff
path: root/src/commands/optional/copypasta.rs
diff options
context:
space:
mode:
authorseth <[email protected]>2024-08-09 23:35:41 -0400
committerGitHub <[email protected]>2024-08-09 23:35:41 -0400
commitb643a6a235b0c1c9902b97421f24eff2b0d0a5ac (patch)
tree350794c0e9330fb77367838313bc6bb97278a0aa /src/commands/optional/copypasta.rs
parent372780546b508684839916e5ad54c9e90456a94f (diff)
tree-wide: end of summer cleanup (#214)
* api: refactor & rename module to http * client: split from main.rs * tree-wide: use eyre::Report as error * nix: alejandra -> nixfmt * nix: start using treefmt-nix * nix: simplify flake * nix: refactor derivation & docker image * nix: remove overlay * ci: update & cleanup workflows * commands: assign all commands automatically * commands/copypasta: remove * http/teawie: update response struct for upstream rust rewrite * handlers: rename modules to events; flatten * crates: rename self to teawie-bot * nix: fenix -> rust-overlay i want a specific rust version grrrrrrr * ci: pin rust to 1.79 this is what our nix dev shell uses and what we can compile on. it seems the time crate doesn't like v1.80 of the compiler :( * ci: always run release gates * nix: fix static toolchain * nix: rust-overlay -> nixpkgs * ci: adopt actions-rust-lang actions * nix: use docker arch names for containers * crates/time: 0.3.30 -> 0.3.36 fixes building on rust 1.80.0
Diffstat (limited to 'src/commands/optional/copypasta.rs')
-rw-r--r--src/commands/optional/copypasta.rs73
1 files changed, 0 insertions, 73 deletions
diff --git a/src/commands/optional/copypasta.rs b/src/commands/optional/copypasta.rs
deleted file mode 100644
index 06440b1..0000000
--- a/src/commands/optional/copypasta.rs
+++ /dev/null
@@ -1,73 +0,0 @@
-use crate::{Context, Error};
-
-use include_dir::{include_dir, Dir};
-use log::debug;
-
-const COPYPASTAS: Dir = include_dir!("src/copypastas");
-
-#[derive(Debug, poise::ChoiceParameter)]
-pub enum Copypasta {
- Astral,
- Dvd,
- Egrill,
- HappyMeal,
- Sus,
- TickTock,
- Twitter,
-}
-
-impl ToString for Copypasta {
- fn to_string(&self) -> String {
- let str = match self {
- Self::Astral => "astral",
- Self::Dvd => "dvd",
- Self::Egrill => "egrill",
- Self::HappyMeal => "happymeal",
- Self::Sus => "sus",
- Self::TickTock => "ticktock",
- Self::Twitter => "twitter",
- };
- str.to_string()
- }
-}
-
-impl Copypasta {
- fn contents(&self) -> Option<&str> {
- let file_name = format!("{}.txt", self.to_string());
- COPYPASTAS
- .get_file(file_name)
- .and_then(|file| file.contents_utf8())
- }
-}
-
-/// ask teawie to send funni copypasta
-#[poise::command(slash_command)]
-pub async fn copypasta(
- ctx: Context<'_>,
- #[description = "the copypasta you want to send"] copypasta: Copypasta,
-) -> Result<(), Error> {
- if let Some(guild_id) = ctx.guild_id() {
- if let Some(storage) = &ctx.data().storage {
- let settings = storage.get_guild_settings(&guild_id).await?;
-
- if !settings.optional_commands_enabled {
- debug!("Not running command in {guild_id} since it's disabled");
- ctx.reply("I'm not allowed to do that here").await?;
-
- return Ok(());
- }
- } else {
- debug!("Ignoring restrictions on command; no storage backend is attached!");
- }
- } else {
- debug!("Ignoring restrictions on command; we're not in a guild");
- }
-
- if let Some(contents) = copypasta.contents() {
- ctx.say(contents).await?;
- } else {
- ctx.reply("I couldn't find that copypasta :(").await?;
- }
-
- Ok(())
-}