fix: use serverReceivedTime over parseTime for stacking (#5824)
This commit is contained in:
@@ -634,7 +634,7 @@ MessagePtrMut MessageBuilder::makeSubgiftMessage(const QString &text,
|
||||
MessageBuilder::MessageBuilder(TimeoutMessageTag, const QString &timeoutUser,
|
||||
const QString &sourceUser,
|
||||
const QString &systemMessageText, int times,
|
||||
const QTime &time)
|
||||
const QDateTime &time)
|
||||
: MessageBuilder()
|
||||
{
|
||||
QString usernameText = systemMessageText.split(" ").at(0);
|
||||
@@ -643,7 +643,7 @@ MessageBuilder::MessageBuilder(TimeoutMessageTag, const QString &timeoutUser,
|
||||
usernameText == "You" || timeoutUser == usernameText;
|
||||
QString messageText;
|
||||
|
||||
this->emplace<TimestampElement>(time);
|
||||
this->emplace<TimestampElement>(time.time());
|
||||
this->emplaceSystemTextAndUpdate(usernameText, messageText)
|
||||
->setLink(
|
||||
{Link::UserInfo, timeoutUserIsFirst ? timeoutUser : sourceUser});
|
||||
@@ -670,17 +670,18 @@ MessageBuilder::MessageBuilder(TimeoutMessageTag, const QString &timeoutUser,
|
||||
|
||||
this->message().messageText = messageText;
|
||||
this->message().searchText = messageText;
|
||||
this->message().serverReceivedTime = time;
|
||||
}
|
||||
|
||||
MessageBuilder::MessageBuilder(TimeoutMessageTag, const QString &username,
|
||||
const QString &durationInSeconds,
|
||||
bool multipleTimes, const QTime &time)
|
||||
bool multipleTimes, const QDateTime &time)
|
||||
: MessageBuilder()
|
||||
{
|
||||
QString fullText;
|
||||
QString text;
|
||||
|
||||
this->emplace<TimestampElement>(time);
|
||||
this->emplace<TimestampElement>(time.time());
|
||||
this->emplaceSystemTextAndUpdate(username, fullText)
|
||||
->setLink({Link::UserInfo, username});
|
||||
|
||||
@@ -718,6 +719,7 @@ MessageBuilder::MessageBuilder(TimeoutMessageTag, const QString &username,
|
||||
this->emplaceSystemTextAndUpdate(text, fullText);
|
||||
this->message().messageText = fullText;
|
||||
this->message().searchText = fullText;
|
||||
this->message().serverReceivedTime = time;
|
||||
}
|
||||
|
||||
MessageBuilder::MessageBuilder(const BanAction &action, uint32_t count)
|
||||
@@ -1987,14 +1989,14 @@ MessagePtr MessageBuilder::makeLowTrustUpdateMessage(
|
||||
return builder.release();
|
||||
}
|
||||
|
||||
MessagePtrMut MessageBuilder::makeClearChatMessage(QTime now,
|
||||
MessagePtrMut MessageBuilder::makeClearChatMessage(const QDateTime &now,
|
||||
const QString &actor,
|
||||
uint32_t count)
|
||||
{
|
||||
MessageBuilder builder;
|
||||
builder.emplace<TimestampElement>(now);
|
||||
builder.emplace<TimestampElement>(now.time());
|
||||
builder->count = count;
|
||||
builder->parseTime = now;
|
||||
builder->serverReceivedTime = now;
|
||||
builder.message().flags.set(MessageFlag::System,
|
||||
MessageFlag::DoNotTriggerNotification,
|
||||
MessageFlag::ClearChat);
|
||||
|
||||
@@ -108,10 +108,10 @@ public:
|
||||
const QTime &time = QTime::currentTime());
|
||||
MessageBuilder(TimeoutMessageTag, const QString &timeoutUser,
|
||||
const QString &sourceUser, const QString &systemMessageText,
|
||||
int times, const QTime &time = QTime::currentTime());
|
||||
int times, const QDateTime &time);
|
||||
MessageBuilder(TimeoutMessageTag, const QString &username,
|
||||
const QString &durationInSeconds, bool multipleTimes,
|
||||
const QTime &time = QTime::currentTime());
|
||||
const QDateTime &time);
|
||||
MessageBuilder(const BanAction &action, uint32_t count = 1);
|
||||
MessageBuilder(const UnbanAction &action);
|
||||
MessageBuilder(const WarnAction &action);
|
||||
@@ -261,7 +261,8 @@ public:
|
||||
/// "Chat has been cleared by a moderator." or "{actor} cleared the chat."
|
||||
/// @param actor The user who cleared the chat (empty if unknown)
|
||||
/// @param count How many times this message has been received already
|
||||
static MessagePtrMut makeClearChatMessage(QTime now, const QString &actor,
|
||||
static MessagePtrMut makeClearChatMessage(const QDateTime &now,
|
||||
const QString &actor,
|
||||
uint32_t count = 1);
|
||||
|
||||
private:
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#include <optional>
|
||||
|
||||
class QStringView;
|
||||
class QTime;
|
||||
class QDateTime;
|
||||
|
||||
namespace chatterino {
|
||||
|
||||
@@ -46,12 +46,12 @@ public:
|
||||
|
||||
/// Adds a timeout message or merges it into an existing one
|
||||
virtual void addOrReplaceTimeout(MessagePtr clearchatMessage,
|
||||
QTime now) = 0;
|
||||
const QDateTime &now) = 0;
|
||||
|
||||
/// Adds a clear chat message (for the entire chat) or merges it into an
|
||||
/// existing one
|
||||
virtual void addOrReplaceClearChat(MessagePtr clearchatMessage,
|
||||
QTime now) = 0;
|
||||
const QDateTime &now) = 0;
|
||||
|
||||
/// Flags all messages as `Disabled`
|
||||
virtual void disableAllMessages() = 0;
|
||||
|
||||
Reference in New Issue
Block a user