Added support for Twitch's Chat Replies (#3722)

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
This commit is contained in:
Daniel Sage
2022-07-31 06:45:25 -04:00
committed by GitHub
parent a280089693
commit 20c974fdab
53 changed files with 2022 additions and 310 deletions
+61
View File
@@ -0,0 +1,61 @@
#include "MessageThread.hpp"
#include "messages/Message.hpp"
#include "util/DebugCount.hpp"
#include <utility>
namespace chatterino {
MessageThread::MessageThread(std::shared_ptr<const Message> rootMessage)
: rootMessageId_(rootMessage->id)
, rootMessage_(std::move(rootMessage))
{
DebugCount::increase("message threads");
}
MessageThread::~MessageThread()
{
DebugCount::decrease("message threads");
}
void MessageThread::addToThread(const std::shared_ptr<const Message> &message)
{
this->replies_.emplace_back(message);
}
void MessageThread::addToThread(const std::weak_ptr<const Message> &message)
{
this->replies_.push_back(message);
}
size_t MessageThread::liveCount() const
{
size_t count = 0;
for (auto reply : this->replies_)
{
if (!reply.expired())
{
++count;
}
}
return count;
}
size_t MessageThread::liveCount(
const std::shared_ptr<const Message> &exclude) const
{
size_t count = 0;
for (auto reply : this->replies_)
{
if (!reply.expired() && reply.lock() != exclude)
{
++count;
}
}
return count;
}
} // namespace chatterino