Advanced channel filters (#1748)

Adds custom channel filters complete with their own mini-language. Filters can be created in settings, and applied by clicking the three dots to open the Split menu and selecting "Set filters".
This commit is contained in:
dnsge
2020-10-18 15:16:56 +02:00
committed by Rasmus Karlsson
parent 812cbdf4f9
commit 4199a01b96
41 changed files with 2189 additions and 43 deletions
+7
View File
@@ -6,6 +6,7 @@
#include "BaseSettings.hpp"
#include "common/Channel.hpp"
#include "common/SignalVector.hpp"
#include "controllers/filters/FilterRecord.hpp"
#include "controllers/highlights/HighlightPhrase.hpp"
#include "controllers/moderationactions/ModerationAction.hpp"
#include "singletons/Toasts.hpp"
@@ -20,6 +21,7 @@ class HighlightPhrase;
class HighlightBlacklistUser;
class IgnorePhrase;
class TaggedUser;
class FilterRecord;
/// Settings which are availlable for reading on all threads.
class ConcurrentSettings
@@ -32,6 +34,7 @@ public:
SignalVector<HighlightBlacklistUser> &blacklistedUsers;
SignalVector<IgnorePhrase> &ignoredMessages;
SignalVector<QString> &mutedChannels;
SignalVector<FilterRecordPtr> &filterRecords;
//SignalVector<TaggedUser> &taggedUsers;
SignalVector<ModerationAction> &moderationActions;
@@ -255,6 +258,10 @@ public:
BoolSetting longAlerts = {"/highlighting/alerts", false};
/// Filtering
BoolSetting excludeUserMessagesFromFilter = {
"/filtering/excludeUserMessages", false};
/// Logging
BoolSetting enableLogging = {"/logging/enabled", false};