mirror of
https://github.com/redstrate/Astra.git
synced 2025-04-21 20:27:45 +00:00
Add option to configure xiv api server url
This commit is contained in:
parent
8bf02bcd1d
commit
1157f7b1ab
5 changed files with 43 additions and 2 deletions
|
@ -32,6 +32,9 @@ SPDX-License-Identifier: CC0-1.0
|
||||||
<entry name="SquareEnixLoginServer" type="String">
|
<entry name="SquareEnixLoginServer" type="String">
|
||||||
<default>square-enix.com</default>
|
<default>square-enix.com</default>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry name="XivApiServer" type="String">
|
||||||
|
<default>xivapi.com</default>
|
||||||
|
</entry>
|
||||||
<entry name="PreferredProtocol" type="String">
|
<entry name="PreferredProtocol" type="String">
|
||||||
<default>https</default>
|
<default>https</default>
|
||||||
</entry>
|
</entry>
|
||||||
|
|
|
@ -71,6 +71,7 @@ class LauncherCore : public QObject
|
||||||
Q_PROPERTY(QString dalamudDistribServer READ dalamudDistribServer WRITE setDalamudDistribServer NOTIFY dalamudDistribServerChanged)
|
Q_PROPERTY(QString dalamudDistribServer READ dalamudDistribServer WRITE setDalamudDistribServer NOTIFY dalamudDistribServerChanged)
|
||||||
Q_PROPERTY(QString squareEnixServer READ squareEnixServer WRITE setSquareEnixServer NOTIFY squareEnixServerChanged)
|
Q_PROPERTY(QString squareEnixServer READ squareEnixServer WRITE setSquareEnixServer NOTIFY squareEnixServerChanged)
|
||||||
Q_PROPERTY(QString squareEnixLoginServer READ squareEnixLoginServer WRITE setSquareEnixLoginServer NOTIFY squareEnixLoginServerChanged)
|
Q_PROPERTY(QString squareEnixLoginServer READ squareEnixLoginServer WRITE setSquareEnixLoginServer NOTIFY squareEnixLoginServerChanged)
|
||||||
|
Q_PROPERTY(QString xivApiServer READ xivApiServer WRITE setXivApiServer NOTIFY xivApiServerChanged)
|
||||||
Q_PROPERTY(QString preferredProtocol READ preferredProtocol WRITE setPreferredProtocol NOTIFY preferredProtocolChanged)
|
Q_PROPERTY(QString preferredProtocol READ preferredProtocol WRITE setPreferredProtocol NOTIFY preferredProtocolChanged)
|
||||||
Q_PROPERTY(bool argumentsEncrypted READ argumentsEncrypted WRITE setArgumentsEncrypted NOTIFY encryptedArgumentsChanged)
|
Q_PROPERTY(bool argumentsEncrypted READ argumentsEncrypted WRITE setArgumentsEncrypted NOTIFY encryptedArgumentsChanged)
|
||||||
Q_PROPERTY(Headline *headline READ headline NOTIFY newsChanged)
|
Q_PROPERTY(Headline *headline READ headline NOTIFY newsChanged)
|
||||||
|
@ -143,6 +144,9 @@ public:
|
||||||
[[nodiscard]] QString squareEnixLoginServer() const;
|
[[nodiscard]] QString squareEnixLoginServer() const;
|
||||||
void setSquareEnixLoginServer(const QString &value);
|
void setSquareEnixLoginServer(const QString &value);
|
||||||
|
|
||||||
|
[[nodiscard]] QString xivApiServer() const;
|
||||||
|
void setXivApiServer(const QString &value);
|
||||||
|
|
||||||
[[nodiscard]] QString preferredProtocol() const;
|
[[nodiscard]] QString preferredProtocol() const;
|
||||||
void setPreferredProtocol(const QString &value);
|
void setPreferredProtocol(const QString &value);
|
||||||
|
|
||||||
|
@ -185,6 +189,7 @@ signals:
|
||||||
void dalamudDistribServerChanged();
|
void dalamudDistribServerChanged();
|
||||||
void squareEnixServerChanged();
|
void squareEnixServerChanged();
|
||||||
void squareEnixLoginServerChanged();
|
void squareEnixLoginServerChanged();
|
||||||
|
void xivApiServerChanged();
|
||||||
void preferredProtocolChanged();
|
void preferredProtocolChanged();
|
||||||
void encryptedArgumentsChanged();
|
void encryptedArgumentsChanged();
|
||||||
void loginError(QString message);
|
void loginError(QString message);
|
||||||
|
|
|
@ -227,7 +227,13 @@ void Account::fetchAvatar()
|
||||||
const QString filename(QStringLiteral("%1/%2.jpg").arg(cacheLocation, lodestoneId()));
|
const QString filename(QStringLiteral("%1/%2.jpg").arg(cacheLocation, lodestoneId()));
|
||||||
if (!QFile(filename).exists()) {
|
if (!QFile(filename).exists()) {
|
||||||
qDebug() << "Did not find lodestone character " << lodestoneId() << " in cache, fetching from xivapi.";
|
qDebug() << "Did not find lodestone character " << lodestoneId() << " in cache, fetching from xivapi.";
|
||||||
QNetworkRequest request(QStringLiteral("https://xivapi.com/character/%1").arg(lodestoneId()));
|
|
||||||
|
QUrl url;
|
||||||
|
url.setScheme(m_launcher.preferredProtocol());
|
||||||
|
url.setHost(m_launcher.xivApiServer());
|
||||||
|
url.setPath(QStringLiteral("/character/%1").arg(lodestoneId()));
|
||||||
|
|
||||||
|
QNetworkRequest request(url);
|
||||||
const auto reply = m_launcher.mgr->get(request);
|
const auto reply = m_launcher.mgr->get(request);
|
||||||
connect(reply, &QNetworkReply::finished, [this, filename, reply] {
|
connect(reply, &QNetworkReply::finished, [this, filename, reply] {
|
||||||
auto document = QJsonDocument::fromJson(reply->readAll());
|
auto document = QJsonDocument::fromJson(reply->readAll());
|
||||||
|
|
|
@ -597,6 +597,20 @@ void LauncherCore::setSquareEnixLoginServer(const QString &value)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString LauncherCore::xivApiServer() const
|
||||||
|
{
|
||||||
|
return Config::xivApiServer();
|
||||||
|
}
|
||||||
|
|
||||||
|
void LauncherCore::setXivApiServer(const QString &value)
|
||||||
|
{
|
||||||
|
if (value != Config::xivApiServer()) {
|
||||||
|
Config::setXivApiServer(value);
|
||||||
|
Config::self()->save();
|
||||||
|
Q_EMIT xivApiServerChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
QString LauncherCore::preferredProtocol() const
|
QString LauncherCore::preferredProtocol() const
|
||||||
{
|
{
|
||||||
return Config::preferredProtocol();
|
return Config::preferredProtocol();
|
||||||
|
|
|
@ -27,7 +27,7 @@ FormCard.FormCardPage {
|
||||||
id: keepPatchesDelegate
|
id: keepPatchesDelegate
|
||||||
|
|
||||||
text: i18n("Keep Patches")
|
text: i18n("Keep Patches")
|
||||||
description: i18n("Do not delete patches after they're used. Astra will not redownload patch data, if found.")
|
description: i18n("Do not delete patches after they're used. Astra will not download patch data, if found.")
|
||||||
checked: LauncherCore.keepPatches
|
checked: LauncherCore.keepPatches
|
||||||
onCheckedChanged: LauncherCore.keepPatches = checked
|
onCheckedChanged: LauncherCore.keepPatches = checked
|
||||||
}
|
}
|
||||||
|
@ -102,5 +102,18 @@ FormCard.FormCardPage {
|
||||||
text: LauncherCore.squareEnixLoginServer
|
text: LauncherCore.squareEnixLoginServer
|
||||||
onTextChanged: LauncherCore.squareEnixLoginServer = text
|
onTextChanged: LauncherCore.squareEnixLoginServer = text
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FormCard.FormDelegateSeparator {
|
||||||
|
above: loginServerDelegate
|
||||||
|
below: xivApiServerDelegate
|
||||||
|
}
|
||||||
|
|
||||||
|
FormCard.FormTextFieldDelegate {
|
||||||
|
id: xivApiServerDelegate
|
||||||
|
|
||||||
|
label: i18n("XIV Api Server")
|
||||||
|
text: LauncherCore.xivApiServer
|
||||||
|
onTextChanged: LauncherCore.xivApiServer = text
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Add table
Reference in a new issue