added basic keyword ignore setting

This commit is contained in:
fourtf
2018-01-23 21:33:49 +01:00
parent 91d45214d9
commit dd05ea28fe
13 changed files with 195 additions and 7 deletions
+3 -2
View File
@@ -230,7 +230,6 @@ void TwitchChannel::fetchRecentMessages()
auto msgArray = obj.value("messages").toArray();
if (msgArray.size() > 0) {
std::vector<messages::MessagePtr> messages;
messages.resize(msgArray.size());
for (int i = 0; i < msgArray.size(); i++) {
QByteArray content = msgArray[i].toString().toUtf8();
@@ -239,7 +238,9 @@ void TwitchChannel::fetchRecentMessages()
messages::MessageParseArgs args;
twitch::TwitchMessageBuilder builder(channel, privMsg, args);
messages.at(i) = builder.parse();
if (!builder.isIgnored()) {
messages.push_back(builder.parse());
}
}
channel->addMessagesAtStart(messages);
}
+15 -2
View File
@@ -27,6 +27,21 @@ TwitchMessageBuilder::TwitchMessageBuilder(Channel *_channel,
, tags(this->ircMessage->tags())
, usernameColor(singletons::ThemeManager::getInstance().messages.textColors.system)
{
this->originalMessage = this->ircMessage->content();
}
bool TwitchMessageBuilder::isIgnored() const
{
singletons::SettingManager &settings = singletons::SettingManager::getInstance();
std::shared_ptr<std::vector<QString>> ignoredKeywords = settings.getIgnoredKeywords();
for (const QString &keyword : *ignoredKeywords) {
if (this->originalMessage.contains(keyword, Qt::CaseInsensitive)) {
return true;
}
}
return false;
}
MessagePtr TwitchMessageBuilder::parse()
@@ -34,8 +49,6 @@ MessagePtr TwitchMessageBuilder::parse()
singletons::SettingManager &settings = singletons::SettingManager::getInstance();
singletons::EmoteManager &emoteManager = singletons::EmoteManager::getInstance();
this->originalMessage = this->ircMessage->content();
// PARSING
this->parseUsername();
+1
View File
@@ -38,6 +38,7 @@ public:
QString messageID;
QString userName;
bool isIgnored() const;
messages::MessagePtr parse();
private: