implement democracy
This commit is contained in:
parent
7e8d8bd7da
commit
0395da0a5c
40
src/main.rs
40
src/main.rs
|
@ -12,11 +12,12 @@ lazy_static! {
|
|||
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());
|
||||
static ref DELET_THIS_ID: EmojiId = EmojiId(323238442869719040);
|
||||
}
|
||||
|
||||
impl EventHandler for Handler {
|
||||
fn message(&self, ctx: Context, message: Message) {
|
||||
if message.guild_id != Some(*SERVER_ID) {
|
||||
if message.guild_id != Some(*SERVER_ID) || message.channel_id != *MEME_CHANNEL {
|
||||
return;
|
||||
}
|
||||
if is_meme(&message) {
|
||||
|
@ -31,6 +32,40 @@ impl EventHandler for Handler {
|
|||
react(&ctx, &message, 748564944819060856, "cringe");
|
||||
}
|
||||
}
|
||||
|
||||
fn reaction_add(&self, ctx: Context, added_reaction: Reaction) {
|
||||
if is_delet_this(&added_reaction.emoji) {
|
||||
let msg = added_reaction.message(&ctx).unwrap();
|
||||
if msg.channel_id != *MEME_CHANNEL
|
||||
&& is_meme(&msg)
|
||||
&& msg
|
||||
.reactions
|
||||
.iter()
|
||||
.find(|r| is_delet_this(&r.reaction_type))
|
||||
.map(|r| r.count >= 5)
|
||||
.unwrap_or(false)
|
||||
{
|
||||
println!(
|
||||
"Deleting message {:?} with content {} and attachments {:?}",
|
||||
msg, msg.content, msg.attachments
|
||||
);
|
||||
if let Err(e) = msg.delete(&ctx) {
|
||||
println!("Could not delete, error was: {:?}", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn is_delet_this(t: &ReactionType) -> bool {
|
||||
match t {
|
||||
ReactionType::Custom {
|
||||
animated: _,
|
||||
id,
|
||||
name: _,
|
||||
} => id == &*DELET_THIS_ID,
|
||||
_ => false,
|
||||
}
|
||||
}
|
||||
|
||||
fn react(ctx: &Context, msg: &Message, emoji: u64, name: &str) {
|
||||
|
@ -45,8 +80,7 @@ fn react(ctx: &Context, msg: &Message, emoji: u64, name: &str) {
|
|||
}
|
||||
|
||||
fn is_meme(msg: &Message) -> bool {
|
||||
msg.channel_id == *MEME_CHANNEL
|
||||
&& (!msg.attachments.is_empty() || msg.content.to_lowercase().contains("http"))
|
||||
!msg.attachments.is_empty() || msg.content.to_lowercase().contains("http")
|
||||
}
|
||||
|
||||
fn is_cringe(s: &str) -> bool {
|
||||
|
|
Loading…
Reference in New Issue
Block a user