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:
@@ -156,7 +156,7 @@ void AbstractIrcServer::addGlobalSystemMessage(const QString &messageText)
|
||||
continue;
|
||||
}
|
||||
|
||||
chan->addMessage(message);
|
||||
chan->addMessage(message, MessageContext::Original);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -329,7 +329,7 @@ void AbstractIrcServer::onReadConnected(IrcConnection *connection)
|
||||
}
|
||||
else
|
||||
{
|
||||
chan->addMessage(connectedMsg);
|
||||
chan->addMessage(connectedMsg, MessageContext::Original);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -357,7 +357,7 @@ void AbstractIrcServer::onDisconnected()
|
||||
continue;
|
||||
}
|
||||
|
||||
chan->addMessage(disconnectedMsg);
|
||||
chan->addMessage(disconnectedMsg, MessageContext::Original);
|
||||
|
||||
if (auto *channel = dynamic_cast<TwitchChannel *>(chan.get()))
|
||||
{
|
||||
|
||||
@@ -17,6 +17,16 @@ IrcChannel::IrcChannel(const QString &name, IrcServer *server)
|
||||
, ChannelChatters(*static_cast<Channel *>(this))
|
||||
, server_(server)
|
||||
{
|
||||
auto *ircServer = this->server();
|
||||
if (ircServer != nullptr)
|
||||
{
|
||||
this->platform_ =
|
||||
QString("irc-%1").arg(ircServer->userFriendlyIdentifier());
|
||||
}
|
||||
else
|
||||
{
|
||||
this->platform_ = "irc-unknown";
|
||||
}
|
||||
}
|
||||
|
||||
void IrcChannel::sendMessage(const QString &message)
|
||||
@@ -70,7 +80,7 @@ void IrcChannel::sendMessage(const QString &message)
|
||||
builder.message().messageText = message;
|
||||
builder.message().searchText = username + ": " + message;
|
||||
|
||||
this->addMessage(builder.release());
|
||||
this->addMessage(builder.release(), MessageContext::Original);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -79,7 +89,7 @@ void IrcChannel::sendMessage(const QString &message)
|
||||
}
|
||||
}
|
||||
|
||||
IrcServer *IrcChannel::server()
|
||||
IrcServer *IrcChannel::server() const
|
||||
{
|
||||
assertInGuiThread();
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ public:
|
||||
void sendMessage(const QString &message) override;
|
||||
|
||||
// server may be nullptr
|
||||
IrcServer *server();
|
||||
IrcServer *server() const;
|
||||
|
||||
// Channel methods
|
||||
bool canReconnect() const override;
|
||||
|
||||
@@ -111,7 +111,8 @@ void IrcServer::initializeConnectionSignals(IrcConnection *connection,
|
||||
{
|
||||
if (auto shared = weak.lock())
|
||||
{
|
||||
shared->addMessage(msg);
|
||||
shared->addMessage(msg,
|
||||
MessageContext::Original);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -218,7 +219,7 @@ void IrcServer::privateMessageReceived(Communi::IrcPrivateMessage *message)
|
||||
{
|
||||
if (auto shared = weak.lock())
|
||||
{
|
||||
shared->addMessage(msg);
|
||||
shared->addMessage(msg, MessageContext::Original);
|
||||
}
|
||||
}
|
||||
return;
|
||||
@@ -236,7 +237,7 @@ void IrcServer::privateMessageReceived(Communi::IrcPrivateMessage *message)
|
||||
{
|
||||
auto msg = builder.build();
|
||||
|
||||
channel->addMessage(msg);
|
||||
channel->addMessage(msg, MessageContext::Original);
|
||||
builder.triggerHighlights();
|
||||
const auto highlighted = msg->flags.has(MessageFlag::Highlighted);
|
||||
const auto showInMentions =
|
||||
@@ -244,7 +245,8 @@ void IrcServer::privateMessageReceived(Communi::IrcPrivateMessage *message)
|
||||
|
||||
if (highlighted && showInMentions)
|
||||
{
|
||||
getIApp()->getTwitch()->getMentionsChannel()->addMessage(msg);
|
||||
getIApp()->getTwitch()->getMentionsChannel()->addMessage(
|
||||
msg, MessageContext::Original);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -332,7 +334,7 @@ void IrcServer::readConnectionMessageReceived(Communi::IrcMessage *message)
|
||||
{
|
||||
if (auto shared = weak.lock())
|
||||
{
|
||||
shared->addMessage(msg);
|
||||
shared->addMessage(msg, MessageContext::Original);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -366,7 +368,7 @@ void IrcServer::sendWhisper(const QString &target, const QString &message)
|
||||
{
|
||||
if (auto shared = weak.lock())
|
||||
{
|
||||
shared->addMessage(msg);
|
||||
shared->addMessage(msg, MessageContext::Original);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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] {
|
||||
|
||||
Reference in New Issue
Block a user