fix: Handle response whitelist and blacklist correctly

This commit is contained in:
oSumAtrIX 2024-06-14 20:44:39 +02:00
parent 10adf19ddd
commit 4b75d76c17
No known key found for this signature in database
GPG Key ID: A9B3094ACDB604B4
3 changed files with 7 additions and 10 deletions

2
Cargo.lock generated
View File

@ -1683,7 +1683,7 @@ dependencies = [
[[package]]
name = "revanced-discord-bot"
version = "2.8.0"
version = "2.9.0"
dependencies = [
"base64 0.22.1",
"bson",

View File

@ -5,7 +5,7 @@ homepage = "https://revanced.app"
license = "GPL-3.0"
name = "revanced-discord-bot"
repository = "https://github.com/revanced/revanced-discord-bot"
version = "2.8.0"
version = "2.9.0"
edition = "2021"
[profile.release]

View File

@ -4,16 +4,13 @@ use serenity::Message;
use tracing::log::error;
use super::*;
use crate::{
model::application::Trigger,
BotData,
};
use crate::{model::application::Trigger, BotData};
impl Trigger {
fn matches(&self, new_message: &Message, member_roles: &[RoleId]) -> bool {
if let Some(channels) = &self.channels {
if !channels.contains(&new_message.channel_id.get()) {
return true;
return false;
}
}
@ -22,11 +19,11 @@ impl Trigger {
.iter()
.any(|&member_role| roles.contains(&member_role.get()))
{
return true;
return false;
}
}
if !self.regex.iter().any(|r| r.is_match(&new_message.content)) {
if !self.regex.is_empty() && self.regex.iter().any(|r| r.is_match(&new_message.content)) {
return true;
}
@ -49,7 +46,7 @@ pub async fn handle_message_response(
for response in &configuration.responses {
if let Some(whitelist) = &response.whitelist {
if whitelist.matches(new_message, member_roles) {
if !whitelist.matches(new_message, member_roles) {
continue;
}
}