feat(eventsub): handle unban requests (#6086)
This commit is contained in:
@@ -170,6 +170,17 @@ void Connection::onChannelModerate(
|
||||
std::visit(
|
||||
[&](auto &&action) {
|
||||
using Action = std::remove_cvref_t<decltype(action)>;
|
||||
static_assert(CanMakeModMessage<Action> ||
|
||||
CanHandleModMessage<Action> ||
|
||||
std::is_same_v<Action, std::string>,
|
||||
"All actions must be handled");
|
||||
|
||||
if constexpr (std::is_same_v<Action, std::string>)
|
||||
{
|
||||
qCWarning(LOG) << "Unhandled moderation action:"
|
||||
<< QUtf8StringView(action);
|
||||
}
|
||||
|
||||
if constexpr (CanMakeModMessage<Action>)
|
||||
{
|
||||
EventSubMessageBuilder builder(channel, now);
|
||||
|
||||
@@ -588,6 +588,40 @@ void makeModerateMessage(
|
||||
builder.setMessageAndSearchText(text);
|
||||
}
|
||||
|
||||
void makeModerateMessage(
|
||||
EventSubMessageBuilder &builder,
|
||||
const lib::payload::channel_moderate::v2::Event &event,
|
||||
const lib::payload::channel_moderate::v2::UnbanRequest &action)
|
||||
{
|
||||
builder->flags.set(MessageFlag::ModerationAction);
|
||||
|
||||
QString text;
|
||||
|
||||
builder.appendUser(event.moderatorUserName, event.moderatorUserLogin, text);
|
||||
if (action.isApproved)
|
||||
{
|
||||
builder.emplaceSystemTextAndUpdate("approved", text);
|
||||
}
|
||||
else
|
||||
{
|
||||
builder.emplaceSystemTextAndUpdate("denied", text);
|
||||
}
|
||||
builder.appendOrEmplaceSystemTextAndUpdate("the unban request from", text);
|
||||
builder.appendUser(action.userName, action.userLogin, text, false);
|
||||
if (action.moderatorMessage.isEmpty())
|
||||
{
|
||||
builder.emplaceSystemTextAndUpdate(".", text);
|
||||
}
|
||||
else
|
||||
{
|
||||
builder.emplaceSystemTextAndUpdate(":", text);
|
||||
builder.appendOrEmplaceSystemTextAndUpdate(action.moderatorMessage.qt(),
|
||||
text);
|
||||
}
|
||||
|
||||
builder.setMessageAndSearchText(text);
|
||||
}
|
||||
|
||||
MessagePtr makeAutomodHoldMessageHeader(
|
||||
TwitchChannel *channel, const QDateTime &time,
|
||||
const lib::payload::automod_message_hold::v2::Event &event)
|
||||
|
||||
@@ -160,6 +160,12 @@ void makeModerateMessage(
|
||||
const lib::payload::channel_moderate::v2::Event &event,
|
||||
const lib::payload::channel_moderate::v2::Unraid &action);
|
||||
|
||||
/// <MODERATOR> {approved/denied} the unban request from <USER>[: <MESSAGE>]
|
||||
void makeModerateMessage(
|
||||
EventSubMessageBuilder &builder,
|
||||
const lib::payload::channel_moderate::v2::Event &event,
|
||||
const lib::payload::channel_moderate::v2::UnbanRequest &action);
|
||||
|
||||
MessagePtr makeAutomodHoldMessageHeader(
|
||||
TwitchChannel *channel, const QDateTime &time,
|
||||
const lib::payload::automod_message_hold::v2::Event &event);
|
||||
|
||||
Reference in New Issue
Block a user