Bump deps, fix errors. Still need to fix warnings

This commit is contained in:
Joey Hines 2025-03-15 12:23:59 -06:00
parent 59e33a32a9
commit 8175444a0d
Signed by: joeyahines
GPG Key ID: 38BA6F25C94C9382
12 changed files with 1972 additions and 980 deletions

2827
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -6,30 +6,27 @@ edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
config = "0.14.0" config = "0.15.11"
structopt = "0.3.26" structopt = "0.3.26"
reqwest = { version = "0.12.5", features = ["json", "multipart"] } reqwest = { version = "0.12.5", features = ["json", "multipart"] }
serde = "1.0.195" serde = "1.0.195"
toml = "0.8.8" rand = "0.9.0"
rand = "0.8.5"
tera = "1.19.1" tera = "1.19.1"
ndm = "0.9.10" ndm = "0.9.10"
regex = "1.10.2" regex = "1.10.2"
magick_rust = "0.20.0" magick_rust = "1.0.0"
songbird = "0.4.0" songbird = "0.5.0"
json = "0.12.4" json = "0.12.4"
axum = "0.7.4" axum = "0.8.1"
axum-macros = "0.4.1"
sha3 = "0.10.8" sha3 = "0.10.8"
base64 = "0.22.0" base64 = "0.22.0"
j_db = { version = "0.1.2", registry = "jojo-dev" } j_db = { version = "0.1.2", registry = "jojo-dev" }
chrono = { version = "0.4.31", features = ["serde"] } chrono = { version = "0.4.31", features = ["serde"] }
chrono-tz = "0.8.5" chrono-tz = "0.10.1"
log = "0.4.20"
serde_json = "1.0.113" serde_json = "1.0.113"
raas_types = { version = "0.0.9", registry = "jojo-dev"} raas_types = { version = "0.0.9", registry = "jojo-dev"}
prost = "0.12.6" tonic = "0.12.3"
tonic = "0.11.0" prost = "0.13.5"
emojis = "0.6.2" emojis = "0.6.2"
[dependencies.serenity] [dependencies.serenity]

View File

