feat(eventsub): implement suspicious user update (#6012)
This commit is contained in:
@@ -300,9 +300,25 @@ void Connection::onChannelSuspiciousUserUpdate(
|
||||
const lib::messages::Metadata &metadata,
|
||||
const lib::payload::channel_suspicious_user_update::v1::Payload &payload)
|
||||
{
|
||||
(void)metadata;
|
||||
qCDebug(LOG) << "On channel suspicious user update for"
|
||||
<< payload.event.broadcasterUserLogin.qt();
|
||||
auto *channel = dynamic_cast<TwitchChannel *>(
|
||||
getApp()
|
||||
->getTwitch()
|
||||
->getChannelOrEmpty(payload.event.broadcasterUserLogin.qt())
|
||||
.get());
|
||||
if (!channel || channel->isEmpty())
|
||||
{
|
||||
qCDebug(LOG) << "Channel Suspicious User Update for broadcaster we're "
|
||||
"not interested in"
|
||||
<< payload.event.broadcasterUserLogin.qt();
|
||||
return;
|
||||
}
|
||||
|
||||
auto time = chronoToQDateTime(metadata.messageTimestamp);
|
||||
auto message = makeSuspiciousUserUpdate(channel, time, payload.event);
|
||||
|
||||
runInGuiThread([channel, message] {
|
||||
channel->addMessage(message, MessageContext::Original);
|
||||
});
|
||||
}
|
||||
|
||||
void Connection::onChannelChatUserMessageHold(
|
||||
|
||||
@@ -756,6 +756,50 @@ MessagePtr makeSuspiciousUserMessageBody(
|
||||
return builder.release();
|
||||
}
|
||||
|
||||
MessagePtr makeSuspiciousUserUpdate(
|
||||
TwitchChannel *channel, const QDateTime &time,
|
||||
const lib::payload::channel_suspicious_user_update::v1::Event &event)
|
||||
{
|
||||
EventSubMessageBuilder builder(channel, time);
|
||||
builder->flags.set(MessageFlag::DoNotTriggerNotification);
|
||||
builder->loginName = event.moderatorUserLogin.qt();
|
||||
|
||||
QString text;
|
||||
builder.appendUser(event.moderatorUserName, event.moderatorUserLogin, text);
|
||||
|
||||
switch (event.lowTrustStatus)
|
||||
{
|
||||
case lib::suspicious_users::Status::None: {
|
||||
builder.emplaceSystemTextAndUpdate(u"removed"_s, text);
|
||||
builder.appendUser(event.userName, event.userLogin, text);
|
||||
builder.emplaceSystemTextAndUpdate(
|
||||
u"from the suspicious user list."_s, text);
|
||||
}
|
||||
break;
|
||||
|
||||
case lib::suspicious_users::Status::ActiveMonitoring: {
|
||||
builder.emplaceSystemTextAndUpdate(u"added"_s, text);
|
||||
builder.appendUser(event.userName, event.userLogin, text);
|
||||
builder.emplaceSystemTextAndUpdate(
|
||||
u"as a monitored suspicious chatter."_s, text);
|
||||
}
|
||||
break;
|
||||
|
||||
case lib::suspicious_users::Status::Restricted: {
|
||||
builder.emplaceSystemTextAndUpdate(u"added"_s, text);
|
||||
builder.appendUser(event.userName, event.userLogin, text);
|
||||
builder.emplaceSystemTextAndUpdate(
|
||||
u"as a restricted suspicious chatter."_s, text);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
builder->messageText = text;
|
||||
builder->searchText = text;
|
||||
|
||||
return builder.release();
|
||||
}
|
||||
|
||||
MessagePtr makeUserMessageHeldMessage(
|
||||
TwitchChannel *channel, const QDateTime &time,
|
||||
const lib::payload::channel_chat_user_message_hold::v1::Event &event)
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#include "twitch-eventsub-ws/payloads/channel-chat-user-message-update-v1.hpp"
|
||||
#include "twitch-eventsub-ws/payloads/channel-moderate-v2.hpp"
|
||||
#include "twitch-eventsub-ws/payloads/channel-suspicious-user-message-v1.hpp"
|
||||
#include "twitch-eventsub-ws/payloads/channel-suspicious-user-update-v1.hpp"
|
||||
|
||||
#include <QDateTime>
|
||||
|
||||
@@ -167,6 +168,10 @@ MessagePtr makeSuspiciousUserMessageBody(
|
||||
TwitchChannel *channel, const QDateTime &time,
|
||||
const lib::payload::channel_suspicious_user_message::v1::Event &event);
|
||||
|
||||
MessagePtr makeSuspiciousUserUpdate(
|
||||
TwitchChannel *channel, const QDateTime &time,
|
||||
const lib::payload::channel_suspicious_user_update::v1::Event &event);
|
||||
|
||||
MessagePtr makeUserMessageHeldMessage(
|
||||
TwitchChannel *channel, const QDateTime &time,
|
||||
const lib::payload::channel_chat_user_message_hold::v1::Event &event);
|
||||
|
||||
Reference in New Issue
Block a user