diff options
Diffstat (limited to 'src/db')
| -rw-r--r-- | src/db/mod.rs | 38 |
1 files changed, 12 insertions, 26 deletions
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) } |
