discord-kurante/src/passive/fufufu.rs

57 lines
1.7 KiB
Rust
Raw Normal View History

2020-05-02 02:17:53 +00:00
use regex::Regex;
use serenity::async_trait;
use serenity::model::channel::Message;
use serenity::prelude::{Context, EventHandler};
2020-05-02 02:27:40 +00:00
pub(crate) struct FufufuResponder {
2020-05-02 02:17:53 +00:00
regex: Regex,
}
2020-05-02 02:27:40 +00:00
impl Default for FufufuResponder {
2020-05-02 02:17:53 +00:00
fn default() -> Self {
Self {
regex: Regex::new(r"(?:[fF][uU]){3,}").unwrap(),
}
}
}
#[async_trait]
2020-05-02 02:27:40 +00:00
impl EventHandler for FufufuResponder {
2020-05-02 02:17:53 +00:00
async fn message(&self, ctx: Context, message: Message) {
let content = &message.content_safe(ctx.clone()).await;
if self.regex.is_match(content) {
2020-05-02 02:27:40 +00:00
message.channel_id.say(ctx, get_desu()).await.unwrap();
2020-05-02 02:17:53 +00:00
}
}
}
const DESU_STRINGS: &[&str] = &[
"です。",
"desu~",
"desu.",
r#"
```
      
          
            
           
              
             
              
              
             
```"#,
];
fn get_desu() -> &'static str {
use rand::seq::SliceRandom;
use rand::thread_rng;
DESU_STRINGS.choose(&mut thread_rng()).unwrap()
// // https://imgur.com/a/yOb5n
// messageList.add(channel -> channel.sendMessage(new MessageBuilder()
// .setContent("https://www.youtube.com/watch?v=60mLvBWOMb4").build()));
// messageList.add(channel -> channel.sendFile(Desu.class.getResourceAsStream("/desu/desu.jpg"), "desu.jpg"));
// messageList.add(channel -> channel.sendMessage("desu~"));
}