#include "champcache.h" #include "files.h" #include #include #include #include ChampCache::ChampCache() { basefolder = getCache(); } // the age of f in seconds static qint64 ageOfFile(QFile& f) { QFileInfo info(f); return info.lastModified().secsTo(QDateTime::currentDateTime()); } QString ChampCache::getVersion() { QFile versionfile(basefolder + "version"); if(ageOfFile(versionfile) < (qint64) maxage) { versionfile.open(QFile::ReadOnly); return versionfile.readAll(); } return {}; // empty string } QJsonDocument ChampCache::getChamps() { QFile champsfile(basefolder + "champs.json"); if(ageOfFile(champsfile) < (qint64) maxage) { champsfile.open(QFile::ReadOnly); QByteArray bytes = champsfile.readAll(); QJsonDocument doc = QJsonDocument::fromJson(bytes); return doc; } return {}; // empty document } void ChampCache::saveChamps(QJsonDocument doc, const QString& version) { QByteArray arr = doc.toJson(); QFile champsfile(basefolder + "champs.json"); champsfile.open(QFile::WriteOnly | QFile::Truncate); champsfile.write(arr); QFile versionfile(basefolder + "version"); versionfile.open(QFile::WriteOnly | QFile::Truncate); versionfile.write(version.toLocal8Bit()); versionfile.close(); qInfo() << "saved Champs and version Cache"; }