Fix custom built messages not showing up as search results (#2962)

This commit is contained in:
Paweł
2021-07-11 12:19:35 +02:00
committed by GitHub
parent b37c0cb177
commit 94a99ac4f0
5 changed files with 97 additions and 33 deletions
+56 -30
View File
@@ -31,14 +31,17 @@ MessagePtr makeSystemMessage(const QString &text, const QTime &time)
MessagePtr makeAutomodInfoMessage(const AutomodInfoAction &action)
{
auto builder = MessageBuilder();
QString text("AutoMod: ");
builder.emplace<TimestampElement>();
builder.message().flags.set(MessageFlag::PubSub);
// AutoMod shield badge
builder
.emplace<ImageElement>(Image::fromPixmap(getResources().twitch.automod),
MessageElementFlag::BadgeChannelAuthority)
->setTooltip("AutoMod");
// AutoMod "username"
builder.emplace<TextElement>("AutoMod:", MessageElementFlag::BoldUsername,
MessageColor(QColor("blue")),
FontStyle::ChatMediumBold);
@@ -48,27 +51,32 @@ MessagePtr makeAutomodInfoMessage(const AutomodInfoAction &action)
switch (action.type)
{
case AutomodInfoAction::OnHold: {
builder.emplace<TextElement>(("Hey! Your message is being checked "
"by mods and has not been sent."),
MessageElementFlag::Text,
QString info("Hey! Your message is being checked "
"by mods and has not been sent.");
text += info;
builder.emplace<TextElement>(info, MessageElementFlag::Text,
MessageColor::Text);
}
break;
case AutomodInfoAction::Denied: {
builder.emplace<TextElement>(("Mods have removed your message."),
MessageElementFlag::Text,
QString info("Mods have removed your message.");
text += info;
builder.emplace<TextElement>(info, MessageElementFlag::Text,
MessageColor::Text);
}
break;
case AutomodInfoAction::Approved: {
builder.emplace<TextElement>(("Mods have accepted your message."),
MessageElementFlag::Text,
QString info("Mods have accepted your message.");
text += info;
builder.emplace<TextElement>(info, MessageElementFlag::Text,
MessageColor::Text);
}
break;
}
builder.message().flags.set(MessageFlag::AutoMod);
builder.message().messageText = text;
builder.message().searchText = text;
auto message = builder.release();
@@ -78,63 +86,83 @@ MessagePtr makeAutomodInfoMessage(const AutomodInfoAction &action)
std::pair<MessagePtr, MessagePtr> makeAutomodMessage(
const AutomodAction &action)
{
auto builder = MessageBuilder();
MessageBuilder builder, builder2;
//
// Builder for AutoMod message with explanation
builder.emplace<TimestampElement>();
builder.message().loginName = "automod";
builder.message().flags.set(MessageFlag::PubSub);
// AutoMod shield badge
builder
.emplace<ImageElement>(Image::fromPixmap(getResources().twitch.automod),
MessageElementFlag::BadgeChannelAuthority)
->setTooltip("AutoMod");
// AutoMod "username"
builder.emplace<TextElement>("AutoMod:", MessageElementFlag::BoldUsername,
MessageColor(QColor("blue")),
FontStyle::ChatMediumBold);
builder.emplace<TextElement>(
"AutoMod:", MessageElementFlag::NonBoldUsername,
MessageColor(QColor("blue")));
// AutoMod header message
builder.emplace<TextElement>(
("Held a message for reason: " + action.reason +
". Allow will post it in chat. "),
MessageElementFlag::Text, MessageColor::Text);
// Allow link button
builder
.emplace<TextElement>("Allow", MessageElementFlag::Text,
MessageColor(QColor("green")),
FontStyle::ChatMediumBold)
->setLink({Link::AutoModAllow, action.msgID});
// Deny link button
builder
.emplace<TextElement>(" Deny", MessageElementFlag::Text,
MessageColor(QColor("red")),
FontStyle::ChatMediumBold)
->setLink({Link::AutoModDeny, action.msgID});
// builder.emplace<TextElement>(action.msgID,
// MessageElementFlag::Text,
// MessageColor::Text);
// ID of message caught by AutoMod
// builder.emplace<TextElement>(action.msgID, MessageElementFlag::Text,
// MessageColor::Text);
builder.message().flags.set(MessageFlag::AutoMod);
auto text1 =
QString("AutoMod: Held a message for reason: %1. Allow will post "
"it in chat. Allow Deny")
.arg(action.reason);
builder.message().messageText = text1;
builder.message().searchText = text1;
auto message1 = builder.release();
builder = MessageBuilder();
builder.emplace<TimestampElement>();
builder.emplace<TwitchModerationElement>();
builder.message().loginName = action.target.name;
builder.message().flags.set(MessageFlag::PubSub);
//
// Builder for offender's message
builder2.emplace<TimestampElement>();
builder2.emplace<TwitchModerationElement>();
builder2.message().loginName = action.target.name;
builder2.message().flags.set(MessageFlag::PubSub);
builder
// sender username
builder2
.emplace<TextElement>(
action.target.name + ":", MessageElementFlag::BoldUsername,
MessageColor(QColor("red")), FontStyle::ChatMediumBold)
->setLink({Link::UserInfo, action.target.name});
builder
builder2
.emplace<TextElement>(action.target.name + ":",
MessageElementFlag::NonBoldUsername,
MessageColor(QColor("red")))
->setLink({Link::UserInfo, action.target.name});
builder.emplace<TextElement>(action.message, MessageElementFlag::Text,
MessageColor::Text);
builder.message().flags.set(MessageFlag::AutoMod);
// sender's message caught by AutoMod
builder2.emplace<TextElement>(action.message, MessageElementFlag::Text,
MessageColor::Text);
builder2.message().flags.set(MessageFlag::AutoMod);
auto text2 = QString("%1: %2").arg(action.target.name, action.message);
builder2.message().messageText = text2;
builder2.message().searchText = text2;
auto message2 = builder.release();
auto message2 = builder2.release();
return std::make_pair(message1, message2);
}
@@ -369,29 +397,25 @@ MessageBuilder::MessageBuilder(const AutomodUserAction &action)
{
case AutomodUserAction::AddPermitted: {
text = QString("%1 added %2 as a permitted term on AutoMod.")
.arg(action.source.name)
.arg(action.message);
.arg(action.source.name, action.message);
}
break;
case AutomodUserAction::AddBlocked: {
text = QString("%1 added %2 as a blocked term on AutoMod.")
.arg(action.source.name)
.arg(action.message);
.arg(action.source.name, action.message);
}
break;
case AutomodUserAction::RemovePermitted: {
text = QString("%1 removed %2 as a permitted term on AutoMod.")
.arg(action.source.name)
.arg(action.message);
.arg(action.source.name, action.message);
}
break;
case AutomodUserAction::RemoveBlocked: {
text = QString("%1 removed %2 as a blocked term on AutoMod.")
.arg(action.source.name)
.arg(action.message);
.arg(action.source.name, action.message);
}
break;
@@ -401,6 +425,8 @@ MessageBuilder::MessageBuilder(const AutomodUserAction &action)
}
break;
}
this->message().messageText = text;
this->message().searchText = text;
this->emplace<TextElement>(text, MessageElementFlag::Text,
MessageColor::System);