refactor: make a single MessageBuilder (#5548)

This commit is contained in:
pajlada
2024-08-24 12:18:27 +02:00
committed by GitHub
parent 5170085d7c
commit 175afa8b16
33 changed files with 2819 additions and 3014 deletions
+33 -27
View File
@@ -12,6 +12,7 @@
#include "messages/Image.hpp"
#include "messages/Link.hpp"
#include "messages/Message.hpp"
#include "messages/MessageBuilder.hpp"
#include "messages/MessageElement.hpp"
#include "messages/MessageThread.hpp"
#include "providers/bttv/BttvEmotes.hpp"
@@ -31,7 +32,6 @@
#include "providers/twitch/TwitchAccount.hpp"
#include "providers/twitch/TwitchCommon.hpp"
#include "providers/twitch/TwitchIrcServer.hpp"
#include "providers/twitch/TwitchMessageBuilder.hpp"
#include "singletons/Emotes.hpp"
#include "singletons/Settings.hpp"
#include "singletons/StreamerMode.hpp"
@@ -311,10 +311,9 @@ void TwitchChannel::addChannelPointReward(const ChannelPointReward &reward)
if (!reward.isUserInputRequired)
{
MessageBuilder builder;
TwitchMessageBuilder::appendChannelPointRewardMessage(
reward, &builder, this->isMod(), this->isBroadcaster());
this->addMessage(builder.release(), MessageContext::Original);
this->addMessage(MessageBuilder::makeChannelPointRewardMessage(
reward, this->isMod(), this->isBroadcaster()),
MessageContext::Original);
return;
}
@@ -434,11 +433,11 @@ void TwitchChannel::onLiveStatusChanged(bool isLive, bool isInitialUpdate)
});
// Channel live message
MessageBuilder builder;
TwitchMessageBuilder::liveSystemMessage(this->getDisplayName(),
&builder);
builder.message().id = this->roomId();
this->addMessage(builder.release(), MessageContext::Original);
this->addMessage(
MessageBuilder::makeLiveMessage(
this->getDisplayName(), this->roomId(),
{MessageFlag::System, MessageFlag::DoNotTriggerNotification}),
MessageContext::Original);
}
else
{
@@ -446,10 +445,9 @@ void TwitchChannel::onLiveStatusChanged(bool isLive, bool isInitialUpdate)
<< "[TwitchChannel " << this->getName() << "] Offline";
// Channel offline message
MessageBuilder builder;
TwitchMessageBuilder::offlineSystemMessage(this->getDisplayName(),
&builder);
this->addMessage(builder.release(), MessageContext::Original);
this->addMessage(MessageBuilder::makeOfflineSystemMessage(
this->getDisplayName(), this->roomId()),
MessageContext::Original);
getApp()->getNotifications()->notifyTwitchChannelOffline(
this->roomId());
@@ -1077,19 +1075,27 @@ bool TwitchChannel::tryReplaceLastLiveUpdateAddOrRemove(
// Update the message
this->lastLiveUpdateEmoteNames_.push_back(emoteName);
MessageBuilder replacement;
if (op == MessageFlag::LiveUpdatesAdd)
{
replacement =
MessageBuilder(liveUpdatesAddEmoteMessage, platform,
last->loginName, this->lastLiveUpdateEmoteNames_);
}
else // op == RemoveEmoteMessage
{
replacement =
MessageBuilder(liveUpdatesRemoveEmoteMessage, platform,
last->loginName, this->lastLiveUpdateEmoteNames_);
}
auto makeReplacement = [&](MessageFlag op) -> MessageBuilder {
if (op == MessageFlag::LiveUpdatesAdd)
{
return {
liveUpdatesAddEmoteMessage,
platform,
last->loginName,
this->lastLiveUpdateEmoteNames_,
};
}
// op == RemoveEmoteMessage
return {
liveUpdatesRemoveEmoteMessage,
platform,
last->loginName,
this->lastLiveUpdateEmoteNames_,
};
};
auto replacement = makeReplacement(op);
replacement->flags = last->flags;