69 lines
1.3 KiB
C++
69 lines
1.3 KiB
C++
#include "MessageBuilder.hpp"
|
|
|
|
#include "common/LinkParser.hpp"
|
|
#include "singletons/EmoteManager.hpp"
|
|
#include "singletons/ResourceManager.hpp"
|
|
#include "singletons/ThemeManager.hpp"
|
|
|
|
#include <QDateTime>
|
|
|
|
namespace chatterino {
|
|
|
|
MessageBuilder::MessageBuilder()
|
|
: message(new Message)
|
|
{
|
|
}
|
|
|
|
MessagePtr MessageBuilder::getMessage()
|
|
{
|
|
return this->message;
|
|
}
|
|
|
|
void MessageBuilder::append(MessageElement *element)
|
|
{
|
|
this->message->addElement(element);
|
|
}
|
|
|
|
void MessageBuilder::appendTimestamp()
|
|
{
|
|
this->appendTimestamp(QTime::currentTime());
|
|
}
|
|
|
|
void MessageBuilder::setHighlight(bool value)
|
|
{
|
|
if (value) {
|
|
this->message->flags |= Message::Highlighted;
|
|
} else {
|
|
this->message->flags &= ~Message::Highlighted;
|
|
}
|
|
}
|
|
|
|
void MessageBuilder::appendTimestamp(const QTime &time)
|
|
{
|
|
this->append(new TimestampElement(time));
|
|
}
|
|
|
|
QString MessageBuilder::matchLink(const QString &string)
|
|
{
|
|
LinkParser linkParser(string);
|
|
|
|
static QRegularExpression httpRegex("\\bhttps?://");
|
|
static QRegularExpression ftpRegex("\\bftps?://");
|
|
|
|
if (!linkParser.hasMatch()) {
|
|
return QString();
|
|
}
|
|
|
|
QString captured = linkParser.getCaptured();
|
|
|
|
if (!captured.contains(httpRegex)) {
|
|
if (!captured.contains(ftpRegex)) {
|
|
captured.insert(0, "http://");
|
|
}
|
|
}
|
|
|
|
return captured;
|
|
}
|
|
|
|
} // namespace chatterino
|