!103 feat: 下载量统计

* Merge remote-tracking branch 'upstream/master' into dev
* feat: 下载量
* fix: spk 搜索问题
* fix: 修复依赖问题
* feat: 统计下载量
* Merge remote-tracking branch 'upstream/master' into dev
* feat: sender-d
* Merge remote-tracking branch 'upstream/master' into dev
* Merge remote-tracking branch 'upstream/master' into dev
* fix: enhance download speed
* feat: 从所有镜像源中选取最快镜像源高速下载
* Merge remote-tracking branch 'upstream/master' into dev
* fix: 不再使用http头请求文件大小
* Merge remote-tracking branch 'upstream/master' into dev
* feature: metalink backhend
* Merge remote-tracking branch 'upstream/master' into dev
* Merge remote-tracking branch 'upstream/master' into dev
* fix: 忽略系统原有aria2配置文件
* fix: waitforfinished
This commit is contained in:
Pluto 2022-08-29 12:53:49 +00:00 committed by shenmo
parent fcdcd84462
commit 2d2b431df7
4 changed files with 30 additions and 5 deletions

1
debian/control vendored
View File

@ -34,6 +34,7 @@ Depends:${shlibs:Depends}, ${misc:Depends},
libdtkwidget5, libdtkwidget5,
libnotify4, libnotify4,
curl, curl,
openssl,
dde-qt5integration, dde-qt5integration,
bubblewrap, bubblewrap,
aria2, aria2,

View File

@ -94,7 +94,7 @@ Widget::Widget(DBlurEffectWidget *parent) :
connect(searchEdit, &DSearchEdit::returnPressed, this, [=]() connect(searchEdit, &DSearchEdit::returnPressed, this, [=]()
{ {
qDebug() << "触发了搜索,呜啦啦啦!"; qDebug() << "触发了搜索,呜啦啦啦!";
QString searchtext = searchEdit->text(); QString searchtext = searchEdit->text().replace("\r","");
if(!searchtext.isEmpty()) if(!searchtext.isEmpty())
{ {
qDebug() << searchEdit->text(); qDebug() << searchEdit->text();
@ -1308,13 +1308,16 @@ void Widget::on_stackedWidget_currentChanged(int arg1)
void Widget::on_webEngineView_urlChanged(const QUrl &arg1) void Widget::on_webEngineView_urlChanged(const QUrl &arg1)
{ {
//分析出服务器中的分类名称 //分析出服务器中的分类名称
QStringList url_ = arg1.path().split("/"); QStringList url_ = arg1.path().replace("//", "/").split("/");
QString pname; QString pname;
if(url_.size() > 3) qDebug() << "URL size:" << url_.size();
if (url_.size() > 3)
{ {
type_name = url_[2]; type_name = url_[2];
pname = url_[3]; pname = url_[3];
} }
qDebug() << "type_name:" << type_name << ";pname" << pname;
//如果是app.json就打开详情页 //如果是app.json就打开详情页
if(arg1.path().right(8) == "app.json") if(arg1.path().right(8) == "app.json")
{ {
@ -1328,8 +1331,8 @@ void Widget::on_webEngineView_urlChanged(const QUrl &arg1)
ui->label_appname->clear(); ui->label_appname->clear();
ui->pushButton_download->setEnabled(false); ui->pushButton_download->setEnabled(false);
ui->stackedWidget->setCurrentIndex(2); ui->stackedWidget->setCurrentIndex(2);
qDebug() << "https://d.store.deepinos.org.cn/" + type_name + "/" + pname;
qDebug() << "链接地址:" << arg1; qDebug() << "程序跳转链接地址:" << arg1;
/* /*
load.cancel(); // 打开并发加载线程前关闭正在执行的线程 load.cancel(); // 打开并发加载线程前关闭正在执行的线程

View File

@ -14,6 +14,25 @@ void SpkAppInfoLoaderThread::run()
httpClient = new AeaQt::HttpClient; httpClient = new AeaQt::HttpClient;
QString downloadTimesUrl = targetUrl.toString();
downloadTimesUrl = downloadTimesUrl.replace("app.json","download-times.txt");
httpClient->get(downloadTimesUrl)
.onResponse([this](QString downloadTimesFeedback)
{
qDebug() << "请求应用下载量信息 " << downloadTimesFeedback;
this->downdloadTimes = downloadTimesFeedback.replace("\n","");
})
.onError([this](QString errorStr)
{
qDebug() << "请求下载量失败:" << errorStr;
this->downdloadTimes = "0";
})
.block()
.timeout(3*1000)
.exec();
httpClient->get(targetUrl.toString()) httpClient->get(targetUrl.toString())
.header("content-type", "application/json") .header("content-type", "application/json")
.onResponse([this](QByteArray json_array) .onResponse([this](QByteArray json_array)
@ -47,6 +66,7 @@ void SpkAppInfoLoaderThread::run()
QString details; QString details;
details = tr("PkgName: ") + json["Pkgname"].toString() + "\n"; details = tr("PkgName: ") + json["Pkgname"].toString() + "\n";
details += tr("Version: ") + json["Version"].toString() + "\n"; details += tr("Version: ") + json["Version"].toString() + "\n";
details += tr("Download Times: ") + this->downdloadTimes + "\n";
if(!json["Author"].toString().trimmed().isEmpty()) if(!json["Author"].toString().trimmed().isEmpty())
{ {
details += tr("Author: ") + json["Author"].toString() + "\n"; details += tr("Author: ") + json["Author"].toString() + "\n";

View File

@ -23,6 +23,7 @@ protected:
private: private:
QUrl targetUrl; QUrl targetUrl;
QString serverUrl; QString serverUrl;
QString downdloadTimes;
bool finishedDownload = false; bool finishedDownload = false;
int downloaderRetval = 0; int downloaderRetval = 0;