Always react to memes in meme channel
This commit is contained in:
parent
5f9281ac9d
commit
7e8d8bd7da
33
src/main.rs
33
src/main.rs
|
@ -1,4 +1,5 @@
|
||||||
use serenity::model::id::{EmojiId, GuildId};
|
use serenity::model::channel::ReactionType;
|
||||||
|
use serenity::model::id::{ChannelId, EmojiId, GuildId};
|
||||||
use serenity::model::prelude::*;
|
use serenity::model::prelude::*;
|
||||||
use serenity::prelude::*;
|
use serenity::prelude::*;
|
||||||
use serenity::Client;
|
use serenity::Client;
|
||||||
|
@ -9,27 +10,47 @@ struct Handler;
|
||||||
|
|
||||||
lazy_static! {
|
lazy_static! {
|
||||||
static ref SERVER_ID: GuildId = GuildId(std::env::args().nth(1).unwrap().parse().unwrap());
|
static ref SERVER_ID: GuildId = GuildId(std::env::args().nth(1).unwrap().parse().unwrap());
|
||||||
|
static ref MEME_CHANNEL: ChannelId =
|
||||||
|
ChannelId(std::env::args().nth(2).unwrap().parse().unwrap());
|
||||||
}
|
}
|
||||||
|
|
||||||
impl EventHandler for Handler {
|
impl EventHandler for Handler {
|
||||||
fn message(&self, ctx: Context, message: Message) {
|
fn message(&self, ctx: Context, message: Message) {
|
||||||
|
if message.guild_id != Some(*SERVER_ID) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if is_meme(&message) {
|
||||||
|
react(&ctx, &message, 748564944449962017, "based");
|
||||||
|
react(&ctx, &message, 748564944819060856, "cringe");
|
||||||
|
return;
|
||||||
|
}
|
||||||
if is_based(&message.content.to_lowercase()) {
|
if is_based(&message.content.to_lowercase()) {
|
||||||
react(&ctx, &message, 748609686273523844);
|
react(&ctx, &message, 748564944449962017, "based");
|
||||||
}
|
}
|
||||||
if is_cringe(&message.content.to_lowercase()) {
|
if is_cringe(&message.content.to_lowercase()) {
|
||||||
react(&ctx, &message, 748609686273523844);
|
react(&ctx, &message, 748564944819060856, "cringe");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn react(ctx: &Context, msg: &Message, emoji: u64) {
|
fn react(ctx: &Context, msg: &Message, emoji: u64, name: &str) {
|
||||||
if let Err(e) = msg.react(ctx, EmojiId(emoji)) {
|
let reaction = ReactionType::Custom {
|
||||||
|
animated: false,
|
||||||
|
id: EmojiId(emoji),
|
||||||
|
name: Some(name.to_string()),
|
||||||
|
};
|
||||||
|
if let Err(e) = msg.react(ctx, reaction) {
|
||||||
println!("Could not react, error was: {:?}", e);
|
println!("Could not react, error was: {:?}", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn is_meme(msg: &Message) -> bool {
|
||||||
|
msg.channel_id == *MEME_CHANNEL
|
||||||
|
&& (!msg.attachments.is_empty() || msg.content.to_lowercase().contains("http"))
|
||||||
|
}
|
||||||
|
|
||||||
fn is_cringe(s: &str) -> bool {
|
fn is_cringe(s: &str) -> bool {
|
||||||
s.contains("cringe")
|
s.contains("cringe") || s.contains("cringy")
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_based(s: &str) -> bool {
|
fn is_based(s: &str) -> bool {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user