2024-02-14 12:22:29 +00:00
|
|
|
use rand::random;
|
2024-02-16 21:49:57 +00:00
|
|
|
use serenity::http::CacheHttp;
|
2024-02-14 12:22:29 +00:00
|
|
|
use serenity::{client::Context, http::Http};
|
2023-07-15 09:18:08 +00:00
|
|
|
use serenity::model::channel::Message;
|
2024-09-28 16:39:32 +00:00
|
|
|
use std::collections::HashMap;
|
2024-02-14 12:22:29 +00:00
|
|
|
use std::sync::Arc;
|
2023-07-15 09:18:08 +00:00
|
|
|
|
2024-02-14 12:22:29 +00:00
|
|
|
use crate::util::debug::send_error;
|
2024-09-28 16:39:32 +00:00
|
|
|
use crate::util::utilities;
|
2024-02-14 12:22:29 +00:00
|
|
|
|
2024-10-06 14:53:12 +00:00
|
|
|
use crate::commands::moover::moove::{moove, moove_check};
|
2023-07-15 09:18:08 +00:00
|
|
|
|
|
|
|
pub async fn handle(ctx: Context, msg: Message) {
|
2024-02-14 12:22:29 +00:00
|
|
|
if msg.author.bot {
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
let lower_case_content = msg.content.to_lowercase();
|
|
|
|
|
|
|
|
let bot_id = ctx.cache.current_user().id;
|
|
|
|
if msg.mentions_user_id(bot_id) || lower_case_content.contains("moover") {
|
|
|
|
if !response(ctx.http.clone(), msg.clone()).await {
|
|
|
|
// NOTE maybe should exit here instead since there is something very wrong if I can't reply
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if lower_case_content.contains("henlo") {
|
|
|
|
if !henlo(ctx.http.clone(), msg.clone()).await {
|
|
|
|
// NOTE same as above
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-09-28 16:39:32 +00:00
|
|
|
// X and IG not embedding correctly (IG fix does not work for now need to find different one)
|
|
|
|
let link_fixes = HashMap::from([
|
|
|
|
("//x.com", "//fxtwitter.com")
|
|
|
|
]);
|
|
|
|
|
|
|
|
for (site, fix) in link_fixes {
|
|
|
|
if lower_case_content.contains(site) {
|
|
|
|
let new_content = format!("Sent by {}\n{}", msg.clone().author, lower_case_content.replace(site, fix));
|
|
|
|
match utilities::replace_msg(ctx.http.clone(), msg.clone(), new_content).await {
|
|
|
|
Ok(_) => {},
|
2024-10-03 20:52:38 +00:00
|
|
|
Err(e) => {
|
|
|
|
let _ = send_error(ctx.http.clone(), e.to_string()).await;
|
|
|
|
return;
|
|
|
|
}
|
2024-09-28 16:39:32 +00:00
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2024-10-02 19:54:26 +00:00
|
|
|
if random::<u16>() % 10000 == 666 {
|
2024-02-16 21:49:57 +00:00
|
|
|
match msg.reply(ctx.http(), "Povedz loď").await {
|
|
|
|
Ok(_) => {},
|
2024-10-03 20:52:38 +00:00
|
|
|
Err(e) => {
|
|
|
|
let _ = send_error(ctx.http.clone(), e.to_string()).await;
|
|
|
|
return;
|
|
|
|
}
|
2024-02-16 21:49:57 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-02-14 12:22:29 +00:00
|
|
|
let channel_id = match moove_check(&msg).await {
|
|
|
|
Some(val) => val,
|
|
|
|
None => return
|
|
|
|
};
|
|
|
|
|
2024-02-16 21:49:57 +00:00
|
|
|
match moove(ctx.http, msg.clone(), channel_id).await {
|
2023-07-15 09:18:08 +00:00
|
|
|
Ok(_) => return,
|
|
|
|
Err(e) => println!("ERROR: {e}")
|
|
|
|
};
|
2024-02-14 12:22:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
async fn response(http: Arc<Http>, msg: Message) -> bool {
|
|
|
|
// NOTE probably not clever to do it this way
|
|
|
|
const RESPONSES: [&str; 4] = [
|
|
|
|
"To som jaaa",
|
|
|
|
"Henloooo",
|
2024-02-15 19:27:52 +00:00
|
|
|
"No čo je?",
|
2024-02-14 12:22:29 +00:00
|
|
|
"Hm?"
|
|
|
|
];
|
|
|
|
|
|
|
|
let num = random::<usize>() % RESPONSES.len();
|
|
|
|
match msg.reply(http.clone(), RESPONSES[num]).await {
|
|
|
|
Ok(_) => { return true }
|
|
|
|
Err(e) => {
|
2024-10-03 20:52:38 +00:00
|
|
|
let _ = send_error(http, e.to_string()).await;
|
2024-02-14 12:22:29 +00:00
|
|
|
return false
|
|
|
|
}
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
async fn henlo(http: Arc<Http>, msg: Message) -> bool {
|
|
|
|
const EMOJIS: [&str; 7] = ["🥰", "🐄", "🐮", "❤️", "👋", "🤠", "😊"];
|
|
|
|
|
|
|
|
let num = random::<usize>() % EMOJIS.len();
|
|
|
|
let response = format!("Henlooo {} {}", msg.author.name, EMOJIS[num]);
|
|
|
|
|
|
|
|
|
|
|
|
match msg.reply(http.clone(), response).await {
|
|
|
|
Ok(_) => { return true }
|
|
|
|
Err(e) => {
|
2024-10-03 20:52:38 +00:00
|
|
|
let _ = send_error(http, e.to_string()).await;
|
2024-02-14 12:22:29 +00:00
|
|
|
return false
|
|
|
|
}
|
|
|
|
};
|
2023-07-15 09:18:08 +00:00
|
|
|
}
|