diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/bot.rs | 5 | ||||
| -rw-r--r-- | src/commands/today/mod.rs | 11 | ||||
| -rw-r--r-- | src/config.rs | 2 | ||||
| -rw-r--r-- | src/db/mod.rs | 38 | ||||
| -rw-r--r-- | src/main.rs | 6 |
5 files changed, 22 insertions, 40 deletions
@@ -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(); |
