Add extra context to messages that are added to channels, allowing the logging controller to take more responsibility in what messages to log (#5499)

Co-auhtored-by: James Upjohn <jupjohn@jammeh.co.nz>
This commit is contained in:
pajlada
2024-07-13 13:15:11 +02:00
committed by GitHub
parent 49de421bd8
commit 973b7a3bdd
26 changed files with 163 additions and 139 deletions
+19 -14
View File
@@ -721,7 +721,7 @@ void IrcMessageHandler::handlePrivMessage(Communi::IrcPrivateMessage *message,
auto ptr = TwitchMessageBuilder::buildHypeChatMessage(message);
if (ptr)
{
chan->addMessage(ptr);
chan->addMessage(ptr, MessageContext::Original);
}
}
}
@@ -812,7 +812,8 @@ void IrcMessageHandler::handleClearChatMessage(Communi::IrcMessage *message)
if (clearChat.disableAllMessages)
{
chan->disableAllMessages();
chan->addMessage(std::move(clearChat.message));
chan->addMessage(std::move(clearChat.message),
MessageContext::Original);
return;
}
@@ -868,7 +869,7 @@ void IrcMessageHandler::handleClearMessageMessage(Communi::IrcMessage *message)
{
MessageBuilder builder;
TwitchMessageBuilder::deletionMessage(msg, &builder);
chan->addMessage(builder.release());
chan->addMessage(builder.release(), MessageContext::Original);
}
}
@@ -966,10 +967,11 @@ void IrcMessageHandler::handleWhisperMessage(Communi::IrcMessage *ircMessage)
if (message->flags.has(MessageFlag::ShowInMentions))
{
getIApp()->getTwitch()->getMentionsChannel()->addMessage(message);
getIApp()->getTwitch()->getMentionsChannel()->addMessage(
message, MessageContext::Original);
}
c->addMessage(message);
c->addMessage(message, MessageContext::Original);
auto overrideFlags = std::optional<MessageFlags>(message->flags);
overrideFlags->set(MessageFlag::DoNotTriggerNotification);
@@ -981,7 +983,8 @@ void IrcMessageHandler::handleWhisperMessage(Communi::IrcMessage *ircMessage)
{
getIApp()->getTwitchAbstract()->forEachChannel(
[&message, overrideFlags](ChannelPtr channel) {
channel->addMessage(message, overrideFlags);
channel->addMessage(message, MessageContext::Repost,
overrideFlags);
});
}
}
@@ -1098,7 +1101,7 @@ void IrcMessageHandler::handleUserNoticeMessage(
if (!chan->isEmpty())
{
chan->addMessage(newMessage);
chan->addMessage(newMessage, MessageContext::Original);
}
}
}
@@ -1117,7 +1120,7 @@ void IrcMessageHandler::handleNoticeMessage(Communi::IrcNoticeMessage *message)
// channels
getIApp()->getTwitch()->forEachChannelAndSpecialChannels(
[msg](const auto &c) {
c->addMessage(msg);
c->addMessage(msg, MessageContext::Original);
});
return;
@@ -1167,7 +1170,7 @@ void IrcMessageHandler::handleNoticeMessage(Communi::IrcNoticeMessage *message)
MessageBuilder builder;
TwitchMessageBuilder::hostingSystemMessage(hostedChannelName,
&builder, hostOn);
channel->addMessage(builder.release());
channel->addMessage(builder.release(), MessageContext::Original);
}
else if (tags == "room_mods" || tags == "vips_success")
{
@@ -1196,11 +1199,11 @@ void IrcMessageHandler::handleNoticeMessage(Communi::IrcNoticeMessage *message)
users.sort(Qt::CaseInsensitive);
TwitchMessageBuilder::listOfUsersSystemMessage(msgParts.at(0),
users, tc, &builder);
channel->addMessage(builder.release());
channel->addMessage(builder.release(), MessageContext::Original);
}
else
{
channel->addMessage(msg);
channel->addMessage(msg, MessageContext::Original);
}
}
}
@@ -1249,7 +1252,8 @@ void IrcMessageHandler::handlePartMessage(Communi::IrcMessage *message)
if (message->nick() == selfAccountName)
{
channel->addMessage(generateBannedMessage(false));
channel->addMessage(generateBannedMessage(false),
MessageContext::Original);
}
}
@@ -1460,10 +1464,11 @@ void IrcMessageHandler::addMessage(Communi::IrcMessage *message,
if (highlighted && showInMentions)
{
server.getMentionsChannel()->addMessage(msg);
server.getMentionsChannel()->addMessage(msg,
MessageContext::Original);
}
chan->addMessage(msg);
chan->addMessage(msg, MessageContext::Original);
if (auto *chatters = dynamic_cast<ChannelChatters *>(chan.get()))
{
chatters->addRecentChatter(msg->displayName);
+12 -11
View File
@@ -161,7 +161,7 @@ TwitchChannel::TwitchChannel(const QString &name)
TwitchMessageBuilder::liveSystemMessage(this->getDisplayName(),
&builder);
builder.message().id = this->roomId();
this->addMessage(builder.release());
this->addMessage(builder.release(), MessageContext::Original);
// Message in /live channel
MessageBuilder builder2;
@@ -169,7 +169,7 @@ TwitchChannel::TwitchChannel(const QString &name)
&builder2);
builder2.message().id = this->roomId();
getIApp()->getTwitch()->getLiveChannel()->addMessage(
builder2.release());
builder2.release(), MessageContext::Original);
// Notify on all channels with a ping sound
if (getSettings()->notificationOnAnyChannel &&
@@ -187,7 +187,7 @@ TwitchChannel::TwitchChannel(const QString &name)
MessageBuilder builder;
TwitchMessageBuilder::offlineSystemMessage(this->getDisplayName(),
&builder);
this->addMessage(builder.release());
this->addMessage(builder.release(), MessageContext::Original);
// "delete" old 'CHANNEL is live' message
LimitedQueueSnapshot<MessagePtr> snapshot =
@@ -395,7 +395,7 @@ void TwitchChannel::addChannelPointReward(const ChannelPointReward &reward)
MessageBuilder builder;
TwitchMessageBuilder::appendChannelPointRewardMessage(
reward, &builder, this->isMod(), this->isBroadcaster());
this->addMessage(builder.release());
this->addMessage(builder.release(), MessageContext::Original);
return;
}
@@ -566,7 +566,7 @@ void TwitchChannel::showLoginMessage()
linkColor)
->setLink(accountsLink);
this->addMessage(builder.release());
this->addMessage(builder.release(), MessageContext::Original);
}
void TwitchChannel::roomIdChanged()
@@ -925,7 +925,7 @@ void TwitchChannel::updateBttvEmote(
auto builder = MessageBuilder(liveUpdatesUpdateEmoteMessage, "BTTV",
QString() /* actor */, newEmote->name.string,
oldEmote->name.string);
this->addMessage(builder.release());
this->addMessage(builder.release(), MessageContext::Original);
}
void TwitchChannel::removeBttvEmote(
@@ -964,7 +964,7 @@ void TwitchChannel::updateSeventvEmote(
auto builder =
MessageBuilder(liveUpdatesUpdateEmoteMessage, "7TV", dispatch.actorName,
dispatch.emoteName, dispatch.oldEmoteName);
this->addMessage(builder.release());
this->addMessage(builder.release(), MessageContext::Original);
}
void TwitchChannel::removeSeventvEmote(
@@ -1002,7 +1002,8 @@ void TwitchChannel::updateSeventvUser(
auto builder =
MessageBuilder(liveUpdatesUpdateEmoteSetMessage, "7TV",
dispatch.actorName, name);
this->addMessage(builder.release());
this->addMessage(builder.release(),
MessageContext::Original);
}
});
},
@@ -1085,7 +1086,7 @@ void TwitchChannel::addOrReplaceLiveUpdatesAddRemove(bool isEmoteAdd,
this->lastLiveUpdateEmotePlatform_ = platform;
this->lastLiveUpdateMessage_ = msg;
this->lastLiveUpdateEmoteActor_ = actor;
this->addMessage(msg);
this->addMessage(msg, MessageContext::Original);
}
bool TwitchChannel::tryReplaceLastLiveUpdateAddOrRemove(
@@ -1650,7 +1651,7 @@ void TwitchChannel::createClip()
MessageColor::Link)
->setLink(Link(Link::Url, clip.editUrl));
this->addMessage(builder.release());
this->addMessage(builder.release(), MessageContext::Original);
},
// failureCallback
[this](auto error) {
@@ -1699,7 +1700,7 @@ void TwitchChannel::createClip()
builder.message().messageText = text;
builder.message().searchText = text;
this->addMessage(builder.release());
this->addMessage(builder.release(), MessageContext::Original);
},
// finallyCallback - this will always execute, so clip creation won't ever be stuck
[this] {