From 3fc7b0d2dc96447d1cb8667fb7661152ae2d166e Mon Sep 17 00:00:00 2001 From: max Date: Wed, 7 Feb 2024 22:47:37 +0000 Subject: [PATCH] Random and true equal --- src/bot/handler.rs | 25 +++++++++++++++++++------ src/img/config_file.rs | 2 +- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/bot/handler.rs b/src/bot/handler.rs index c32ac8a..0f2db6b 100644 --- a/src/bot/handler.rs +++ b/src/bot/handler.rs @@ -7,7 +7,6 @@ use serenity::{ client::Context, }; use tokio::fs::File; -use walkdir::{DirEntry, WalkDir}; use crate::{ config::ConfigGlobal, @@ -19,7 +18,12 @@ pub struct Handler; #[async_trait] impl EventHandler for Handler { async fn message(&self, ctx: Context, msg: Message) { - if msg.author.bot || msg.content.starts_with("!") { + let chan_id: u64 = 675046560219791378; + if msg.author.bot + || msg.content.starts_with("!") + || !msg.channel_id.eq(&chan_id) + || msg.content.len() == 0 + { return; } if msg.content == "&ping" { @@ -40,7 +44,10 @@ impl EventHandler for Handler { .clone(); (config_img, config) }; - let mut rng = rand::thread_rng(); + + if config_img.keyword.len() == 0 || msg.content.len() > 50 { + return; + } let folder_container = match config_img .keyword .iter() @@ -51,7 +58,10 @@ impl EventHandler for Handler { let keyword_path = match keyword_matching.path.len() { 0 => keyword_matching.path[0].clone(), _ => { - let id = rng.gen_range(0..keyword_matching.path.len()); + let id: usize = { + let mut rng = rand::thread_rng(); + rng.gen_range(0..keyword_matching.path.len()) + }; keyword_matching.path[id].clone() } }; @@ -62,12 +72,15 @@ impl EventHandler for Handler { }; let path = format!("{}/{}", config.image.path.clone(), folder_container); let file_folder = KeyWordItem::output_folder_content(path.clone()); - let id_rand: usize = rng.gen_range(0..file_folder.len()); + let id_rand: usize = { + let mut rng = rand::thread_rng(); + rng.gen_range(0..file_folder.len()) + }; let filename = match file_folder.get(id_rand) { Some(file) => file.file_name().to_str().unwrap(), None => return, }; - let file_path = format!("{}/{}", path, filename.clone()); + let file_path = format!("{}/{}", path, filename); let file = match File::open(file_path).await { Ok(file) => file, Err(why) => { diff --git a/src/img/config_file.rs b/src/img/config_file.rs index 64dd0b3..de604ea 100644 --- a/src/img/config_file.rs +++ b/src/img/config_file.rs @@ -14,7 +14,7 @@ impl KeyWordItem { pub fn does_value_match(&self, haystack: String) -> bool { self.value.clone().into_iter().any(|val| { let re = Regex::new(&val).unwrap(); - re.is_match(&haystack) + re.replace_all(&haystack, "") == "" }) } pub fn output_folder_content(path: String) -> Vec {