1
Fork 0
mirror of https://github.com/redstrate/Astra.git synced 2025-04-22 04:37:46 +00:00

When using a mac license, use the proper mac client user agents

This commit is contained in:
Joshua Goins 2022-03-16 15:03:35 -04:00
parent 65d46aa5c9
commit a87e6ea271
6 changed files with 24 additions and 11 deletions

View file

@ -116,7 +116,7 @@ public:
*/
void launchExecutable(const ProfileSettings& settings, QProcess* process, QStringList args);
void buildRequest(QNetworkRequest& request);
void buildRequest(const ProfileSettings& settings, QNetworkRequest& request);
void setSSL(QNetworkRequest& request);
QString readVersion(QString path);
void readInitialInformation();

View file

@ -23,7 +23,8 @@ void getHeadline(LauncherCore& core, std::function<void(Headline)> return_func)
auto request = QNetworkRequest(QString("%1&%2").arg(url.toString(), QString::number(QDateTime::currentMSecsSinceEpoch())));
core.buildRequest(request);
// TODO: really?
core.buildRequest(core.getProfile(core.defaultProfileIndex), request);
qInfo() << request.url();
request.setRawHeader("Accept", "application/json, text/plain, */*");

View file

@ -48,17 +48,22 @@ void LauncherCore::setSSL(QNetworkRequest& request) {
request.setSslConfiguration(config);
}
void LauncherCore::buildRequest(QNetworkRequest& request) {
void LauncherCore::buildRequest(const ProfileSettings& settings, QNetworkRequest& request) {
setSSL(request);
if(settings.license == GameLicense::macOS) {
request.setHeader(QNetworkRequest::UserAgentHeader, "macSQEXAuthor/2.0.0(MacOSX; ja-jp)");
} else {
request.setHeader(QNetworkRequest::UserAgentHeader,
QString("SQEXAuthor/2.0.0(Windows 6.2; ja-jp; %1)").arg(QString(QSysInfo::bootUniqueId())));
}
request.setRawHeader("Accept",
"image/gif, image/jpeg, image/pjpeg, application/x-ms-application, application/xaml+xml, application/x-ms-xbap, */*");
request.setRawHeader("Accept-Encoding", "gzip, deflate");
request.setRawHeader("Accept-Language", "en-us");
}
void LauncherCore::launchGame(const ProfileSettings& profile, const LoginAuth auth) {
QList<QString> arguments;

View file

@ -212,7 +212,7 @@ LauncherWindow::LauncherWindow(LauncherCore& core, QWidget* parent) : QMainWindo
if(!headline.banner.empty()) {
auto request = QNetworkRequest(headline.banner[0].bannerImage);
core.buildRequest(request);
core.buildRequest(currentProfile(), request);
auto reply = core.mgr->get(request);
connect(reply, &QNetworkReply::finished, [=] {

View file

@ -22,7 +22,12 @@ void SquareBoot::bootCheck(LoginInformation& info) {
url.setQuery(query);
auto request = QNetworkRequest(url);
if(info.settings->license == GameLicense::macOS) {
request.setRawHeader("User-Agent", "FFXIV-MAC PATCH CLIENT");
} else {
request.setRawHeader("User-Agent", "FFXIV PATCH CLIENT");
}
request.setRawHeader("Host", "patch-bootver.ffxiv.com");
auto reply = window.mgr->get(request);

View file

@ -54,7 +54,7 @@ void SquareLauncher::getStored(const LoginInformation& info) {
url.setQuery(query);
auto request = QNetworkRequest(url);
window.buildRequest(request);
window.buildRequest(*info.settings, request);
QNetworkReply* reply = window.mgr->get(request);
@ -96,7 +96,7 @@ void SquareLauncher::login(const LoginInformation& info, const QUrl referer) {
postData.addQueryItem("otppw", info.oneTimePassword);
QNetworkRequest request(QUrl("https://ffxiv-login.square-enix.com/oauth/ffxivarr/login/login.send"));
window.buildRequest(request);
window.buildRequest(*info.settings, request);
request.setHeader(QNetworkRequest::ContentTypeHeader,"application/x-www-form-urlencoded");
request.setRawHeader("Referer", referer.toEncoded());
request.setRawHeader("Cache-Control", "no-cache");
@ -229,7 +229,9 @@ void SquareLauncher::gateOpen() {
QNetworkRequest request;
request.setUrl(url);
window.buildRequest(request);
// TODO: really?
window.buildRequest(window.getProfile(window.defaultProfileIndex), request);
auto reply = window.mgr->get(request);
connect(reply, &QNetworkReply::finished, [this, reply] {