diff --git a/src/downloadworker.cpp b/src/downloadworker.cpp index 460fb1d..0b33d35 100644 --- a/src/downloadworker.cpp +++ b/src/downloadworker.cpp @@ -1,14 +1,8 @@ #include "downloadworker.h" #include -#include -#include -#include -#include #include #include -#include #include -#include #include DownloadController::DownloadController(QObject *parent) @@ -36,13 +30,6 @@ void DownloadController::setFilename(QString filename) this->filename = filename; } -void timeSleeper(int time) -{ - QElapsedTimer t1; - t1.start(); - while(t1.elapsed()readAllStandardOutput().data(); - //qDebug() << message; - message = message.replace(" ", "").replace("\n", "").replace("-", ""); - message = message.replace("*", "").replace("=", ""); + // qDebug() << message; + message = message.replace(" ", ""); QStringList list; qint64 downloadSize = 0; int downloadSizePlace1 = message.indexOf("("); @@ -174,10 +159,10 @@ void DownloadController::startDownload(const QString &url) { int percentInfoNumber = percentInfo.toUInt(); - downloadSize = (percentInfoNumber + 1) * fileSize / 100; + downloadSize = percentInfoNumber * fileSize / 100; } } - if (speedPlace1 != -1 && speedPlace2 != -1) + if (speedPlace1 != -1 && speedPlace2 != -1 && speedPlace2 - speedPlace1 <= 15) { speedInfo = message.mid(speedPlace1 + 3, speedPlace2 - speedPlace1 - 3); speedInfo += "/s"; @@ -227,30 +212,8 @@ void DownloadController::stopDownload() qint64 DownloadController::getFileSize(const QString &url) { - QEventLoop event; - QNetworkAccessManager requestManager; - QNetworkRequest request; - request.setUrl(QUrl(url)); - request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); - QNetworkReply *reply = requestManager.head(request); - connect(reply, static_cast(&QNetworkReply::error), - [this, reply](QNetworkReply::NetworkError error) - { - if (error != QNetworkReply::NoError) - { - emit errorOccur(reply->errorString()); - } - }); - connect(reply, &QNetworkReply::finished, &event, &QEventLoop::quit); - event.exec(); - - qint64 fileSize = 0; - if (reply->rawHeader("Accept-Ranges") == QByteArrayLiteral("bytes") && reply->hasRawHeader(QString("Content-Length").toLocal8Bit())) - { - fileSize = reply->header(QNetworkRequest::ContentLengthHeader).toUInt(); - } - qDebug() << "文件大小为:" << fileSize; - reply->deleteLater(); + // 已经无需使用 qtnetwork 再获取 filesize,完全交给 aria2 来计算进度。 为保证兼容性,故保留此函数。 + qint64 fileSize = 10000; return fileSize; }