aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNathan Perry <np@npry.dev>2025-12-17 21:18:27 -0500
committerNathan Perry <np@npry.dev>2025-12-17 21:50:38 -0500
commitfa2a1380a8f1b854c6359b980895f4d9d7038002 (patch)
treeb39131b7e91efa0881c78833a4114827e1a0d411 /src
parentde49f346313e7739945fbf0058bdfb78c90237a6 (diff)
bump all deps
Diffstat (limited to 'src')
-rw-r--r--src/bot.rs5
-rw-r--r--src/commands/today/mod.rs11
-rw-r--r--src/config.rs2
-rw-r--r--src/db/mod.rs38
-rw-r--r--src/main.rs6
5 files changed, 22 insertions, 40 deletions
diff --git a/src/bot.rs b/src/bot.rs
index 99acd42..ae9a530 100644
--- a/src/bot.rs
+++ b/src/bot.rs
@@ -109,6 +109,11 @@ async fn perm_check(ctx: &Context, guild: &Guild) -> anyhow::Result<()> {
let me = ctx.cache.current_user().id;
let member = guild.member(&ctx, me).await?;
+
+ // serenity deprecated this saying you should use Guild::member_permissions_in because this
+ // doesn't compute channel overrides, but that's brain-damaged: I want the full server-scoped
+ // perms.
+ #[allow(deprecated)]
let perms = member.permissions(ctx)?;
let lacking_perms = util::REQUIRED_PERMS.difference(perms);
diff --git a/src/commands/today/mod.rs b/src/commands/today/mod.rs
index 22e006c..692ce1e 100644
--- a/src/commands/today/mod.rs
+++ b/src/commands/today/mod.rs
@@ -1,10 +1,7 @@
use chrono::Duration;
use grate::tracing;
use lazy_static::lazy_static;
-use rand::{
- seq::SliceRandom,
- thread_rng,
-};
+use rand::prelude::IndexedRandom;
use songbird::input::{
Compose,
YoutubeDl,
@@ -12,6 +9,7 @@ use songbird::input::{
use tap::Conv;
use crate::{
+ PoiseContext,
bot::{
HttpKey,
PlaybackKey,
@@ -19,12 +17,11 @@ use crate::{
commands::{
playback,
playback::{
- songbird,
InvokeInfo,
+ songbird,
},
},
util,
- PoiseContext,
};
mod prelude;
@@ -104,7 +101,7 @@ pub async fn today(ctx: PoiseContext<'_>, #[rest] _rest: Option<String>) -> anyh
tracing::debug!(option_count = options.len(), %today);
- let play_args = options.choose(&mut thread_rng());
+ let play_args = options.choose(&mut rand::rng());
if let Some(play_args) = play_args {
let Some(voice_channel) = util::best_voice_channel(ctx) else {
diff --git a/src/config.rs b/src/config.rs
index ea75cef..e5a0aac 100644
--- a/src/config.rs
+++ b/src/config.rs
@@ -10,7 +10,7 @@ lazy_static! {
pub static ref CONFIG: Config = {
dotenv().ok();
- Config::init_from_env().unwrap()
+ <Config as envconfig::Envconfig>::init_from_env().unwrap()
};
pub static ref FFMPEG_COMMAND: String = {
let result = CONFIG.ffmpeg.clone().unwrap_or("ffmpeg".to_owned());
diff --git a/src/db/mod.rs b/src/db/mod.rs
index 56a8190..eb69d7b 100644
--- a/src/db/mod.rs
+++ b/src/db/mod.rs
@@ -8,9 +8,9 @@ use std::{
};
use anyhow::{
- anyhow,
Error,
Result,
+ anyhow,
};
use chrono::{
DateTime,
@@ -24,24 +24,25 @@ use deadpool_postgres::{
PoolConfig,
};
use diesel::{
- prelude::*,
BoolExpressionMethods,
ExpressionMethods,
NotFound,
PgTextExpressionMethods,
QueryDsl,
+ prelude::*,
};
use diesel_async::{
+ AsyncConnection,
+ AsyncPgConnection,
+ RunQueryDsl,
pooled_connection::{
- deadpool::Pool,
AsyncDieselConnectionManager,
+ deadpool::Pool,
},
scoped_futures::ScopedFutureExt,
- AsyncConnection,
- AsyncPgConnection,
- RunQueryDsl,
};
use grate::tracing;
+use rand::prelude::IndexedRandom;
use serenity::FutureExt;
use tokio_postgres::types::FromSql;
@@ -368,8 +369,8 @@ pub async fn rare_meme(
}
let target_prob = {
- let mut rng = thread_rng();
- rng.gen_range(0..elems.last().unwrap().1)
+ let mut rng = rand::rng();
+ rng.random_range(0..elems.last().unwrap().1)
};
let meme_id = elems
@@ -386,11 +387,6 @@ pub async fn rand_meme(
audio: bool,
guild: u64,
) -> Result<Option<Meme>> {
- use rand::{
- seq::SliceRandom,
- thread_rng,
- };
-
let ids: Vec<i32> = if audio {
memes::table
.select(memes::id)
@@ -422,17 +418,12 @@ pub async fn rand_meme(
return Ok(None);
}
- let id = ids.choose(&mut thread_rng()).ok_or_else(|| anyhow!("couldn't load meme"))?;
+ let id = ids.choose(&mut rand::rng()).ok_or_else(|| anyhow!("couldn't load meme"))?;
memes::table.find(id).first::<Meme>(conn).await.map_err(Error::from).map(Some)
}
pub async fn rand_audio_meme(conn: &mut AsyncPgConnection, guild: u64) -> Result<Option<Meme>> {
- use rand::{
- seq::SliceRandom,
- thread_rng,
- };
-
let ids: Vec<i32> = memes::table
.select(memes::id)
.filter(memes::audio_id.is_not_null().and(memes::guild.eq(guild as i64)))
@@ -444,17 +435,12 @@ pub async fn rand_audio_meme(conn: &mut AsyncPgConnection, guild: u64) -> Result
return Ok(None);
}
- let id = ids.choose(&mut thread_rng()).ok_or_else(|| anyhow!("couldn't load audio meme"))?;
+ let id = ids.choose(&mut rand::rng()).ok_or_else(|| anyhow!("couldn't load audio meme"))?;
memes::table.find(id).first::<Meme>(conn).await.map_err(Error::from).map(Some)
}
pub async fn rand_silent_meme(conn: &mut AsyncPgConnection, guild: u64) -> Result<Option<Meme>> {
- use rand::{
- seq::SliceRandom,
- thread_rng,
- };
-
let ids: Vec<i32> = memes::table
.select(memes::id)
.filter(memes::audio_id.is_null().and(memes::guild.eq(guild as i64)))
@@ -466,7 +452,7 @@ pub async fn rand_silent_meme(conn: &mut AsyncPgConnection, guild: u64) -> Resul
return Ok(None);
}
- let id = ids.choose(&mut thread_rng()).ok_or_else(|| anyhow!("couldn't load audio meme"))?;
+ let id = ids.choose(&mut rand::rng()).ok_or_else(|| anyhow!("couldn't load audio meme"))?;
memes::table.find(id).first::<Meme>(conn).await.map_err(Error::from).map(Some)
}
diff --git a/src/main.rs b/src/main.rs
index 88f5913..36c132e 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,9 +1,3 @@
-#![feature(try_trait_v2)]
-#![feature(pattern)]
-#![feature(associated_type_defaults)]
-#![feature(box_patterns)]
-#![allow(deprecated)]
-
#[tokio::main]
async fn main() -> anyhow::Result<()> {
thulani::log_setup::init();