Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into metadata2
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
This commit is contained in:
@@ -11,7 +11,7 @@
|
||||
#include "minecraft/auth/Parsers.h"
|
||||
#include "net/Download.h"
|
||||
#include "net/NetJob.h"
|
||||
#include "net/StaticHeaderProxy.h"
|
||||
#include "net/RawHeaderProxy.h"
|
||||
#include "tasks/Task.h"
|
||||
|
||||
EntitlementsStep::EntitlementsStep(AccountData* data) : AuthStep(data) {}
|
||||
@@ -33,7 +33,7 @@ void EntitlementsStep::perform()
|
||||
|
||||
m_response.reset(new QByteArray());
|
||||
m_request = Net::Download::makeByteArray(url, m_response);
|
||||
m_request->addHeaderProxy(new Net::StaticHeaderProxy(headers));
|
||||
m_request->addHeaderProxy(new Net::RawHeaderProxy(headers));
|
||||
|
||||
m_task.reset(new NetJob("EntitlementsStep", APPLICATION->network()));
|
||||
m_task->setAskRetry(false);
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#include "Logging.h"
|
||||
#include "minecraft/auth/Parsers.h"
|
||||
#include "net/NetUtils.h"
|
||||
#include "net/StaticHeaderProxy.h"
|
||||
#include "net/RawHeaderProxy.h"
|
||||
#include "net/Upload.h"
|
||||
|
||||
LauncherLoginStep::LauncherLoginStep(AccountData* data) : AuthStep(data) {}
|
||||
@@ -38,7 +38,7 @@ void LauncherLoginStep::perform()
|
||||
|
||||
m_response.reset(new QByteArray());
|
||||
m_request = Net::Upload::makeByteArray(url, m_response, requestBody.toUtf8());
|
||||
m_request->addHeaderProxy(new Net::StaticHeaderProxy(headers));
|
||||
m_request->addHeaderProxy(new Net::RawHeaderProxy(headers));
|
||||
|
||||
m_task.reset(new NetJob("LauncherLoginStep", APPLICATION->network()));
|
||||
m_task->setAskRetry(false);
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
|
||||
#include "Application.h"
|
||||
#include "Json.h"
|
||||
#include "net/StaticHeaderProxy.h"
|
||||
#include "net/RawHeaderProxy.h"
|
||||
|
||||
// https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-device-code
|
||||
MSADeviceCodeStep::MSADeviceCodeStep(AccountData* data) : AuthStep(data)
|
||||
@@ -68,14 +68,12 @@ void MSADeviceCodeStep::perform()
|
||||
};
|
||||
m_response.reset(new QByteArray());
|
||||
m_request = Net::Upload::makeByteArray(url, m_response, payload);
|
||||
m_request->addHeaderProxy(new Net::StaticHeaderProxy(headers));
|
||||
m_request->addHeaderProxy(new Net::RawHeaderProxy(headers));
|
||||
|
||||
m_task.reset(new NetJob("MSADeviceCodeStep", APPLICATION->network()));
|
||||
m_task->setAskRetry(false);
|
||||
m_task->addNetAction(m_request);
|
||||
|
||||
connect(m_task.get(), &Task::finished, this, &MSADeviceCodeStep::deviceAutorizationFinished);
|
||||
|
||||
m_task->start();
|
||||
}
|
||||
|
||||
@@ -183,7 +181,7 @@ void MSADeviceCodeStep::authenticateUser()
|
||||
};
|
||||
m_response.reset(new QByteArray());
|
||||
m_request = Net::Upload::makeByteArray(url, m_response, payload);
|
||||
m_request->addHeaderProxy(new Net::StaticHeaderProxy(headers));
|
||||
m_request->addHeaderProxy(new Net::RawHeaderProxy(headers));
|
||||
|
||||
connect(m_request.get(), &Task::finished, this, &MSADeviceCodeStep::authenticationFinished);
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include "Application.h"
|
||||
#include "minecraft/auth/Parsers.h"
|
||||
#include "net/NetUtils.h"
|
||||
#include "net/StaticHeaderProxy.h"
|
||||
#include "net/RawHeaderProxy.h"
|
||||
|
||||
MinecraftProfileStep::MinecraftProfileStep(AccountData* data) : AuthStep(data) {}
|
||||
|
||||
@@ -23,7 +23,7 @@ void MinecraftProfileStep::perform()
|
||||
|
||||
m_response.reset(new QByteArray());
|
||||
m_request = Net::Download::makeByteArray(url, m_response);
|
||||
m_request->addHeaderProxy(new Net::StaticHeaderProxy(headers));
|
||||
m_request->addHeaderProxy(new Net::RawHeaderProxy(headers));
|
||||
|
||||
m_task.reset(new NetJob("MinecraftProfileStep", APPLICATION->network()));
|
||||
m_task->setAskRetry(false);
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#include "Logging.h"
|
||||
#include "minecraft/auth/Parsers.h"
|
||||
#include "net/NetUtils.h"
|
||||
#include "net/StaticHeaderProxy.h"
|
||||
#include "net/RawHeaderProxy.h"
|
||||
#include "net/Upload.h"
|
||||
|
||||
XboxAuthorizationStep::XboxAuthorizationStep(AccountData* data, Token* token, QString relyingParty, QString authorizationKind)
|
||||
@@ -43,7 +43,7 @@ void XboxAuthorizationStep::perform()
|
||||
};
|
||||
m_response.reset(new QByteArray());
|
||||
m_request = Net::Upload::makeByteArray(url, m_response, xbox_auth_data.toUtf8());
|
||||
m_request->addHeaderProxy(new Net::StaticHeaderProxy(headers));
|
||||
m_request->addHeaderProxy(new Net::RawHeaderProxy(headers));
|
||||
|
||||
m_task.reset(new NetJob("XboxAuthorizationStep", APPLICATION->network()));
|
||||
m_task->setAskRetry(false);
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#include "Application.h"
|
||||
#include "Logging.h"
|
||||
#include "net/NetUtils.h"
|
||||
#include "net/StaticHeaderProxy.h"
|
||||
#include "net/RawHeaderProxy.h"
|
||||
|
||||
XboxProfileStep::XboxProfileStep(AccountData* data) : AuthStep(data) {}
|
||||
|
||||
@@ -35,7 +35,7 @@ void XboxProfileStep::perform()
|
||||
|
||||
m_response.reset(new QByteArray());
|
||||
m_request = Net::Download::makeByteArray(url, m_response);
|
||||
m_request->addHeaderProxy(new Net::StaticHeaderProxy(headers));
|
||||
m_request->addHeaderProxy(new Net::RawHeaderProxy(headers));
|
||||
|
||||
m_task.reset(new NetJob("XboxProfileStep", APPLICATION->network()));
|
||||
m_task->setAskRetry(false);
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include "Application.h"
|
||||
#include "minecraft/auth/Parsers.h"
|
||||
#include "net/NetUtils.h"
|
||||
#include "net/StaticHeaderProxy.h"
|
||||
#include "net/RawHeaderProxy.h"
|
||||
|
||||
XboxUserStep::XboxUserStep(AccountData* data) : AuthStep(data) {}
|
||||
|
||||
@@ -39,7 +39,7 @@ void XboxUserStep::perform()
|
||||
};
|
||||
m_response.reset(new QByteArray());
|
||||
m_request = Net::Upload::makeByteArray(url, m_response, xbox_auth_data.toUtf8());
|
||||
m_request->addHeaderProxy(new Net::StaticHeaderProxy(headers));
|
||||
m_request->addHeaderProxy(new Net::RawHeaderProxy(headers));
|
||||
|
||||
m_task.reset(new NetJob("XboxUserStep", APPLICATION->network()));
|
||||
m_task->setAskRetry(false);
|
||||
|
||||
@@ -251,7 +251,7 @@ Task* ModFolderModel::createParseTask(Resource& resource)
|
||||
bool ModFolderModel::uninstallMod(const QString& filename, bool preserve_metadata)
|
||||
{
|
||||
for (auto mod : allMods()) {
|
||||
if (mod->fileinfo().fileName() == filename) {
|
||||
if (mod->getOriginalFileName() == filename) {
|
||||
auto index_dir = indexDir();
|
||||
mod->destroy(index_dir, preserve_metadata, false);
|
||||
|
||||
|
||||
@@ -197,3 +197,11 @@ bool Resource::isMoreThanOneHardLink() const
|
||||
{
|
||||
return FS::hardLinkCount(m_file_info.absoluteFilePath()) > 1;
|
||||
}
|
||||
|
||||
auto Resource::getOriginalFileName() const -> QString
|
||||
{
|
||||
auto fileName = m_file_info.fileName();
|
||||
if (!m_enabled)
|
||||
fileName.chop(9);
|
||||
return fileName;
|
||||
}
|
||||
@@ -80,6 +80,7 @@ class Resource : public QObject {
|
||||
[[nodiscard]] auto internal_id() const -> QString { return m_internal_id; }
|
||||
[[nodiscard]] auto type() const -> ResourceType { return m_type; }
|
||||
[[nodiscard]] bool enabled() const { return m_enabled; }
|
||||
[[nodiscard]] auto getOriginalFileName() const -> QString;
|
||||
[[nodiscard]] QString sizeStr() const { return m_size_str; }
|
||||
[[nodiscard]] qint64 sizeInfo() const { return m_size_info; }
|
||||
|
||||
|
||||
@@ -39,9 +39,9 @@
|
||||
#include <memory>
|
||||
|
||||
#include "net/ByteArraySink.h"
|
||||
#include "net/StaticHeaderProxy.h"
|
||||
#include "net/RawHeaderProxy.h"
|
||||
|
||||
CapeChange::CapeChange(QString token, QString cape) : NetRequest(), m_capeId(cape), m_token(token)
|
||||
CapeChange::CapeChange(QString cape) : NetRequest(), m_capeId(cape)
|
||||
{
|
||||
logCat = taskMCSkinsLogC;
|
||||
}
|
||||
@@ -57,18 +57,14 @@ QNetworkReply* CapeChange::getReply(QNetworkRequest& request)
|
||||
}
|
||||
}
|
||||
|
||||
void CapeChange::init()
|
||||
{
|
||||
addHeaderProxy(new Net::StaticHeaderProxy(QList<Net::HeaderPair>{
|
||||
{ "Authorization", QString("Bearer %1").arg(m_token).toLocal8Bit() },
|
||||
}));
|
||||
}
|
||||
|
||||
CapeChange::Ptr CapeChange::make(QString token, QString capeId)
|
||||
{
|
||||
auto up = makeShared<CapeChange>(token, capeId);
|
||||
auto up = makeShared<CapeChange>(capeId);
|
||||
up->m_url = QUrl("https://api.minecraftservices.com/minecraft/profile/capes/active");
|
||||
up->setObjectName(QString("BYTES:") + up->m_url.toString());
|
||||
up->m_sink.reset(new Net::ByteArraySink(std::make_shared<QByteArray>()));
|
||||
up->addHeaderProxy(new Net::RawHeaderProxy(QList<Net::HeaderPair>{
|
||||
{ "Authorization", QString("Bearer %1").arg(token).toLocal8Bit() },
|
||||
}));
|
||||
return up;
|
||||
}
|
||||
|
||||
@@ -24,16 +24,14 @@ class CapeChange : public Net::NetRequest {
|
||||
Q_OBJECT
|
||||
public:
|
||||
using Ptr = shared_qobject_ptr<CapeChange>;
|
||||
CapeChange(QString token, QString capeId);
|
||||
CapeChange(QString capeId);
|
||||
virtual ~CapeChange() = default;
|
||||
|
||||
static CapeChange::Ptr make(QString token, QString capeId);
|
||||
void init() override;
|
||||
|
||||
protected:
|
||||
virtual QNetworkReply* getReply(QNetworkRequest&) override;
|
||||
|
||||
private:
|
||||
QString m_capeId;
|
||||
QString m_token;
|
||||
};
|
||||
|
||||
@@ -37,9 +37,9 @@
|
||||
#include "SkinDelete.h"
|
||||
|
||||
#include "net/ByteArraySink.h"
|
||||
#include "net/StaticHeaderProxy.h"
|
||||
#include "net/RawHeaderProxy.h"
|
||||
|
||||
SkinDelete::SkinDelete(QString token) : NetRequest(), m_token(token)
|
||||
SkinDelete::SkinDelete() : NetRequest()
|
||||
{
|
||||
logCat = taskMCSkinsLogC;
|
||||
}
|
||||
@@ -50,17 +50,13 @@ QNetworkReply* SkinDelete::getReply(QNetworkRequest& request)
|
||||
return m_network->deleteResource(request);
|
||||
}
|
||||
|
||||
void SkinDelete::init()
|
||||
{
|
||||
addHeaderProxy(new Net::StaticHeaderProxy(QList<Net::HeaderPair>{
|
||||
{ "Authorization", QString("Bearer %1").arg(m_token).toLocal8Bit() },
|
||||
}));
|
||||
}
|
||||
|
||||
SkinDelete::Ptr SkinDelete::make(QString token)
|
||||
{
|
||||
auto up = makeShared<SkinDelete>(token);
|
||||
auto up = makeShared<SkinDelete>();
|
||||
up->m_url = QUrl("https://api.minecraftservices.com/minecraft/profile/skins/active");
|
||||
up->m_sink.reset(new Net::ByteArraySink(std::make_shared<QByteArray>()));
|
||||
up->addHeaderProxy(new Net::RawHeaderProxy(QList<Net::HeaderPair>{
|
||||
{ "Authorization", QString("Bearer %1").arg(token).toLocal8Bit() },
|
||||
}));
|
||||
return up;
|
||||
}
|
||||
|
||||
@@ -24,15 +24,11 @@ class SkinDelete : public Net::NetRequest {
|
||||
Q_OBJECT
|
||||
public:
|
||||
using Ptr = shared_qobject_ptr<SkinDelete>;
|
||||
SkinDelete(QString token);
|
||||
SkinDelete();
|
||||
virtual ~SkinDelete() = default;
|
||||
|
||||
static SkinDelete::Ptr make(QString token);
|
||||
void init() override;
|
||||
|
||||
protected:
|
||||
virtual QNetworkReply* getReply(QNetworkRequest&) override;
|
||||
|
||||
private:
|
||||
QString m_token;
|
||||
};
|
||||
|
||||
@@ -40,9 +40,9 @@
|
||||
|
||||
#include "FileSystem.h"
|
||||
#include "net/ByteArraySink.h"
|
||||
#include "net/StaticHeaderProxy.h"
|
||||
#include "net/RawHeaderProxy.h"
|
||||
|
||||
SkinUpload::SkinUpload(QString token, QString path, QString variant) : NetRequest(), m_token(token), m_path(path), m_variant(variant)
|
||||
SkinUpload::SkinUpload(QString path, QString variant) : NetRequest(), m_path(path), m_variant(variant)
|
||||
{
|
||||
logCat = taskMCSkinsLogC;
|
||||
}
|
||||
@@ -67,18 +67,14 @@ QNetworkReply* SkinUpload::getReply(QNetworkRequest& request)
|
||||
return m_network->post(request, multiPart);
|
||||
}
|
||||
|
||||
void SkinUpload::init()
|
||||
{
|
||||
addHeaderProxy(new Net::StaticHeaderProxy(QList<Net::HeaderPair>{
|
||||
{ "Authorization", QString("Bearer %1").arg(m_token).toLocal8Bit() },
|
||||
}));
|
||||
}
|
||||
|
||||
SkinUpload::Ptr SkinUpload::make(QString token, QString path, QString variant)
|
||||
{
|
||||
auto up = makeShared<SkinUpload>(token, path, variant);
|
||||
auto up = makeShared<SkinUpload>(path, variant);
|
||||
up->m_url = QUrl("https://api.minecraftservices.com/minecraft/profile/skins");
|
||||
up->setObjectName(QString("BYTES:") + up->m_url.toString());
|
||||
up->m_sink.reset(new Net::ByteArraySink(std::make_shared<QByteArray>()));
|
||||
up->addHeaderProxy(new Net::RawHeaderProxy(QList<Net::HeaderPair>{
|
||||
{ "Authorization", QString("Bearer %1").arg(token).toLocal8Bit() },
|
||||
}));
|
||||
return up;
|
||||
}
|
||||
|
||||
@@ -26,17 +26,15 @@ class SkinUpload : public Net::NetRequest {
|
||||
using Ptr = shared_qobject_ptr<SkinUpload>;
|
||||
|
||||
// Note this class takes ownership of the file.
|
||||
SkinUpload(QString token, QString path, QString variant);
|
||||
SkinUpload(QString path, QString variant);
|
||||
virtual ~SkinUpload() = default;
|
||||
|
||||
static SkinUpload::Ptr make(QString token, QString path, QString variant);
|
||||
void init() override;
|
||||
|
||||
protected:
|
||||
virtual QNetworkReply* getReply(QNetworkRequest&) override;
|
||||
|
||||
private:
|
||||
QString m_token;
|
||||
QString m_path;
|
||||
QString m_variant;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user