diff options
| author | Petr Mrázek <peterix@gmail.com> | 2021-07-25 19:11:59 +0200 |
|---|---|---|
| committer | Petr Mrázek <peterix@gmail.com> | 2021-07-25 19:50:44 +0200 |
| commit | 20b9f2b42a3b58b6081af271774fbcc34025dccb (patch) | |
| tree | 064fa59facb3357139b47bd4e60bfc8edb35ca11 /api/logic/minecraft/services | |
| parent | dd133680858351e3e07690e286882327a4f42ba5 (diff) | |
| download | PrismLauncher-20b9f2b42a3b58b6081af271774fbcc34025dccb.tar.gz PrismLauncher-20b9f2b42a3b58b6081af271774fbcc34025dccb.tar.bz2 PrismLauncher-20b9f2b42a3b58b6081af271774fbcc34025dccb.zip | |
NOISSUE Flatten gui and logic libraries into MultiMC
Diffstat (limited to 'api/logic/minecraft/services')
| -rw-r--r-- | api/logic/minecraft/services/SkinDelete.cpp | 42 | ||||
| -rw-r--r-- | api/logic/minecraft/services/SkinDelete.h | 30 | ||||
| -rw-r--r-- | api/logic/minecraft/services/SkinUpload.cpp | 66 | ||||
| -rw-r--r-- | api/logic/minecraft/services/SkinUpload.h | 39 |
4 files changed, 0 insertions, 177 deletions
diff --git a/api/logic/minecraft/services/SkinDelete.cpp b/api/logic/minecraft/services/SkinDelete.cpp deleted file mode 100644 index 34977257..00000000 --- a/api/logic/minecraft/services/SkinDelete.cpp +++ /dev/null @@ -1,42 +0,0 @@ -#include "SkinDelete.h" -#include <QNetworkRequest> -#include <QHttpMultiPart> -#include <Env.h> - -SkinDelete::SkinDelete(QObject *parent, AuthSessionPtr session) - : Task(parent), m_session(session) -{ -} - -void SkinDelete::executeTask() -{ - QNetworkRequest request(QUrl("https://api.minecraftservices.com/minecraft/profile/skins/active")); - request.setRawHeader("Authorization", QString("Bearer %1").arg(m_session->access_token).toLocal8Bit()); - QNetworkReply *rep = ENV.qnam().deleteResource(request); - m_reply = std::shared_ptr<QNetworkReply>(rep); - - setStatus(tr("Deleting skin")); - connect(rep, &QNetworkReply::uploadProgress, this, &Task::setProgress); - connect(rep, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(downloadError(QNetworkReply::NetworkError))); - connect(rep, SIGNAL(finished()), this, SLOT(downloadFinished())); -} - -void SkinDelete::downloadError(QNetworkReply::NetworkError error) -{ - // error happened during download. - qCritical() << "Network error: " << error; - emitFailed(m_reply->errorString()); -} - -void SkinDelete::downloadFinished() -{ - // if the download failed - if (m_reply->error() != QNetworkReply::NetworkError::NoError) - { - emitFailed(QString("Network error: %1").arg(m_reply->errorString())); - m_reply.reset(); - return; - } - emitSucceeded(); -} - diff --git a/api/logic/minecraft/services/SkinDelete.h b/api/logic/minecraft/services/SkinDelete.h deleted file mode 100644 index 705ce8ef..00000000 --- a/api/logic/minecraft/services/SkinDelete.h +++ /dev/null @@ -1,30 +0,0 @@ -#pragma once - -#include <QFile> -#include <QtNetwork/QtNetwork> -#include <memory> -#include <minecraft/auth/AuthSession.h> -#include "tasks/Task.h" -#include "multimc_logic_export.h" - -typedef std::shared_ptr<class SkinDelete> SkinDeletePtr; - -class MULTIMC_LOGIC_EXPORT SkinDelete : public Task -{ - Q_OBJECT -public: - SkinDelete(QObject *parent, AuthSessionPtr session); - virtual ~SkinDelete() = default; - -private: - AuthSessionPtr m_session; - std::shared_ptr<QNetworkReply> m_reply; - -protected: - virtual void executeTask(); - -public slots: - void downloadError(QNetworkReply::NetworkError); - void downloadFinished(); -}; - diff --git a/api/logic/minecraft/services/SkinUpload.cpp b/api/logic/minecraft/services/SkinUpload.cpp deleted file mode 100644 index 4e5a1698..00000000 --- a/api/logic/minecraft/services/SkinUpload.cpp +++ /dev/null @@ -1,66 +0,0 @@ -#include "SkinUpload.h" -#include <QNetworkRequest> -#include <QHttpMultiPart> -#include <Env.h> - -QByteArray getVariant(SkinUpload::Model model) { - switch (model) { - default: - qDebug() << "Unknown skin type!"; - case SkinUpload::STEVE: - return "CLASSIC"; - case SkinUpload::ALEX: - return "SLIM"; - } -} - -SkinUpload::SkinUpload(QObject *parent, AuthSessionPtr session, QByteArray skin, SkinUpload::Model model) - : Task(parent), m_model(model), m_skin(skin), m_session(session) -{ -} - -void SkinUpload::executeTask() -{ - QNetworkRequest request(QUrl("https://api.minecraftservices.com/minecraft/profile/skins")); - request.setRawHeader("Authorization", QString("Bearer %1").arg(m_session->access_token).toLocal8Bit()); - QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType); - - QHttpPart skin; - skin.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/png")); - skin.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"file\"; filename=\"skin.png\"")); - skin.setBody(m_skin); - - QHttpPart model; - model.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"variant\"")); - model.setBody(getVariant(m_model)); - - multiPart->append(skin); - multiPart->append(model); - - QNetworkReply *rep = ENV.qnam().post(request, multiPart); - m_reply = std::shared_ptr<QNetworkReply>(rep); - - setStatus(tr("Uploading skin")); - connect(rep, &QNetworkReply::uploadProgress, this, &Task::setProgress); - connect(rep, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(downloadError(QNetworkReply::NetworkError))); - connect(rep, SIGNAL(finished()), this, SLOT(downloadFinished())); -} - -void SkinUpload::downloadError(QNetworkReply::NetworkError error) -{ - // error happened during download. - qCritical() << "Network error: " << error; - emitFailed(m_reply->errorString()); -} - -void SkinUpload::downloadFinished() -{ - // if the download failed - if (m_reply->error() != QNetworkReply::NetworkError::NoError) - { - emitFailed(QString("Network error: %1").arg(m_reply->errorString())); - m_reply.reset(); - return; - } - emitSucceeded(); -} diff --git a/api/logic/minecraft/services/SkinUpload.h b/api/logic/minecraft/services/SkinUpload.h deleted file mode 100644 index c77abb03..00000000 --- a/api/logic/minecraft/services/SkinUpload.h +++ /dev/null @@ -1,39 +0,0 @@ -#pragma once - -#include <QFile> -#include <QtNetwork/QtNetwork> -#include <memory> -#include <minecraft/auth/AuthSession.h> -#include "tasks/Task.h" -#include "multimc_logic_export.h" - -typedef std::shared_ptr<class SkinUpload> SkinUploadPtr; - -class MULTIMC_LOGIC_EXPORT SkinUpload : public Task -{ - Q_OBJECT -public: - enum Model - { - STEVE, - ALEX - }; - - // Note this class takes ownership of the file. - SkinUpload(QObject *parent, AuthSessionPtr session, QByteArray skin, Model model = STEVE); - virtual ~SkinUpload() {} - -private: - Model m_model; - QByteArray m_skin; - AuthSessionPtr m_session; - std::shared_ptr<QNetworkReply> m_reply; -protected: - virtual void executeTask(); - -public slots: - - void downloadError(QNetworkReply::NetworkError); - - void downloadFinished(); -}; |
