Port leek's ;mock command

This commit is contained in:
Yash Karandikar 2021-12-29 14:25:22 -06:00
parent 0f78c35c18
commit 2499f6bb40
Signed by untrusted user: karx
GPG key ID: A794DA2529474BA5
2 changed files with 27 additions and 15 deletions

View file

@ -1,5 +1,3 @@
// TODO: port leek @karx
macro_rules! hashmap {
($( $key: expr => $val: expr ),*) => {{
let mut map = ::std::collections::HashMap::new();
@ -8,21 +6,20 @@ macro_rules! hashmap {
}}
}
// macro_rules! mock {
// ($target:expr) => {{
// let mut builder = String::from("");
// for char in $target.chars() {
// if rand::random() {
// builder.push_str(&char.to_uppercase().to_string());
// } else {
// builder.push_str(&char.to_lowercase().to_string());
// }
// }
pub fn mock(target: &str) -> String {
let mut builder = String::with_capacity(target.len());
// builder
// }}
// }
for char in target.chars() {
if rand::random() {
builder.push_str(&char.to_uppercase().to_string());
} else {
builder.push_str(&char.to_lowercase().to_string());
}
}
builder
}
pub fn leetify(target: &str) -> String {
let letters = hashmap! {

View file

@ -165,6 +165,21 @@ async fn handle_privmsg(
.unwrap_or("Invalid category. Valid categories: https://waifu.pics/docs");
state.client.privmsg(&channel, response).await?;
}
"mock" => {
let user = match remainder {
Some(u) => match u {
"" => &nick,
_ => u
},
None => &nick
}.trim();
if let Some(prev_msg) = state.last_msgs.get(user) {
let resp = bots::leek::mock(prev_msg);
state.client.privmsg(&channel, &resp).await?;
} else {
state.client.privmsg(&channel, "No previous messages to mock!").await?;
}
}
"leet" => {
let user = match remainder {
Some(u) => match u {