Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into validate_metadata
This commit is contained in:
@@ -18,47 +18,29 @@
|
||||
*/
|
||||
|
||||
#include "net/ApiDownload.h"
|
||||
#include "ByteArraySink.h"
|
||||
#include "ChecksumValidator.h"
|
||||
#include "MetaCacheSink.h"
|
||||
#include "net/ApiHeaderProxy.h"
|
||||
|
||||
namespace Net {
|
||||
|
||||
auto ApiDownload::makeCached(QUrl url, MetaEntryPtr entry, Options options) -> Download::Ptr
|
||||
Download::Ptr ApiDownload::makeCached(QUrl url, MetaEntryPtr entry, Download::Options options)
|
||||
{
|
||||
auto dl = makeShared<ApiDownload>();
|
||||
dl->m_url = url;
|
||||
dl->setObjectName(QString("CACHE:") + url.toString());
|
||||
dl->m_options = options;
|
||||
auto md5Node = new ChecksumValidator(QCryptographicHash::Md5);
|
||||
auto cachedNode = new MetaCacheSink(entry, md5Node, options.testFlag(Option::MakeEternal));
|
||||
dl->m_sink.reset(cachedNode);
|
||||
auto dl = Download::makeCached(url, entry, options);
|
||||
dl->addHeaderProxy(new ApiHeaderProxy());
|
||||
return dl;
|
||||
}
|
||||
|
||||
auto ApiDownload::makeByteArray(QUrl url, std::shared_ptr<QByteArray> output, Options options) -> Download::Ptr
|
||||
Download::Ptr ApiDownload::makeByteArray(QUrl url, std::shared_ptr<QByteArray> output, Download::Options options)
|
||||
{
|
||||
auto dl = makeShared<ApiDownload>();
|
||||
dl->m_url = url;
|
||||
dl->setObjectName(QString("BYTES:") + url.toString());
|
||||
dl->m_options = options;
|
||||
dl->m_sink.reset(new ByteArraySink(output));
|
||||
auto dl = Download::makeByteArray(url, output, options);
|
||||
dl->addHeaderProxy(new ApiHeaderProxy());
|
||||
return dl;
|
||||
}
|
||||
|
||||
auto ApiDownload::makeFile(QUrl url, QString path, Options options) -> Download::Ptr
|
||||
Download::Ptr ApiDownload::makeFile(QUrl url, QString path, Download::Options options)
|
||||
{
|
||||
auto dl = makeShared<ApiDownload>();
|
||||
dl->m_url = url;
|
||||
dl->setObjectName(QString("FILE:") + url.toString());
|
||||
dl->m_options = options;
|
||||
dl->m_sink.reset(new FileSink(path));
|
||||
auto dl = Download::makeFile(url, path, options);
|
||||
dl->addHeaderProxy(new ApiHeaderProxy());
|
||||
return dl;
|
||||
}
|
||||
|
||||
void ApiDownload::init()
|
||||
{
|
||||
auto api_headers = new ApiHeaderProxy();
|
||||
addHeaderProxy(api_headers);
|
||||
}
|
||||
} // namespace Net
|
||||
|
||||
@@ -19,20 +19,14 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "ApiHeaderProxy.h"
|
||||
#include "Download.h"
|
||||
|
||||
namespace Net {
|
||||
|
||||
class ApiDownload : public Download {
|
||||
public:
|
||||
virtual ~ApiDownload() = default;
|
||||
|
||||
static auto makeCached(QUrl url, MetaEntryPtr entry, Options options = Option::NoOptions) -> Download::Ptr;
|
||||
static auto makeByteArray(QUrl url, std::shared_ptr<QByteArray> output, Options options = Option::NoOptions) -> Download::Ptr;
|
||||
static auto makeFile(QUrl url, QString path, Options options = Option::NoOptions) -> Download::Ptr;
|
||||
|
||||
void init() override;
|
||||
};
|
||||
namespace ApiDownload {
|
||||
Download::Ptr makeCached(QUrl url, MetaEntryPtr entry, Download::Options options = Download::Option::NoOptions);
|
||||
Download::Ptr makeByteArray(QUrl url, std::shared_ptr<QByteArray> output, Download::Options options = Download::Option::NoOptions);
|
||||
Download::Ptr makeFile(QUrl url, QString path, Download::Options options = Download::Option::NoOptions);
|
||||
}; // namespace ApiDownload
|
||||
|
||||
} // namespace Net
|
||||
|
||||
@@ -18,22 +18,15 @@
|
||||
*/
|
||||
|
||||
#include "net/ApiUpload.h"
|
||||
#include "ByteArraySink.h"
|
||||
#include "net/ApiHeaderProxy.h"
|
||||
|
||||
namespace Net {
|
||||
|
||||
Upload::Ptr ApiUpload::makeByteArray(QUrl url, std::shared_ptr<QByteArray> output, QByteArray m_post_data)
|
||||
{
|
||||
auto up = makeShared<ApiUpload>();
|
||||
up->m_url = std::move(url);
|
||||
up->m_sink.reset(new ByteArraySink(output));
|
||||
up->m_post_data = std::move(m_post_data);
|
||||
auto up = Upload::makeByteArray(url, output, m_post_data);
|
||||
up->addHeaderProxy(new ApiHeaderProxy());
|
||||
return up;
|
||||
}
|
||||
|
||||
void ApiUpload::init()
|
||||
{
|
||||
auto api_headers = new ApiHeaderProxy();
|
||||
addHeaderProxy(api_headers);
|
||||
}
|
||||
} // namespace Net
|
||||
|
||||
@@ -19,18 +19,12 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "ApiHeaderProxy.h"
|
||||
#include "Upload.h"
|
||||
|
||||
namespace Net {
|
||||
|
||||
class ApiUpload : public Upload {
|
||||
public:
|
||||
virtual ~ApiUpload() = default;
|
||||
|
||||
static Upload::Ptr makeByteArray(QUrl url, std::shared_ptr<QByteArray> output, QByteArray m_post_data);
|
||||
|
||||
void init() override;
|
||||
namespace ApiUpload {
|
||||
Upload::Ptr makeByteArray(QUrl url, std::shared_ptr<QByteArray> output, QByteArray m_post_data);
|
||||
};
|
||||
|
||||
} // namespace Net
|
||||
|
||||
@@ -62,8 +62,6 @@ void NetRequest::addValidator(Validator* v)
|
||||
|
||||
void NetRequest::executeTask()
|
||||
{
|
||||
init();
|
||||
|
||||
setStatus(tr("Requesting %1").arg(StringUtils::truncateUrlHumanFriendly(m_url, 80)));
|
||||
|
||||
if (getState() == Task::State::AbortedByUser) {
|
||||
|
||||
@@ -72,8 +72,6 @@ class NetRequest : public Task {
|
||||
void setNetwork(shared_qobject_ptr<QNetworkAccessManager> network) { m_network = network; }
|
||||
void addHeaderProxy(Net::HeaderProxy* proxy) { m_headerProxies.push_back(std::shared_ptr<Net::HeaderProxy>(proxy)); }
|
||||
|
||||
virtual void init() {}
|
||||
|
||||
QUrl url() const;
|
||||
void setUrl(QUrl url) { m_url = url; }
|
||||
int replyStatusCode() const;
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
* Copyright (c) 2022 flowln <flowlnlnln@gmail.com>
|
||||
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
|
||||
* Copyright (C) 2023 Rachel Powers <508861+Ryex@users.noreply.github.com>
|
||||
* Copyright (c) 2023 Trial97 <alexandru.tripon97@gmail.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@@ -27,7 +28,7 @@ namespace Net {
|
||||
|
||||
class RawHeaderProxy : public HeaderProxy {
|
||||
public:
|
||||
RawHeaderProxy() : HeaderProxy() {}
|
||||
RawHeaderProxy(QList<HeaderPair> headers = {}) : HeaderProxy(), m_headers(std::move(headers)) {};
|
||||
virtual ~RawHeaderProxy() = default;
|
||||
|
||||
public:
|
||||
@@ -36,6 +37,7 @@ class RawHeaderProxy : public HeaderProxy {
|
||||
void addHeader(const HeaderPair& header) { m_headers.append(header); }
|
||||
void addHeader(const QByteArray& headerName, const QByteArray& headerValue) { m_headers.append({ headerName, headerValue }); }
|
||||
void addHeaders(const QList<HeaderPair>& headers) { m_headers.append(headers); }
|
||||
void setHeaders(QList<HeaderPair> headers) { m_headers = headers; };
|
||||
|
||||
private:
|
||||
QList<HeaderPair> m_headers;
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
// SPDX-License-Identifier: GPL-3.0-only
|
||||
/*
|
||||
* Prism Launcher - Minecraft Launcher
|
||||
* Copyright (c) 2023 Trial97 <alexandru.tripon97@gmail.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "net/HeaderProxy.h"
|
||||
|
||||
namespace Net {
|
||||
|
||||
class StaticHeaderProxy : public HeaderProxy {
|
||||
public:
|
||||
StaticHeaderProxy(QList<HeaderPair> hdrs = {}) : HeaderProxy(), m_hdrs(hdrs) {};
|
||||
virtual ~StaticHeaderProxy() = default;
|
||||
|
||||
public:
|
||||
virtual QList<HeaderPair> headers(const QNetworkRequest&) const override { return m_hdrs; };
|
||||
void setHeaders(QList<HeaderPair> hdrs) { m_hdrs = hdrs; };
|
||||
|
||||
private:
|
||||
QList<HeaderPair> m_hdrs;
|
||||
};
|
||||
|
||||
} // namespace Net
|
||||
Reference in New Issue
Block a user