forked from MrBesen/lolautoaccept
55 lines
1.3 KiB
C++
55 lines
1.3 KiB
C++
#include "champcache.h"
|
|
|
|
#include "files.h"
|
|
|
|
#include <QFile>
|
|
#include <QFileInfo>
|
|
#include <QDateTime>
|
|
|
|
#include <Log.h>
|
|
|
|
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";
|
|
}
|