From 1733d9853d3bc59e6659dd6d9ac8df57be638443 Mon Sep 17 00:00:00 2001 From: lizhiyuan Date: Mon, 29 Aug 2022 23:57:08 +0800 Subject: [PATCH] feat: cdn --- src/widget.cpp | 8 ++++++-- src/widget.h | 2 +- src/workerthreads.cpp | 12 +++++++----- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/widget.cpp b/src/widget.cpp index da22741..877f713 100644 --- a/src/widget.cpp +++ b/src/widget.cpp @@ -292,18 +292,20 @@ void Widget::initConfig() // 读取服务器URL并初始化菜单项的链接 QSettings readConfig(QDir::homePath() + "/.config/spark-store/config.ini", QSettings::IniFormat); - if(!readConfig.value("server/choose").toString().isEmpty()) + if(!readConfig.value("server/choose").toString().isEmpty() && readConfig.value("server/updated").toString() == "TRUE") { ui->comboBox_server->setCurrentText(readConfig.value("server/choose").toString()); appinfoLoadThread.setServer(serverUrl = readConfig.value("server/choose").toString()); } else { - appinfoLoadThread.setServer(serverUrl = "https://d.store.deepinos.org.cn/"); // 默认URL + this->cdnSeverUrl = "https://cdn.d.store.deepinos.org.cn/"; + appinfoLoadThread.setServer(serverUrl = this->cdnSeverUrl); // 默认URL } configCanSave = true; // 防止触发保存配置信号 // menuUrl[0] = "http://127.0.0.1:8000/#/darkprogramming"; + qDebug() << "serverUrl: " << serverUrl; menuUrl[0] = serverUrl + "store/#/"; menuUrl[1] = serverUrl + "store/#/network"; menuUrl[2] = serverUrl + "store/#/relations"; @@ -1026,11 +1028,13 @@ void Widget::on_comboBox_server_currentIndexChanged(const QString &arg1) { appinfoLoadThread.setServer(arg1); // 服务器信息更新 + const QString updatedInfo = "TRUE"; if(configCanSave) { // ui->label_setting1->show(); QSettings *setConfig = new QSettings(QDir::homePath() + "/.config/spark-store/config.ini", QSettings::IniFormat); setConfig->setValue("server/choose", arg1); + setConfig->setValue("server/updated", updatedInfo); } } diff --git a/src/widget.h b/src/widget.h index 05ef95c..254b26c 100644 --- a/src/widget.h +++ b/src/widget.h @@ -43,7 +43,6 @@ class DownloadController; namespace AeaQt { class HttpClient; } - class Widget : public DBlurEffectWidget { Q_OBJECT @@ -105,6 +104,7 @@ private slots: public: QUrl url; + QString cdnSeverUrl; downloadlist download_list[LIST_MAX]; Ui::Widget *ui; diff --git a/src/workerthreads.cpp b/src/workerthreads.cpp index 4e3142d..e0ed466 100644 --- a/src/workerthreads.cpp +++ b/src/workerthreads.cpp @@ -13,10 +13,12 @@ void SpkAppInfoLoaderThread::run() emit requestResetUi(); httpClient = new AeaQt::HttpClient; - + QString oriSeverUrl = "https://d.store.deepinos.org.cn"; + QString cdnSeverUrl = "https://cdn.d.store.deepinos.org.cn"; QString downloadTimesUrl = targetUrl.toString(); - downloadTimesUrl = downloadTimesUrl.replace("app.json","download-times.txt"); + downloadTimesUrl = downloadTimesUrl.replace(oriSeverUrl, cdnSeverUrl); + downloadTimesUrl = downloadTimesUrl.replace("app.json", "download-times.txt"); httpClient->get(downloadTimesUrl) .onResponse([this](QString downloadTimesFeedback) { @@ -33,7 +35,7 @@ void SpkAppInfoLoaderThread::run() .exec(); - httpClient->get(targetUrl.toString()) + httpClient->get(targetUrl.toString().replace(oriSeverUrl, cdnSeverUrl)) .header("content-type", "application/json") .onResponse([this](QByteArray json_array) { @@ -51,8 +53,8 @@ void SpkAppInfoLoaderThread::run() QStringList url_ = targetUrl.toString().replace("//", "/").split("/"); urladdress = "https://" + url_[1]; - // 不使用图片专用服务器 - // urladdress = "https://d.store.deepinos.org.cn"; // 使用图片专用服务器请保留这行,删除后将使用源服务器 + // 使用 cdn 服务器 + urladdress = "https://cdn.d.store.deepinos.org.cn"; // 使用图片专用服务器请保留这行,删除后将使用源服务器 for(int i = 3; i < downloadurl.size(); i++)