Add reward.cost reward.id, reward.title filter variables (#5275)
This commit is contained in:
@@ -120,6 +120,18 @@ ContextMap buildContextMap(const MessagePtr &m, chatterino::Channel *channel)
|
||||
vars["channel.live"] = false;
|
||||
}
|
||||
}
|
||||
if (m->reward != nullptr)
|
||||
{
|
||||
vars["reward.title"] = m->reward->title;
|
||||
vars["reward.cost"] = m->reward->cost;
|
||||
vars["reward.id"] = m->reward->id;
|
||||
}
|
||||
else
|
||||
{
|
||||
vars["reward.title"] = "";
|
||||
vars["reward.cost"] = -1;
|
||||
vars["reward.id"] = "";
|
||||
}
|
||||
return vars;
|
||||
}
|
||||
|
||||
|
||||
@@ -48,6 +48,9 @@ static const QMap<QString, Type> MESSAGE_TYPING_CONTEXT = {
|
||||
{"flags.monitored", Type::Bool},
|
||||
{"message.content", Type::String},
|
||||
{"message.length", Type::Int},
|
||||
{"reward.title", Type::String},
|
||||
{"reward.cost", Type::Int},
|
||||
{"reward.id", Type::String},
|
||||
};
|
||||
|
||||
ContextMap buildContextMap(const MessagePtr &m, chatterino::Channel *channel);
|
||||
|
||||
@@ -35,7 +35,11 @@ static const QMap<QString, QString> validIdentifiersMap = {
|
||||
{"flags.restricted", "restricted message?"},
|
||||
{"flags.monitored", "monitored message?"},
|
||||
{"message.content", "message text"},
|
||||
{"message.length", "message length"}};
|
||||
{"message.length", "message length"},
|
||||
{"reward.title", "point reward title"},
|
||||
{"reward.cost", "point reward cost"},
|
||||
{"reward.id", "point reward id"},
|
||||
};
|
||||
|
||||
// clang-format off
|
||||
static const QRegularExpression tokenRegex(
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "common/FlagsEnum.hpp"
|
||||
#include "providers/twitch/ChannelPointReward.hpp"
|
||||
#include "util/QStringHash.hpp"
|
||||
|
||||
#include <magic_enum/magic_enum.hpp>
|
||||
@@ -107,6 +108,8 @@ struct Message {
|
||||
std::vector<std::unique_ptr<MessageElement>> elements;
|
||||
|
||||
ScrollbarHighlight getScrollBarHighlight() const;
|
||||
|
||||
std::shared_ptr<ChannelPointReward> reward = nullptr;
|
||||
};
|
||||
|
||||
} // namespace chatterino
|
||||
|
||||
@@ -1625,6 +1625,8 @@ void TwitchMessageBuilder::appendChannelPointRewardMessage(
|
||||
builder->message().messageText = textList.join(" ");
|
||||
builder->message().searchText = textList.join(" ");
|
||||
builder->message().loginName = reward.user.login;
|
||||
|
||||
builder->message().reward = std::make_shared<ChannelPointReward>(reward);
|
||||
}
|
||||
|
||||
void TwitchMessageBuilder::liveMessage(const QString &channelName,
|
||||
|
||||
@@ -268,6 +268,20 @@ void addHiddenContextMenuItems(QMenu *menu,
|
||||
jsonObject["searchText"] = message->searchText;
|
||||
jsonObject["messageText"] = message->messageText;
|
||||
jsonObject["flags"] = qmagicenum::enumFlagsName(message->flags.value());
|
||||
if (message->reward)
|
||||
{
|
||||
QJsonObject reward;
|
||||
reward["id"] = message->reward->id;
|
||||
reward["title"] = message->reward->title;
|
||||
reward["cost"] = message->reward->cost;
|
||||
reward["isUserInputRequired"] =
|
||||
message->reward->isUserInputRequired;
|
||||
jsonObject["reward"] = reward;
|
||||
}
|
||||
else
|
||||
{
|
||||
jsonObject["reward"] = QJsonValue();
|
||||
}
|
||||
|
||||
jsonDocument.setObject(jsonObject);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user