mirror-chatterino2/src/common/NetworkData.cpp

59 lines
1.1 KiB
C++
Raw Normal View History

#include "common/NetworkData.hpp"
#include "singletons/Paths.hpp"
#include "util/DebugCount.hpp"
#include <QCryptographicHash>
#include <QFile>
namespace chatterino {
NetworkData::NetworkData()
{
DebugCount::increase("NetworkData");
}
NetworkData::~NetworkData()
{
DebugCount::decrease("NetworkData");
}
QString NetworkData::getHash()
{
2018-10-21 13:43:02 +02:00
if (this->hash_.isEmpty())
{
QByteArray bytes;
bytes.append(this->request_.url().toString());
2018-10-21 13:43:02 +02:00
for (const auto &header : this->request_.rawHeaderList())
{
bytes.append(header);
}
2018-08-06 21:17:03 +02:00
QByteArray hashBytes(
QCryptographicHash::hash(bytes, QCryptographicHash::Sha256));
this->hash_ = hashBytes.toHex();
}
return this->hash_;
}
void NetworkData::writeToCache(const QByteArray &bytes)
{
2018-10-21 13:43:02 +02:00
if (this->useQuickLoadCache_)
{
QFile cachedFile(getPaths()->cacheDirectory() + "/" + this->getHash());
2018-10-21 13:43:02 +02:00
if (cachedFile.open(QIODevice::WriteOnly))
{
cachedFile.write(bytes);
cachedFile.close();
}
}
}
} // namespace chatterino