@ -8,8 +8,8 @@ use emojis::Group;
use raas_types::raas::bot::roll::{roll_response, Roll, RollCmd}; use raas_types::raas::bot::roll::{roll_response, Roll, RollCmd};
use raas_types::raas::resp::response::Resp; use raas_types::raas::resp::response::Resp;
use raas_types::raas::service::raas_client::RaasClient; use raas_types::raas::service::raas_client::RaasClient;
use rand::prelude::SliceRandom; use rand::prelude::IndexedRandom;
use rand::thread_rng; use rand::rng;
use reqwest::Client; use reqwest::Client;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use serenity::all::{CreateAttachment, CreateMessage}; use serenity::all::{CreateAttachment, CreateMessage};
@ -277,11 +277,9 @@ async fn real_roll(ctx: &Context, msg: &Message, _args: Args) -> CommandResult {
})), })),
}; };
let grpc_request = tonic::Request::new(roll_request);
msg.reply(&ctx.http, "Sent roll request, please hang on!") msg.reply(&ctx.http, "Sent roll request, please hang on!")
.await?; .await?;
let response = client.send_request(grpc_request).await?; let response = client.send_request(roll_request).await?;
let raas_response = response.into_inner(); let raas_response = response.into_inner();
@ -421,10 +419,7 @@ async fn emoji_8ball(ctx: &Context, msg: &Message) -> CommandResult {
emojis.append(&mut unicode_emojis); emojis.append(&mut unicode_emojis);
let emoji_msg: Vec<String> = emojis let emoji_msg: Vec<String> = emojis.choose_multiple(&mut rng(), 3).cloned().collect();
.choose_multiple(&mut thread_rng(), 3)
.cloned()
.collect();
msg.reply(&ctx.http, emoji_msg.join("")).await?; msg.reply(&ctx.http, emoji_msg.join("")).await?;

View File

@ -2,8 +2,8 @@ use crate::config::GlobalData;
use crate::models::lil_fren; use crate::models::lil_fren;
use crate::models::lil_fren::{AliveState, LilFren, LilFrenState}; use crate::models::lil_fren::{AliveState, LilFren, LilFrenState};
use crate::{command, group}; use crate::{command, group};
use rand::prelude::SliceRandom; use rand::prelude::IndexedRandom;
use rand::{thread_rng, Rng}; use rand::{rng, Rng};
use serenity::client::Context; use serenity::client::Context;
use serenity::framework::standard::{Args, CommandResult}; use serenity::framework::standard::{Args, CommandResult};
use serenity::model::channel::Message; use serenity::model::channel::Message;
@ -120,7 +120,7 @@ async fn feed(ctx: &Context, msg: &Message, args: Args) -> CommandResult {
if let Some(mut lil_fren) = lil_fren { if let Some(mut lil_fren) = lil_fren {
if lil_fren.is_alive() == AliveState::Alive { if lil_fren.is_alive() == AliveState::Alive {
let feed: f32 = thread_rng().gen_range(-0.1..=1.0); let feed: f32 = rng().gen_range(-0.1..=1.0);
lil_fren.hunger = (lil_fren.hunger + feed).clamp(-1.0, 1.0); lil_fren.hunger = (lil_fren.hunger + feed).clamp(-1.0, 1.0);
let guild = msg.guild_id.unwrap(); let guild = msg.guild_id.unwrap();
@ -170,7 +170,7 @@ async fn give_water(ctx: &Context, msg: &Message, _args: Args) -> CommandResult
msg.reply(&ctx.http, "Lil buddy be drinking!").await?; msg.reply(&ctx.http, "Lil buddy be drinking!").await?;
global_data.db.insert(lil_fren)?; global_data.db.insert(lil_fren)?;
let drink = if thread_rng().gen_bool(0.20) { let drink = if rng().gen_bool(0.20) {
":beer:" ":beer:"
} else { } else {
":cup_with_straw:" ":cup_with_straw:"
@ -200,14 +200,14 @@ async fn play(ctx: &Context, msg: &Message, _args: Args) -> CommandResult {
if let Some(mut lil_fren) = lil_fren { if let Some(mut lil_fren) = lil_fren {
if lil_fren.is_alive() == AliveState::Alive { if lil_fren.is_alive() == AliveState::Alive {
lil_fren.entertainment = lil_fren.entertainment =
(lil_fren.entertainment + thread_rng().gen_range(0.10..1.0)).clamp(-1.0, 1.0); (lil_fren.entertainment + rng().gen_range(0.10..1.0)).clamp(-1.0, 1.0);
let guild = msg.guild_id.unwrap(); let guild = msg.guild_id.unwrap();
let lil_fren_emoji = guild.emoji(&ctx.http, lil_fren.emoji).await?; let lil_fren_emoji = guild.emoji(&ctx.http, lil_fren.emoji).await?;
global_data.db.insert(lil_fren)?; global_data.db.insert(lil_fren)?;
let toy = global_data.cfg.toys.choose(&mut thread_rng()).unwrap(); let toy = global_data.cfg.toys.choose(&mut rng()).unwrap();
msg.reply(&ctx.http, lil_fren::draw_feed(&lil_fren_emoji, toy)) msg.reply(&ctx.http, lil_fren::draw_feed(&lil_fren_emoji, toy))
.await?; .await?;
} else { } else {

View File

@ -58,7 +58,7 @@ pub async fn create_motivation_image(motivation: Motivation) -> Result<Vec<u8>,
text_color_wand.set_color("white")?; text_color_wand.set_color("white")?;
text_wand.set_fill_color(&text_color_wand); text_wand.set_fill_color(&text_color_wand);
text_wand.set_font_size(0.07 * (wand.get_image_width() as f64)); text_wand.set_font_size(0.07 * (wand.get_image_width() as f64));
text_wand.set_text_alignment(magick_rust::bindings::AlignType_CenterAlign); text_wand.set_text_alignment(magick_rust::AlignType::Center);
wand.annotate_image(&text_wand, text_pos_x, text_pos_y, 0.0, &text)?; wand.annotate_image(&text_wand, text_pos_x, text_pos_y, 0.0, &text)?;
Ok(wand.write_image_blob("jpg")?) Ok(wand.write_image_blob("jpg")?)
} }

View File

@ -6,8 +6,8 @@ use crate::models::motivation::MotivationConfig;
use crate::models::task::{Task, TaskType}; use crate::models::task::{Task, TaskType};
use crate::user::{User, UserError}; use crate::user::{User, UserError};
use crate::{command, group, GlobalData}; use crate::{command, group, GlobalData};
use rand::prelude::SliceRandom; use rand::prelude::IndexedRandom;
use rand::{thread_rng, Rng}; use rand::{rng, Rng};
use serenity::all::{ use serenity::all::{
parse_user_mention, CreateAttachment, CreateMessage, EditRole, GuildId, Member, parse_user_mention, CreateAttachment, CreateMessage, EditRole, GuildId, Member,
}; };
@ -245,7 +245,7 @@ async fn use_item(ctx: &Context, msg: &Message, args: Args) -> CommandResult {
"Yes, I am happy for you!", "Yes, I am happy for you!",
"||YES||", "||YES||",
]; ];
let fortune = good_fortunes.choose(&mut thread_rng()).unwrap(); let fortune = good_fortunes.choose(&mut rng()).unwrap();
msg.reply(&ctx.http, fortune.to_string()).await?; msg.reply(&ctx.http, fortune.to_string()).await?;
} }
@ -447,37 +447,31 @@ pub async fn restock_shop(ctx: &Context, global_data: &GlobalData) -> Result<(),
bot_user.inventory.inventory.clear(); bot_user.inventory.inventory.clear();
bot_user.inventory.give_item(
ItemType::TheConceptOfLove,
thread_rng().gen_range(0..=5),
None,
);
bot_user bot_user
.inventory .inventory
.give_item(ItemType::GoodFortune, thread_rng().gen_range(0..10), None); .give_item(ItemType::TheConceptOfLove, rng().gen_range(0..=5), None);
bot_user.inventory.give_item(
ItemType::CancelInsurance,
thread_rng().gen_range(1..=3),
None,
);
bot_user.inventory.give_item(
ItemType::LicenseToBeHorny,
thread_rng().gen_range(0..=25),
None,
);
bot_user bot_user
.inventory .inventory
.give_item(ItemType::KillGun, thread_rng().gen_range(1..=3), None); .give_item(ItemType::GoodFortune, rng().gen_range(0..10), None);
bot_user bot_user
.inventory .inventory
.give_item(ItemType::CancelRay, thread_rng().gen_range(1..=3), None); .give_item(ItemType::CancelInsurance, rng().gen_range(1..=3), None);
bot_user bot_user
.inventory .inventory
.give_item(ItemType::Helmet, thread_rng().gen_range(1..=3), None); .give_item(ItemType::LicenseToBeHorny, rng().gen_range(0..=25), None);
bot_user
.inventory
.give_item(ItemType::KillGun, rng().gen_range(1..=3), None);
bot_user
.inventory
.give_item(ItemType::CancelRay, rng().gen_range(1..=3), None);
bot_user
.inventory
.give_item(ItemType::Helmet, rng().gen_range(1..=3), None);
bot_user bot_user
.inventory .inventory
.give_item(ItemType::TacticalNuke, thread_rng().gen_range(0..=1), None); .give_item(ItemType::TacticalNuke, rng().gen_range(0..=1), None);
loop { loop {
let mut dir = tokio::fs::read_dir(&global_data.cfg.nft_path).await?; let mut dir = tokio::fs::read_dir(&global_data.cfg.nft_path).await?;

View File

@ -1,6 +1,6 @@
use crate::config::{BotConfig, Channel}; use crate::config::{BotConfig, Channel};
use crate::{command, group, GlobalData}; use crate::{command, group, GlobalData};
use rand::prelude::SliceRandom; use rand::prelude::{IndexedRandom, SliceRandom};
use rand::thread_rng; use rand::thread_rng;
use regex::Regex; use regex::Regex;
use serenity::client::Context; use serenity::client::Context;

View File

@ -2,8 +2,8 @@ use crate::error::Error;
use base64::{engine::general_purpose, Engine as _}; use base64::{engine::general_purpose, Engine as _};
use j_db::database::Database; use j_db::database::Database;
use j_db::model::JdbModel; use j_db::model::JdbModel;
use rand::distributions::Alphanumeric; use rand::distr::Alphanumeric;
use rand::{thread_rng, Rng}; use rand::{rng, Rng};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use serenity::model::id::UserId; use serenity::model::id::UserId;
use sha3::digest::FixedOutput; use sha3::digest::FixedOutput;
@ -33,7 +33,7 @@ impl JdbModel for Apikey {
impl Apikey { impl Apikey {
pub fn new(name: &str, user_id: Option<UserId>) -> (Self, String) { pub fn new(name: &str, user_id: Option<UserId>) -> (Self, String) {
let secret: String = thread_rng() let secret: String = rng()
.sample_iter(&Alphanumeric) .sample_iter(&Alphanumeric)
.take(64) .take(64)
.map(char::from) .map(char::from)

View File

@ -1,8 +1,9 @@
use crate::error::Error; use crate::error::Error;
use j_db::database::Database; use j_db::database::Database;
use j_db::model::JdbModel; use j_db::model::JdbModel;
use rand::prelude::IndexedRandom;
use rand::rng;
use rand::seq::SliceRandom; use rand::seq::SliceRandom;
use rand::thread_rng;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use std::collections::HashMap; use std::collections::HashMap;
use tera::{Context, Tera}; use tera::{Context, Tera};
@ -27,7 +28,7 @@ impl RandomResponseTemplate {
context.insert("target", target); context.insert("target", target);
for (key, words) in &self.word_bank { for (key, words) in &self.word_bank {
context.insert(key, &words.choose(&mut thread_rng()).unwrap()); context.insert(key, &words.choose(&mut rng()).unwrap());
} }
Ok(Tera::one_off(&self.template, &context, false)?) Ok(Tera::one_off(&self.template, &context, false)?)
@ -50,7 +51,7 @@ impl RandomResponseTemplate {
target: &str, target: &str,
) -> Result<Option<String>, Error> { ) -> Result<Option<String>, Error> {
let templates = Self::get_all_responses_for_type(db, resp_type)?; let templates = Self::get_all_responses_for_type(db, resp_type)?;
let template = templates.choose(&mut thread_rng()); let template = templates.choose(&mut rng());
if let Some(template) = template { if let Some(template) = template {
Ok(Some(template.render(target)?)) Ok(Some(template.render(target)?))

View File

@ -2,8 +2,8 @@ use crate::config::GlobalData;
use crate::error::Error; use crate::error::Error;
use j_db::database::Database; use j_db::database::Database;
use j_db::model::JdbModel; use j_db::model::JdbModel;
use rand::distributions::{Distribution, Standard}; use rand::distr::{Distribution, StandardUniform};
use rand::{thread_rng, Rng}; use rand::{rng, Rng};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use serenity::model::guild::Emoji; use serenity::model::guild::Emoji;
use serenity::model::id::{EmojiId, GuildId}; use serenity::model::id::{EmojiId, GuildId};
@ -190,7 +190,7 @@ pub enum LilFrenState {
PhasedIntoYourReality, PhasedIntoYourReality,
} }
impl Distribution<LilFrenState> for Standard { impl Distribution<LilFrenState> for StandardUniform {
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> LilFrenState { fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> LilFrenState {
match rng.gen_range(0..10) { match rng.gen_range(0..10) {
0 => LilFrenState::Standing, 0 => LilFrenState::Standing,
@ -251,8 +251,8 @@ impl LilFren {
thirst: 1.0, thirst: 1.0,
entertainment: 1.0, entertainment: 1.0,
state: LilFrenState::Standing, state: LilFrenState::Standing,
smarts: thread_rng().gen_range(0.0..0.5), smarts: rng().gen_range(0.0..0.5),
metabolism: thread_rng().gen_range(0.2..0.75), metabolism: rng().gen_range(0.2..0.75),
} }
} }
@ -296,9 +296,9 @@ impl LilFren {
lil_fren.thirst = lil_fren.thirst =
(lil_fren.entertainment + entertainment_diff * self.smarts).clamp(-1.0, 1.0); (lil_fren.entertainment + entertainment_diff * self.smarts).clamp(-1.0, 1.0);
if thread_rng().gen_bool(0.75) { if rng().gen_bool(0.75) {
println!("fren is now {:?}", self.state); println!("fren is now {:?}", self.state);
lil_fren.state = thread_rng().gen(); lil_fren.state = rng().random();
} }
db.insert(lil_fren)?; db.insert(lil_fren)?;

View File

@ -4,8 +4,8 @@ use crate::models::random::RandomConfig;
use j_db::database::Database; use j_db::database::Database;
use j_db::error::JDbError; use j_db::error::JDbError;
use j_db::model::JdbModel; use j_db::model::JdbModel;
use rand::prelude::SliceRandom; use rand::prelude::IndexedRandom;
use rand::thread_rng; use rand::rng;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use std::fmt::Debug; use std::fmt::Debug;
@ -90,9 +90,7 @@ impl MotivationConfig {
} }
} }
let image = images let image = images.choose(&mut rng()).ok_or(Error::NoAlbumFound)?;
.choose(&mut thread_rng())
.ok_or(Error::NoAlbumFound)?;
let actions = RandomConfig::get_random(db, ACTION_RANDOM_GROUP)?.unwrap_or_default(); let actions = RandomConfig::get_random(db, ACTION_RANDOM_GROUP)?.unwrap_or_default();
let goals = RandomConfig::get_random(db, GOAL_RANDOM_GROUP)?.unwrap_or_default(); let goals = RandomConfig::get_random(db, GOAL_RANDOM_GROUP)?.unwrap_or_default();

View File

@ -1,7 +1,7 @@
use crate::error::Error; use crate::error::Error;
use j_db::database::Database; use j_db::database::Database;
use j_db::model::JdbModel; use j_db::model::JdbModel;
use rand::distributions::WeightedIndex; use rand::distr::weighted::WeightedIndex;
use rand::prelude::Distribution; use rand::prelude::Distribution;
use rand::thread_rng; use rand::thread_rng;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};