feat: notify mods when users are warned (#5441)

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
This commit is contained in:
iProdigy
2024-06-06 05:13:13 -05:00
committed by GitHub
parent 248cd46eb7
commit d2316af70f
7 changed files with 90 additions and 2 deletions
+33 -2
View File
@@ -286,6 +286,37 @@ PubSub::PubSub(const QString &host, std::chrono::seconds pingInterval)
this->moderation.userUnbanned.invoke(action);
};
this->moderationActionHandlers["warn"] = [this](const auto &data,
const auto &roomID) {
WarnAction action(data, roomID);
action.source.id = data.value("created_by_user_id").toString();
action.source.login =
data.value("created_by").toString(); // currently always empty
action.target.id = data.value("target_user_id").toString();
action.target.login = data.value("target_user_login").toString();
const auto reasons = data.value("args").toArray();
bool firstArg = true;
for (const auto &reasonValue : reasons)
{
if (firstArg)
{
// Skip first arg in the reasons array since it's not a reason
firstArg = false;
continue;
}
const auto &reason = reasonValue.toString();
if (!reason.isEmpty())
{
action.reasons.append(reason);
}
}
this->moderation.userWarned.invoke(action);
};
/*
// This handler is no longer required as we use the automod-queue topic now
this->moderationActionHandlers["automod_rejected"] =
@@ -1131,8 +1162,8 @@ void PubSub::handleMessageResponse(const PubSubMessageMessage &message)
case PubSubChatModeratorActionMessage::Type::INVALID:
default: {
qCDebug(chatterinoPubSub)
<< "Invalid whisper type:" << innerMessage.typeString;
qCDebug(chatterinoPubSub) << "Invalid moderator action type:"
<< innerMessage.typeString;
}
break;
}