| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- #include "versionmanager.h"
- #include "SNCDataBase.h"
- #include "loghelper.h"
- VersionManager::VersionManager()
- {
- this->local_app_version = SNCDataBase::getAppVersion();
- this->local_seg_version = SNCDataBase::getSegVersion();
- this->config_urls = SNCDataBase::getConfigServerUrls();
- stop = false;
- }
- bool VersionManager::needUpdate()
- {
- if(!getServerConfig())
- return false;
- SNCDataBase::updateConfigUrls(parser.config_urls);
- SNCDataBase::updateBannerAd(parser.banner_ad);
- SNCDataBase::updateTextAd(parser.text_ads);
- SNCDataBase::updateCorpPrefix(parser.corp_prefix);
- //SNCDataBase::updateClientConfig(parser.client_config);
- int server_app_sn = parser.current_app_version;
- int local_app_sn= parser.app_map.value(this->local_app_version);
- if(server_app_sn<=local_app_sn)
- return false;
- QFile file(QDir::tempPath()+"/snc_update.log");
- if(!file.open(QIODevice::WriteOnly))
- return 0 ;
- QTextStream out(&file);
- for(int i=server_app_sn-1;i>=local_app_sn;i--)
- {
- QString log_file = parser.app_update_logs.value(i);
- QString content = downloadFile(log_file);
- out << content+"\r\n";
- }
- file.close();
- this->app_patch_url = parser.app_patch_urls.value(local_app_sn);
- this->app_update = parser.update;
- return true;
- }
- QString VersionManager::getAppPatchUrl()
- {
- return this->app_patch_url;
- }
- QString VersionManager::getAppUpdateState()
- {
- return this->app_update;
- }
- bool VersionManager::getServerConfig()
- {
- bool success = false;
- for(int i=0;i<config_urls.size();i++)
- {
- QString config_url = config_urls.at(i);
- QString content = downloadFile(config_url);
- ConfigParser p;
- if(p.readConfig(content))
- {
- success= true;
- this->parser = p;
- break;
- }
- }
- return success;
- }
- void VersionManager::replyFinished(QNetworkReply *reply)
- {
- QTextCodec *codec;
- QVariant var = reply->header(QNetworkRequest::ContentTypeHeader);
- QString codeType = var.toByteArray();
- int index = codeType.size() - codeType.lastIndexOf("=") - 1;
- codeType = codeType.right(index);
- codec = QTextCodec::codecForName(codeType.toAscii());
- file_content = reply->readAll();
- emit finished1();
- stop =true;
- }
- QString VersionManager::downloadFile(QString http_url)
- {
- QUrl url(http_url);
- QNetworkAccessManager manager;
- QNetworkReply *reply = manager.get(QNetworkRequest(url));
- QTextCodec *codec;
- QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
- QTimer::singleShot(10000, &loop, SLOT(quit()));
- loop.exec();
- QVariant var = reply->header(QNetworkRequest::ContentTypeHeader);
- QString codeType = var.toByteArray();
- int index = codeType.size() - codeType.lastIndexOf("=") - 1;
- codeType = codeType.right(index);
- codec = QTextCodec::codecForName(codeType.toAscii());
- QString content = reply->readAll();
- return content;
- }
|