!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,
libnotify4,
curl,
openssl,
dde-qt5integration,
bubblewrap,
aria2,

View File

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

View File

@ -14,6 +14,25 @@ void SpkAppInfoLoaderThread::run()
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())
.header("content-type", "application/json")
.onResponse([this](QByteArray json_array)
@ -47,6 +66,7 @@ void SpkAppInfoLoaderThread::run()
QString details;
details = tr("PkgName: ") + json["Pkgname"].toString() + "\n";
details += tr("Version: ") + json["Version"].toString() + "\n";
details += tr("Download Times: ") + this->downdloadTimes + "\n";
if(!json["Author"].toString().trimmed().isEmpty())
{
details += tr("Author: ") + json["Author"].toString() + "\n";

View File

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