refactor: rename Badge to TwitchBadge (#6706)

this change is made to clarify that the previously-called Badge object
is actually specialized for Twitch badges
This commit is contained in:
pajlada
2026-01-04 12:52:02 +01:00
committed by GitHub
parent 7fed720d18
commit 18e3d7c72b
190 changed files with 1058 additions and 1049 deletions
+8 -8
View File
@@ -118,19 +118,19 @@ QJsonObject Message::toJson() const
{"frozen"_L1, this->frozen},
};
QJsonArray badges;
for (const auto &badge : this->badges)
QJsonArray twitchBadges;
for (const auto &badge : this->twitchBadges)
{
badges.append(badge.key_);
twitchBadges.append(badge.key_);
}
msg["badges"_L1] = badges;
msg["twitchBadges"_L1] = twitchBadges;
QJsonObject badgeInfos;
for (const auto &[key, value] : this->badgeInfos)
QJsonObject twitchBadgeInfos;
for (const auto &[key, value] : this->twitchBadgeInfos)
{
badgeInfos.insert(key, value);
twitchBadgeInfos.insert(key, value);
}
msg["badgeInfos"_L1] = badgeInfos;
msg["twitchBadgeInfos"_L1] = twitchBadgeInfos;
if (this->highlightColor)
{
+8 -3
View File
@@ -17,7 +17,7 @@ class QJsonObject;
namespace chatterino {
class MessageElement;
class MessageThread;
class Badge;
class TwitchBadge;
class ScrollbarHighlight;
struct Message;
@@ -54,8 +54,13 @@ struct Message {
QString channelName;
QColor usernameColor;
QDateTime serverReceivedTime;
std::vector<Badge> badges;
std::unordered_map<QString, QString> badgeInfos;
/// List of Twitch badges associated with this message
std::vector<TwitchBadge> twitchBadges;
/// Map of extra data associated with each Twitch badge
std::unordered_map<QString, QString> twitchBadgeInfos;
std::shared_ptr<QColor> highlightColor;
// Each reply holds a reference to the thread. When every reply is dropped,
// the reply thread will be cleaned up by the TwitchChannel.
+8 -7
View File
@@ -236,7 +236,7 @@ QString stylizeUsername(const QString &username, const Message &message)
return usernameText;
}
std::optional<EmotePtr> getTwitchBadge(const Badge &badge,
std::optional<EmotePtr> getTwitchBadge(const TwitchBadge &badge,
const TwitchChannel *twitchChannel)
{
if (auto channelBadge =
@@ -254,7 +254,8 @@ std::optional<EmotePtr> getTwitchBadge(const Badge &badge,
return std::nullopt;
}
void appendBadges(MessageBuilder *builder, const std::vector<Badge> &badges,
void appendBadges(MessageBuilder *builder,
const std::vector<TwitchBadge> &badges,
const std::unordered_map<QString, QString> &badgeInfos,
const TwitchChannel *twitchChannel)
{
@@ -344,15 +345,15 @@ void appendBadges(MessageBuilder *builder, const std::vector<Badge> &badges,
->setTooltip(tooltip);
}
builder->message().badges = badges;
builder->message().badgeInfos = badgeInfos;
builder->message().twitchBadges = badges;
builder->message().twitchBadgeInfos = badgeInfos;
}
std::vector<Badge> appendSharedChatBadges(
MessageBuilder *builder, const std::vector<Badge> &sharedBadges,
std::vector<TwitchBadge> appendSharedChatBadges(
MessageBuilder *builder, const std::vector<TwitchBadge> &sharedBadges,
const QString &sharedChannelName, const TwitchChannel *twitchChannel)
{
auto appendedBadges = std::vector<Badge>{};
auto appendedBadges = std::vector<TwitchBadge>{};
for (const auto &badge : sharedBadges)
{
if (badge.key_ != "moderator" && badge.key_ != "vip")
+1 -1
View File
@@ -33,7 +33,7 @@ BadgePredicate::BadgePredicate(const QString &badges, bool negate)
bool BadgePredicate::appliesToImpl(const Message &message)
{
for (const Badge &badge : message.badges)
for (const TwitchBadge &badge : message.twitchBadges)
{
if (this->badges_.contains(badge.key_, Qt::CaseInsensitive))
{
+1 -1
View File
@@ -17,7 +17,7 @@ SubtierPredicate::SubtierPredicate(const QString &subtiers, bool negate)
bool SubtierPredicate::appliesToImpl(const Message &message)
{
for (const Badge &badge : message.badges)
for (const TwitchBadge &badge : message.twitchBadges)
{
if (badge.key_ == "subscriber")
{