chore(eventsub): simplify building for system messages (#5980)

This commit is contained in:
nerix
2025-02-23 17:23:29 +01:00
committed by GitHub
parent 7fee3f7e37
commit 0d7a05e62f
4 changed files with 89 additions and 111 deletions
@@ -1,6 +1,6 @@
#pragma once
#include "messages/Message.hpp"
#include "messages/MessageBuilder.hpp"
#include "providers/twitch/TwitchChannel.hpp"
#include "twitch-eventsub-ws/payloads/channel-moderate-v2.hpp"
@@ -8,21 +8,38 @@
namespace chatterino::eventsub {
class EventSubMessageBuilder : public MessageBuilder
{
public:
EventSubMessageBuilder(TwitchChannel *channel, const QDateTime &time);
~EventSubMessageBuilder();
EventSubMessageBuilder(const EventSubMessageBuilder &) = delete;
EventSubMessageBuilder(EventSubMessageBuilder &&) = delete;
EventSubMessageBuilder &operator=(const EventSubMessageBuilder &) = delete;
EventSubMessageBuilder &operator=(EventSubMessageBuilder &&) = delete;
void appendUser(const lib::String &userName, const lib::String &userLogin,
QString &text, bool trailingSpace = true);
private:
TwitchChannel *channel;
};
/// <BROADCASTER> has added <USER> as a VIP of this channel.
MessagePtr makeVipMessage(
TwitchChannel *channel, const QDateTime &time,
const lib::payload::channel_moderate::v2::Event &event,
const lib::payload::channel_moderate::v2::Vip &action);
void makeModerateMessage(EventSubMessageBuilder &builder,
const lib::payload::channel_moderate::v2::Event &event,
const lib::payload::channel_moderate::v2::Vip &action);
/// <BROADCASTER> has removed <USER> as a VIP of this channel.
MessagePtr makeUnvipMessage(
TwitchChannel *channel, const QDateTime &time,
void makeModerateMessage(
EventSubMessageBuilder &builder,
const lib::payload::channel_moderate::v2::Event &event,
const lib::payload::channel_moderate::v2::Unvip &action);
/// <MODERATOR> has warned <USER>: <REASON>
MessagePtr makeWarnMessage(
TwitchChannel *channel, const QDateTime &time,
void makeModerateMessage(
EventSubMessageBuilder &builder,
const lib::payload::channel_moderate::v2::Event &event,
const lib::payload::channel_moderate::v2::Warn &action);