|
@@ -12,20 +12,10 @@
|
|
|
#include <QDir>
|
|
|
#include <QMap>
|
|
|
|
|
|
-ANetwork::ANetwork() {
|
|
|
+ANetwork::ANetwork(QObject*) {
|
|
|
|
|
|
}
|
|
|
|
|
|
-ANetwork::ANetwork(const ANetwork&) {
|
|
|
- throw QException();
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-ANetwork& ANetwork::operator=(ANetwork&) {
|
|
|
- throw QException();
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
QString ANetwork::query(QUrl url){
|
|
|
App *app = &App::getInstance();
|
|
|
QNetworkAccessManager* manager = new QNetworkAccessManager(app->window);
|
|
@@ -37,7 +27,6 @@ QString ANetwork::query(QUrl url){
|
|
|
QString content = reply->readAll();
|
|
|
if (reply->error() != QNetworkReply::NoError){
|
|
|
content = "error";
|
|
|
-
|
|
|
qDebug() << reply->errorString();
|
|
|
}
|
|
|
reply->deleteLater();
|
|
@@ -107,7 +96,6 @@ QString ANetwork::getFootMessage(){
|
|
|
return content;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
QString ANetwork::getServers(){
|
|
|
App *app = &App::getInstance();
|
|
|
QString time = "";
|
|
@@ -168,62 +156,66 @@ QString ANetwork::getServers(){
|
|
|
return content;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-void ANetwork::getPaths(){
|
|
|
+void ANetwork::UpdatePatches(){
|
|
|
App *app = &App::getInstance();
|
|
|
QUrlQuery query;
|
|
|
QStringList names;
|
|
|
QString version;
|
|
|
qInfo("%s:%i: %s", __FILE__, __LINE__, "Начинаем проверку актуальности патчей.");
|
|
|
- names << "sound" << "text" << "image" << "video" << "screen" << "texture" << "font";
|
|
|
+ names << "sounds" << "texts" << "images" << "videos" << "loadscreens" << "textures" << "fonts";
|
|
|
QUrl url(app->config->getValue("Network", "releases"));
|
|
|
|
|
|
QString datafolder = QApplication::applicationDirPath() + "/data";
|
|
|
QDir dir(datafolder);
|
|
|
if(!dir.exists()) QDir().mkdir(datafolder);
|
|
|
|
|
|
- foreach(QString s, names){
|
|
|
- if(app->config->getValue("Editor", s + "s") == "true"){
|
|
|
- if(s == "screen") s = "loadscreen";
|
|
|
-
|
|
|
- QStringList paths = dir.entryList(QStringList(s + "*"));
|
|
|
-
|
|
|
- if(!paths.empty()) {
|
|
|
- version = QString::number(app->helper->getVersion(paths.first()));
|
|
|
- QString hash = FileSystem::fileHash(datafolder + "/" + paths.first(), QCryptographicHash::Md5);
|
|
|
- if(hash != app->config->getValue("Hashes", s + "s")){
|
|
|
- qDebug("%s:%i: %s%s", __FILE__, __LINE__, "Эталон хэша отсутствует (удаляю файл): ", paths.first().toLocal8Bit().data());
|
|
|
- QFile base(datafolder + "/" + paths.first());
|
|
|
- base.remove();
|
|
|
- version="100";
|
|
|
- }
|
|
|
-
|
|
|
- QString dateline = app->config->getValue("Datetime", s + "s");
|
|
|
- if(dateline != "-1"){
|
|
|
- qDebug("%s:%i: %s", __FILE__, __LINE__, "Проставляем даты патчей.");
|
|
|
- QLabel* obj = app->window->ui->mainbox->findChild<QLabel*>(s + "sStatus");
|
|
|
- if (obj != nullptr){
|
|
|
- QStringList date = dateline.split(" ");
|
|
|
- obj->setText(date[0]);
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- } else {
|
|
|
- qDebug("%s:%i: %s%s", __FILE__, __LINE__, "Патч отсутствует: ", s.toLocal8Bit().data());
|
|
|
- version = "100";
|
|
|
- QLabel* obj = app->window->ui->mainbox->findChild<QLabel*>(s + "sStatus");
|
|
|
- if (obj != nullptr) {
|
|
|
- obj->setText("Оригинал");
|
|
|
- }
|
|
|
+ foreach(QString s, names) {
|
|
|
|
|
|
- }
|
|
|
- query.addQueryItem(s, version);
|
|
|
+ if(app->config->getValue("Editor", s) == "false") {
|
|
|
+ emit changePatchStatus(s, "Не выбран");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ QStringList paths = dir.entryList(QStringList(s + "*"));
|
|
|
+
|
|
|
+ QString dateline = app->config->getValue("Datetime", s);
|
|
|
+ if (dateline != "-1") {
|
|
|
+ qDebug("%s:%i: %s", __FILE__, __LINE__, "Проставляем даты патчей.");
|
|
|
+ QStringList date = dateline.split(" ");
|
|
|
+ emit changePatchStatus(s, date[0]);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (paths.empty()) {
|
|
|
+ qDebug("%s:%i: %s%s", __FILE__, __LINE__, "Патч отсутствует: ", s.toLocal8Bit().data());
|
|
|
+ version = "100";
|
|
|
+ emit changePatchStatus(s, "Отсутствует");
|
|
|
+
|
|
|
+ query.addQueryItem(s.left(s.length() - 1), version);
|
|
|
+ continue;
|
|
|
}
|
|
|
+
|
|
|
+ version = QString::number(app->helper->getVersion(paths.first()));
|
|
|
+ QString hash = FileSystem::fileHash(datafolder + "/" + paths.first(), QCryptographicHash::Md5);
|
|
|
+ if(hash != app->config->getValue("Hashes", s)) {
|
|
|
+ qDebug("%s:%i: %s\n%s%s\n%s%s\n%s%s", __FILE__, __LINE__, "Неверный хэш файла! (удаляю файл)",
|
|
|
+ "Файл: " , paths.first().toLocal8Bit().data(),
|
|
|
+ "Высчитанный хэш: ", hash.toLocal8Bit().data(),
|
|
|
+ "Хэш конфигурации: ", app->config->getValue("Hashes", s).toLocal8Bit().data()
|
|
|
+ );
|
|
|
+
|
|
|
+ QFile base(datafolder + "/" + paths.first());
|
|
|
+ base.remove();
|
|
|
+ version="100";
|
|
|
+
|
|
|
+ emit changePatchStatus(s, "Ошибка хэша");
|
|
|
+ }
|
|
|
+
|
|
|
+ query.addQueryItem(s.left(s.length() - 1), version);
|
|
|
}
|
|
|
|
|
|
url.setQuery(query.query());
|
|
|
qDebug("%s:%i: %s%s", __FILE__, __LINE__, "Запрашиваем информацию о патчах: ", url.fileName().toLocal8Bit().data());
|
|
|
+ qDebug() << "\nЗапрос на сервер: " << url;
|
|
|
QString content = this->query(url);
|
|
|
if(content == "error"){
|
|
|
qInfo("%s:%i: %s", __FILE__, __LINE__, "Отсутствует связь с сервером. Прервано.");
|
|
@@ -231,12 +223,14 @@ void ANetwork::getPaths(){
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- qDebug() << content;
|
|
|
- if(content == "") {
|
|
|
+ qDebug() << "\nОтвет сервера: " << content;
|
|
|
+ if (content == "Запросы GET или POST отсутствуют!!!!") {
|
|
|
+ qInfo("%s:%i: %s", __FILE__, __LINE__, "Отсутствуют запросы к серверу.");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (content == "") {
|
|
|
qInfo("%s:%i: %s", __FILE__, __LINE__, "Все версии патчей соответствуют актуальным.");
|
|
|
- app->helper->setState("busy");
|
|
|
-
|
|
|
- app->helper->setState("free");
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -268,7 +262,6 @@ void ANetwork::getPaths(){
|
|
|
}
|
|
|
|
|
|
QString ANetwork::getMicroPath(int timestamp){
|
|
|
-
|
|
|
App *app = &App::getInstance();
|
|
|
|
|
|
app->logSectionStart("Загрузка последних обновлений");
|
|
@@ -308,12 +301,3 @@ QString ANetwork::getMicroPath(int timestamp){
|
|
|
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|