feat: add filter for external badges (#6709)
Co-authored-by: Ava Chow <github@achow101.com> Reviewed-by: Nerixyz <nerixdev@outlook.de>
This commit is contained in:
@@ -22,6 +22,7 @@
|
||||
- Minor: Added support for BetterTTV Pro subscriber badges. (#6625)
|
||||
- Minor: Added `debug.traceback` for plugins. (#6652)
|
||||
- Minor: Added title and duration options for `/clip` command. (#6669)
|
||||
- Minor: Added the ability to filter on messages by the author's external badges (example: `author.external_badges contains "chatterino:Top Donator"` or `author.external_badges contains "frankerfacez:bot"`). (#6709)
|
||||
- Minor: Added Markdown support to user notes. (#6490)
|
||||
- Minor: Moderators and VIPs in shared chats now show their channel badges. (#6653)
|
||||
- Bugfix: Moderation checks now include the lead moderator badge. (#6642)
|
||||
|
||||
@@ -12,6 +12,7 @@ namespace chatterino::filters {
|
||||
|
||||
const QMap<QString, Type> MESSAGE_TYPING_CONTEXT{
|
||||
{"author.badges", Type::StringList},
|
||||
{"author.external_badges", Type::StringList},
|
||||
{"author.color", Type::Color},
|
||||
{"author.name", Type::String},
|
||||
{"author.user_id", Type::String},
|
||||
@@ -49,16 +50,17 @@ ContextMap buildContextMap(const MessagePtr &m, chatterino::Channel *channel)
|
||||
{
|
||||
auto watchingChannel = getApp()->getTwitch()->getWatchingChannel().get();
|
||||
|
||||
/*
|
||||
* Looking to add a new identifier to filters? Here's what to do:
|
||||
* 1. Update validIdentifiersMap in Tokenizer.cpp
|
||||
/*
|
||||
* Looking to add a new identifier to filters? Here's what to do:
|
||||
* 1. Update VALID_IDENTIFIERS_MAP in Tokenizer.cpp
|
||||
* 2. Add the identifier to the list below
|
||||
* 3. Add the type of the identifier to MESSAGE_TYPING_CONTEXT in Filter.hpp
|
||||
* 3. Add the type of the identifier to MESSAGE_TYPING_CONTEXT at the top of this file
|
||||
* 4. Add the value for the identifier to the ContextMap returned by this function
|
||||
*
|
||||
*
|
||||
* List of identifiers:
|
||||
*
|
||||
* author.badges
|
||||
* author.external_badges
|
||||
* author.color
|
||||
* author.name
|
||||
* author.user_id
|
||||
@@ -121,6 +123,7 @@ ContextMap buildContextMap(const MessagePtr &m, chatterino::Channel *channel)
|
||||
}
|
||||
ContextMap vars = {
|
||||
{"author.badges", std::move(badges)},
|
||||
{"author.external_badges", m->externalBadges},
|
||||
{"author.color", m->usernameColor},
|
||||
{"author.name", m->displayName},
|
||||
{"author.user_id", m->userID},
|
||||
|
||||
@@ -18,6 +18,7 @@ namespace chatterino::filters {
|
||||
|
||||
const QMap<QString, QString> VALID_IDENTIFIERS_MAP{
|
||||
{"author.badges", "author badges"},
|
||||
{"author.external_badges", "author external badges"},
|
||||
{"author.color", "author color"},
|
||||
{"author.name", "author name"},
|
||||
{"author.user_id", "author user id"},
|
||||
|
||||
@@ -132,6 +132,8 @@ QJsonObject Message::toJson() const
|
||||
}
|
||||
msg["twitchBadgeInfos"_L1] = twitchBadgeInfos;
|
||||
|
||||
msg["externalBadges"_L1] = QJsonArray::fromStringList(this->externalBadges);
|
||||
|
||||
if (this->highlightColor)
|
||||
{
|
||||
msg["highlightColor"_L1] = this->highlightColor->name(QColor::HexArgb);
|
||||
|
||||
@@ -61,6 +61,13 @@ struct Message {
|
||||
/// Map of extra data associated with each Twitch badge
|
||||
std::unordered_map<QString, QString> twitchBadgeInfos;
|
||||
|
||||
/// List of external badges associated with this message
|
||||
/// The badge should follow the following format: "provider:badgename". e.g.:
|
||||
/// - betterttv:pro
|
||||
/// - frankerfacez:mod
|
||||
/// - 7tv:sub
|
||||
QStringList externalBadges;
|
||||
|
||||
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.
|
||||
|
||||
@@ -2472,6 +2472,9 @@ void MessageBuilder::appendChatterinoBadges(const QString &userID)
|
||||
{
|
||||
this->emplace<BadgeElement>(*badge,
|
||||
MessageElementFlag::BadgeChatterino);
|
||||
|
||||
/// e.g. "chatterino:Chatterino Top donator"
|
||||
this->message().externalBadges.emplace_back((*badge)->name.string);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2482,6 +2485,9 @@ void MessageBuilder::appendFfzBadges(TwitchChannel *twitchChannel,
|
||||
{
|
||||
this->emplace<FfzBadgeElement>(
|
||||
badge.emote, MessageElementFlag::BadgeFfz, badge.color);
|
||||
|
||||
/// e.g. "frankerfacez:subwoofer"
|
||||
this->message().externalBadges.emplace_back(badge.emote->name.string);
|
||||
}
|
||||
|
||||
if (twitchChannel == nullptr)
|
||||
@@ -2493,6 +2499,9 @@ void MessageBuilder::appendFfzBadges(TwitchChannel *twitchChannel,
|
||||
{
|
||||
this->emplace<FfzBadgeElement>(
|
||||
badge.emote, MessageElementFlag::BadgeFfz, badge.color);
|
||||
|
||||
/// e.g. "frankerfacez:subwoofer"
|
||||
this->message().externalBadges.emplace_back(badge.emote->name.string);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2501,6 +2510,9 @@ void MessageBuilder::appendBttvBadges(const QString &userID)
|
||||
if (auto badge = getApp()->getBttvBadges()->getBadge({userID}))
|
||||
{
|
||||
this->emplace<BadgeElement>(*badge, MessageElementFlag::BadgeBttv);
|
||||
|
||||
/// e.g. "betterttv:Pro Subscriber"
|
||||
this->message().externalBadges.emplace_back((*badge)->name.string);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2509,6 +2521,9 @@ void MessageBuilder::appendSeventvBadges(const QString &userID)
|
||||
if (auto badge = getApp()->getSeventvBadges()->getBadge({userID}))
|
||||
{
|
||||
this->emplace<BadgeElement>(*badge, MessageElementFlag::BadgeSevenTV);
|
||||
|
||||
/// e.g. "7tv:NNYS 2024"
|
||||
this->message().externalBadges.emplace_back((*badge)->name.string);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
#include "messages/Emote.hpp"
|
||||
#include "messages/Image.hpp"
|
||||
|
||||
using namespace Qt::StringLiterals;
|
||||
|
||||
namespace chatterino {
|
||||
|
||||
QString BttvBadges::idForBadge(const QJsonObject &badgeJson) const
|
||||
@@ -11,10 +13,10 @@ QString BttvBadges::idForBadge(const QJsonObject &badgeJson) const
|
||||
}
|
||||
|
||||
EmotePtr BttvBadges::createBadge(const QString &id,
|
||||
const QJsonObject & /* badgeJson */) const
|
||||
const QJsonObject & /*badgeJson*/) const
|
||||
{
|
||||
auto emote = Emote{
|
||||
.name = EmoteName{},
|
||||
.name = EmoteName{u"betterttv:pro"_s},
|
||||
.images = ImageSet(Image::fromUrl(Url{id}, 18.0 / 72.0)),
|
||||
.tooltip = Tooltip{"BTTV Pro"},
|
||||
.homePage = Url{},
|
||||
|
||||
@@ -48,8 +48,9 @@ void ChatterinoBadges::loadChatterinoBadges()
|
||||
// The sizes for the images are only an estimation, there might
|
||||
// be badges with different sizes.
|
||||
constexpr QSize baseSize(18, 18);
|
||||
auto tooltip = jsonBadge.value("tooltip").toString();
|
||||
auto emote = Emote{
|
||||
.name = EmoteName{},
|
||||
.name = EmoteName{u"chatterino:" % tooltip},
|
||||
.images =
|
||||
ImageSet{
|
||||
Image::fromUrl(
|
||||
@@ -62,7 +63,7 @@ void ChatterinoBadges::loadChatterinoBadges()
|
||||
Url{jsonBadge.value("image3").toString()}, 0.25,
|
||||
baseSize * 4),
|
||||
},
|
||||
.tooltip = Tooltip{jsonBadge.value("tooltip").toString()},
|
||||
.tooltip = Tooltip{tooltip},
|
||||
.homePage = Url{},
|
||||
};
|
||||
|
||||
|
||||
@@ -66,7 +66,11 @@ void FfzBadges::load()
|
||||
jsonBadge["height"].toInt(18));
|
||||
|
||||
auto emote = Emote{
|
||||
.name = EmoteName{},
|
||||
.name =
|
||||
EmoteName{
|
||||
u"frankerfacez:" %
|
||||
jsonBadge.value("name").toString(),
|
||||
},
|
||||
.images =
|
||||
ImageSet{
|
||||
Image::fromUrl(
|
||||
@@ -82,13 +86,11 @@ void FfzBadges::load()
|
||||
.homePage = Url{},
|
||||
};
|
||||
|
||||
Badge badge;
|
||||
|
||||
int badgeID = jsonBadge.value("id").toInt();
|
||||
|
||||
this->badges[badgeID] = Badge{
|
||||
std::make_shared<const Emote>(std::move(emote)),
|
||||
QColor(jsonBadge.value("color").toString()),
|
||||
.emote = std::make_shared<const Emote>(std::move(emote)),
|
||||
.color = QColor(jsonBadge.value("color").toString()),
|
||||
};
|
||||
|
||||
// Find users with this badge
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "util/ThreadGuard.hpp"
|
||||
|
||||
#include <QColor>
|
||||
#include <QString>
|
||||
|
||||
#include <memory>
|
||||
#include <optional>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#include "providers/seventv/SeventvBadges.hpp"
|
||||
|
||||
#include "messages/Emote.hpp"
|
||||
#include "messages/Image.hpp"
|
||||
#include "messages/Image.hpp" // IWYU pragma: keep
|
||||
#include "providers/seventv/SeventvEmotes.hpp"
|
||||
|
||||
namespace chatterino {
|
||||
@@ -15,7 +15,9 @@ EmotePtr SeventvBadges::createBadge(const QString &id,
|
||||
const QJsonObject &badgeJson) const
|
||||
{
|
||||
auto emote = Emote{
|
||||
.name = EmoteName{},
|
||||
// We utilize the "emote" "name" for filtering badges, and expect
|
||||
// the format to be "7tv:badge name" (e.g. "7tv:NNYS 2024")
|
||||
.name = EmoteName{u"7tv:" % badgeJson["name"].toString()},
|
||||
.images = SeventvEmotes::createImageSet(badgeJson, true),
|
||||
.tooltip = Tooltip{badgeJson["tooltip"].toString()},
|
||||
.homePage = Url{},
|
||||
|
||||
@@ -132,6 +132,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "PubSub|AutoMod|AutoModOffendingMessageHeader|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "automod_19d067ff-89b5-4790-a720-97599894eb6b",
|
||||
@@ -239,6 +241,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "PubSub|AutoMod|AutoModOffendingMessage|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -144,6 +144,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "PubSub|AutoMod|AutoModOffendingMessageHeader|AutoModBlockedTerm|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "automod_0cbb6e48-1606-46c6-b1ac-c97626e1c5cb",
|
||||
@@ -253,6 +255,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "PubSub|AutoMod|AutoModOffendingMessage|AutoModBlockedTerm|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -138,6 +138,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "PubSub|AutoMod|AutoModOffendingMessageHeader|AutoModBlockedTerm|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "automod_c0fac418-25a9-41b8-adf3-5bd637fca1e1",
|
||||
@@ -245,6 +247,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "PubSub|AutoMod|AutoModOffendingMessage|AutoModBlockedTerm|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -190,6 +190,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "PubSub|AutoMod|AutoModOffendingMessageHeader|AutoModBlockedTerm|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "automod_45a63ca1-1b0c-46ef-9075-d112f9a9f376",
|
||||
@@ -303,6 +305,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "PubSub|AutoMod|AutoModOffendingMessage|AutoModBlockedTerm|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -132,6 +132,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "PubSub|AutoMod|AutoModOffendingMessageHeader|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "automod_19d067ff-89b5-4790-a720-97599894eb6b",
|
||||
@@ -239,6 +241,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "PubSub|AutoMod|AutoModOffendingMessage|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -172,6 +172,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "Disabled|PubSub|AutoMod|AutoModOffendingMessageHeader|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "automod_19d067ff-89b5-4790-a720-97599894eb6b",
|
||||
@@ -279,6 +281,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "PubSub|AutoMod|AutoModOffendingMessage|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -172,6 +172,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "Disabled|PubSub|AutoMod|AutoModOffendingMessageHeader|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "automod_19d067ff-89b5-4790-a720-97599894eb6b",
|
||||
@@ -279,6 +281,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "PubSub|AutoMod|AutoModOffendingMessage|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -172,6 +172,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "Disabled|PubSub|AutoMod|AutoModOffendingMessageHeader|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "automod_19d067ff-89b5-4790-a720-97599894eb6b",
|
||||
@@ -279,6 +281,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "PubSub|AutoMod|AutoModOffendingMessage|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -86,6 +86,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "PubSub|AutoMod|EventSub",
|
||||
"frozen": true,
|
||||
"id": "automod_e39e3c58-3d25-49fd-8c94-e776ef57a7f8",
|
||||
|
||||
@@ -79,6 +79,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "PubSub|AutoMod|EventSub",
|
||||
"frozen": true,
|
||||
"id": "automod_5686ec52-e02c-4042-ac21-1dfd8cab0f9f",
|
||||
|
||||
@@ -85,6 +85,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "PubSub|AutoMod|EventSub",
|
||||
"frozen": true,
|
||||
"id": "automod_fc90dc3b-0634-41c3-8365-f40719f076ab",
|
||||
|
||||
@@ -188,6 +188,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -198,6 +198,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -186,6 +186,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -198,6 +198,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -153,6 +153,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|Timeout|PubSub|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -216,6 +216,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|Timeout|PubSub|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
@@ -347,6 +349,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|Timeout|PubSub|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -214,6 +214,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|Timeout|PubSub|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
@@ -329,6 +331,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|Timeout|PubSub|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -137,6 +137,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|Timeout|PubSub|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -101,6 +101,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|DoNotTriggerNotification|PubSub|ClearChat|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -155,6 +155,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|DoNotTriggerNotification|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -155,6 +155,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|DoNotTriggerNotification|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -144,6 +144,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -144,6 +144,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -146,6 +146,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -144,6 +144,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -162,6 +162,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -136,6 +136,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -140,6 +140,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -190,6 +190,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -198,6 +198,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -198,6 +198,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -198,6 +198,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -187,6 +187,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|Timeout|PubSub|SharedMessage|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -244,6 +244,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|Timeout|PubSub|SharedMessage|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
@@ -392,6 +394,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|Timeout|PubSub|SharedMessage|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -244,6 +244,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|Timeout|PubSub|SharedMessage|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -170,6 +170,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|Timeout|PubSub|SharedMessage|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -188,6 +188,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|DoNotTriggerNotification|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -188,6 +188,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|DoNotTriggerNotification|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -290,6 +290,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|Timeout|PubSub|SharedMessage|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
@@ -430,6 +432,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|Timeout|PubSub|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
@@ -600,6 +604,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|Timeout|PubSub|SharedMessage|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -250,6 +250,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|Timeout|PubSub|SharedMessage|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
@@ -420,6 +422,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|Timeout|PubSub|SharedMessage|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -250,6 +250,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|Timeout|PubSub|SharedMessage|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
@@ -390,6 +392,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|Timeout|PubSub|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -194,6 +194,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|Timeout|PubSub|SharedMessage|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -169,6 +169,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|Untimeout|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -169,6 +169,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|Untimeout|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -144,6 +144,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -162,6 +162,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -144,6 +144,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -144,6 +144,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -220,6 +220,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|Timeout|PubSub|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
@@ -375,6 +377,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|Timeout|PubSub|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -219,6 +219,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|Timeout|PubSub|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
@@ -359,6 +361,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|Timeout|PubSub|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -179,6 +179,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|Timeout|PubSub|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -146,6 +146,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -142,6 +142,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -147,6 +147,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -142,6 +142,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -136,6 +136,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|Untimeout|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -144,6 +144,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -144,6 +144,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -136,6 +136,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -139,6 +139,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -136,6 +136,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|Untimeout|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -155,6 +155,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -155,6 +155,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -81,6 +81,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "LowTrustUsers|RestrictedMessage|EventSub",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
@@ -188,6 +190,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "PubSub|LowTrustUsers|RestrictedMessage|EventSub",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -86,6 +86,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "LowTrustUsers|RestrictedMessage|EventSub",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
@@ -193,6 +195,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "PubSub|LowTrustUsers|RestrictedMessage|EventSub",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -84,6 +84,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "LowTrustUsers|RestrictedMessage|EventSub",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
@@ -191,6 +193,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "PubSub|LowTrustUsers|RestrictedMessage|EventSub",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -81,6 +81,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "LowTrustUsers|RestrictedMessage|EventSub",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
@@ -188,6 +190,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "PubSub|LowTrustUsers|RestrictedMessage|EventSub",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -115,6 +115,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|DoNotTriggerNotification|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -115,6 +115,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|DoNotTriggerNotification|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -115,6 +115,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|DoNotTriggerNotification|EventSub|ModerationAction",
|
||||
"frozen": true,
|
||||
"id": "",
|
||||
|
||||
@@ -154,6 +154,8 @@
|
||||
"url": ""
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "Collapsed|Action",
|
||||
"frozen": false,
|
||||
"id": "90ef1e46-8baa-4bf2-9c54-272f39d6fa11",
|
||||
|
||||
@@ -274,6 +274,8 @@
|
||||
"url": ""
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "Collapsed",
|
||||
"frozen": false,
|
||||
"id": "438b85cc-fa67-4c03-bc38-c4ec2527822c",
|
||||
|
||||
@@ -130,6 +130,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "Highlighted|Collapsed|Subscription",
|
||||
"frozen": false,
|
||||
"highlightColor": "#64c466ff",
|
||||
@@ -199,6 +201,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|DoNotTriggerNotification|Subscription",
|
||||
"frozen": false,
|
||||
"id": "",
|
||||
|
||||
@@ -125,6 +125,8 @@
|
||||
"url": ""
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "Collapsed",
|
||||
"frozen": false,
|
||||
"id": "7be87072-bf24-4fa3-b3df-0ea6fa5f1474",
|
||||
|
||||
@@ -125,6 +125,8 @@
|
||||
"url": ""
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "Collapsed",
|
||||
"frozen": false,
|
||||
"id": "7be87072-bf24-4fa3-b3df-0ea6fa5f1474",
|
||||
|
||||
@@ -103,6 +103,8 @@
|
||||
"url": ""
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "Collapsed",
|
||||
"frozen": false,
|
||||
"id": "",
|
||||
|
||||
@@ -103,6 +103,8 @@
|
||||
"url": ""
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "Collapsed",
|
||||
"frozen": false,
|
||||
"id": "",
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
"images": {
|
||||
"1x": "https://chatterino.com/Chatterino.png"
|
||||
},
|
||||
"name": "",
|
||||
"name": "chatterino:Chatterino",
|
||||
"tooltip": "Chatterino badge"
|
||||
},
|
||||
"flags": "BadgeChatterino",
|
||||
@@ -81,7 +81,7 @@
|
||||
"images": {
|
||||
"1x": "https://chatterino.com/FFZ1.png"
|
||||
},
|
||||
"name": "",
|
||||
"name": "frankerfacez:FFZ1",
|
||||
"tooltip": "FFZ1 badge"
|
||||
},
|
||||
"flags": "BadgeFfz",
|
||||
@@ -99,7 +99,7 @@
|
||||
"images": {
|
||||
"1x": "https://chatterino.com/FFZ2.png"
|
||||
},
|
||||
"name": "",
|
||||
"name": "frankerfacez:FFZ2",
|
||||
"tooltip": "FFZ2 badge"
|
||||
},
|
||||
"flags": "BadgeFfz",
|
||||
@@ -117,7 +117,7 @@
|
||||
"images": {
|
||||
"1x": "https://chatterino.com/FFZ2.png"
|
||||
},
|
||||
"name": "",
|
||||
"name": "frankerfacez:FFZ2",
|
||||
"tooltip": "FFZ2 badge"
|
||||
},
|
||||
"flags": "BadgeFfz",
|
||||
@@ -135,7 +135,7 @@
|
||||
"images": {
|
||||
"1x": "https://chatterino.com/FFZ2.png"
|
||||
},
|
||||
"name": "",
|
||||
"name": "frankerfacez:FFZ2",
|
||||
"tooltip": "FFZ2 badge"
|
||||
},
|
||||
"flags": "BadgeFfz",
|
||||
@@ -147,13 +147,31 @@
|
||||
"trailingSpace": true,
|
||||
"type": "FfzBadgeElement"
|
||||
},
|
||||
{
|
||||
"emote": {
|
||||
"id": "https://chatterino.com/betterttv/test.png",
|
||||
"images": {
|
||||
"1x": "https://chatterino.com/betterttv/test.png"
|
||||
},
|
||||
"name": "betterttv:pro",
|
||||
"tooltip": "BTTV Pro"
|
||||
},
|
||||
"flags": "BadgeBttv",
|
||||
"link": {
|
||||
"type": "None",
|
||||
"value": ""
|
||||
},
|
||||
"tooltip": "BTTV Pro",
|
||||
"trailingSpace": true,
|
||||
"type": "BadgeElement"
|
||||
},
|
||||
{
|
||||
"emote": {
|
||||
"id": "1",
|
||||
"images": {
|
||||
"1x": "https://chatterino.com/7tv//1x"
|
||||
},
|
||||
"name": "",
|
||||
"name": "7tv:7TV badge name",
|
||||
"tooltip": "7TV badge"
|
||||
},
|
||||
"flags": "BadgeSevenTV",
|
||||
@@ -209,6 +227,15 @@
|
||||
"url": ""
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
"chatterino:Chatterino",
|
||||
"frankerfacez:FFZ1",
|
||||
"frankerfacez:FFZ2",
|
||||
"frankerfacez:FFZ2",
|
||||
"frankerfacez:FFZ2",
|
||||
"betterttv:pro",
|
||||
"7tv:7TV badge name"
|
||||
],
|
||||
"flags": "Collapsed",
|
||||
"frozen": false,
|
||||
"id": "546c42a6-21d0-4f3d-a6a0-c77f78d7b131",
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
"images": {
|
||||
"1x": "https://chatterino.com/Chatterino.png"
|
||||
},
|
||||
"name": "",
|
||||
"name": "chatterino:Chatterino",
|
||||
"tooltip": "Chatterino badge"
|
||||
},
|
||||
"flags": "BadgeChatterino",
|
||||
@@ -81,7 +81,7 @@
|
||||
"images": {
|
||||
"1x": "https://chatterino.com/FFZ1.png"
|
||||
},
|
||||
"name": "",
|
||||
"name": "frankerfacez:FFZ1",
|
||||
"tooltip": "FFZ1 badge"
|
||||
},
|
||||
"flags": "BadgeFfz",
|
||||
@@ -99,7 +99,7 @@
|
||||
"images": {
|
||||
"1x": "https://chatterino.com/FFZ2.png"
|
||||
},
|
||||
"name": "",
|
||||
"name": "frankerfacez:FFZ2",
|
||||
"tooltip": "FFZ2 badge"
|
||||
},
|
||||
"flags": "BadgeFfz",
|
||||
@@ -117,7 +117,7 @@
|
||||
"images": {
|
||||
"1x": "https://chatterino.com/FFZ2.png"
|
||||
},
|
||||
"name": "",
|
||||
"name": "frankerfacez:FFZ2",
|
||||
"tooltip": "FFZ2 badge"
|
||||
},
|
||||
"flags": "BadgeFfz",
|
||||
@@ -135,7 +135,7 @@
|
||||
"images": {
|
||||
"1x": "https://chatterino.com/FFZ2.png"
|
||||
},
|
||||
"name": "",
|
||||
"name": "frankerfacez:FFZ2",
|
||||
"tooltip": "FFZ2 badge"
|
||||
},
|
||||
"flags": "BadgeFfz",
|
||||
@@ -147,13 +147,31 @@
|
||||
"trailingSpace": true,
|
||||
"type": "FfzBadgeElement"
|
||||
},
|
||||
{
|
||||
"emote": {
|
||||
"id": "https://chatterino.com/betterttv/test.png",
|
||||
"images": {
|
||||
"1x": "https://chatterino.com/betterttv/test.png"
|
||||
},
|
||||
"name": "betterttv:pro",
|
||||
"tooltip": "BTTV Pro"
|
||||
},
|
||||
"flags": "BadgeBttv",
|
||||
"link": {
|
||||
"type": "None",
|
||||
"value": ""
|
||||
},
|
||||
"tooltip": "BTTV Pro",
|
||||
"trailingSpace": true,
|
||||
"type": "BadgeElement"
|
||||
},
|
||||
{
|
||||
"emote": {
|
||||
"id": "1",
|
||||
"images": {
|
||||
"1x": "https://chatterino.com/7tv//1x"
|
||||
},
|
||||
"name": "",
|
||||
"name": "7tv:7TV badge name",
|
||||
"tooltip": "7TV badge"
|
||||
},
|
||||
"flags": "BadgeSevenTV",
|
||||
@@ -209,6 +227,15 @@
|
||||
"url": ""
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
"chatterino:Chatterino",
|
||||
"frankerfacez:FFZ1",
|
||||
"frankerfacez:FFZ2",
|
||||
"frankerfacez:FFZ2",
|
||||
"frankerfacez:FFZ2",
|
||||
"betterttv:pro",
|
||||
"7tv:7TV badge name"
|
||||
],
|
||||
"flags": "Collapsed",
|
||||
"frozen": false,
|
||||
"id": "546c42a6-21d0-4f3d-a6a0-c77f78d7b131",
|
||||
|
||||
@@ -73,6 +73,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|DoNotTriggerNotification|Subscription",
|
||||
"frozen": false,
|
||||
"id": "",
|
||||
|
||||
@@ -403,6 +403,8 @@
|
||||
"url": ""
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "Collapsed|CheerMessage",
|
||||
"frozen": false,
|
||||
"id": "fd6c5507-3a4e-4d24-8f6e-fadf07f520d3",
|
||||
|
||||
@@ -177,6 +177,8 @@
|
||||
"url": ""
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "Collapsed|CheerMessage",
|
||||
"frozen": false,
|
||||
"id": "fd6c5507-3a4e-4d24-8f6e-fadf07f520d3",
|
||||
|
||||
@@ -160,6 +160,8 @@
|
||||
"url": ""
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "Collapsed|CheerMessage",
|
||||
"frozen": false,
|
||||
"id": "fd6c5507-3a4e-4d24-8f6e-fadf07f520d3",
|
||||
|
||||
@@ -122,6 +122,8 @@
|
||||
"url": ""
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "Collapsed|CheerMessage",
|
||||
"frozen": false,
|
||||
"id": "60d8835b-23fa-418c-96ca-5874e5d5e8ba",
|
||||
|
||||
@@ -57,6 +57,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|DoNotTriggerNotification|ClearChat|ModerationAction",
|
||||
"frozen": false,
|
||||
"id": "",
|
||||
@@ -222,6 +224,8 @@
|
||||
"url": ""
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "Collapsed",
|
||||
"frozen": false,
|
||||
"id": "b4f3ac1d-6335-4567-bb8d-e76dfd83f7e3",
|
||||
|
||||
@@ -55,6 +55,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|DoNotTriggerNotification|ClearChat|ModerationAction",
|
||||
"frozen": false,
|
||||
"id": "",
|
||||
|
||||
@@ -57,6 +57,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|DoNotTriggerNotification|ClearChat|ModerationAction",
|
||||
"frozen": false,
|
||||
"id": "",
|
||||
|
||||
@@ -55,6 +55,8 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"externalBadges": [
|
||||
],
|
||||
"flags": "System|DoNotTriggerNotification|ClearChat|ModerationAction",
|
||||
"frozen": false,
|
||||
"id": "",
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user