summaryrefslogtreecommitdiff
path: root/src/commands/general/random.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/commands/general/random.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/commands/general/random.rs')
-rw-r--r--src/commands/general/random.rs44
1 files changed, 32 insertions, 12 deletions
diff --git a/src/commands/general/random.rs b/src/commands/general/random.rs
index 094123b..053e4bb 100644
--- a/src/commands/general/random.rs
+++ b/src/commands/general/random.rs
@@ -1,22 +1,14 @@
-use crate::{client::Context, consts, http, utils};
+use crate::{client::Context, http, utils};
-use eyre::Result;
+use anyhow::Result;
+use rand::Rng;
-#[poise::command(slash_command, subcommands("lore", "teawie", "shiggy"))]
+#[poise::command(slash_command, subcommands("teawie", "shiggy", "uwu"))]
#[allow(clippy::unused_async)]
pub async fn random(_: Context<'_>) -> Result<()> {
Ok(())
}
-/// Get a random piece of teawie lore!
-#[poise::command(prefix_command, slash_command)]
-pub async fn lore(ctx: Context<'_>) -> Result<()> {
- let resp = utils::random_choice(consts::LORE)?;
- ctx.say(resp).await?;
-
- Ok(())
-}
-
/// Get a random teawie
#[poise::command(prefix_command, slash_command)]
pub async fn teawie(ctx: Context<'_>) -> Result<()> {
@@ -34,3 +26,31 @@ pub async fn shiggy(ctx: Context<'_>) -> Result<()> {
Ok(())
}
+
+/// Some uwu
+#[poise::command(prefix_command, slash_command)]
+pub async fn uwu(
+ ctx: Context<'_>,
+ #[description = "The amount of uwurandom to generate"]
+ #[min = 1]
+ #[max = 100]
+ length: Option<u16>,
+) -> Result<()> {
+ let length = length.unwrap_or(rand::thread_rng().gen_range(1..50));
+
+ let mut result = String::with_capacity(length as usize);
+ // ThreadRng is not Send(obviously), and rustc is slightly too paranoid about rng spilling to await point
+ // So calm it by constraining it to a block
+ {
+ let mut rng = rand::thread_rng();
+ let mut state_machine = uwurandom_rs::StateMachine::new(&mut rng);
+ for _ in 0..length {
+ let generated;
+ (state_machine, generated) = state_machine.generate(&mut rng);
+ result.push(generated);
+ }
+ }
+ ctx.say(result).await?;
+
+ Ok(())
+}