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">
|
||||
<default>square-enix.com</default>
|
||||
</entry>
|
||||
<entry name="XivApiServer" type="String">
|
||||
<default>xivapi.com</default>
|
||||
</entry>
|
||||
<entry name="PreferredProtocol" type="String">
|
||||
<default>https</default>
|
||||
</entry>
|
||||
|
|
|
@ -71,6 +71,7 @@ class LauncherCore : public QObject
|
|||
Q_PROPERTY(QString dalamudDistribServer READ dalamudDistribServer WRITE setDalamudDistribServer NOTIFY dalamudDistribServerChanged)
|
||||
Q_PROPERTY(QString squareEnixServer READ squareEnixServer WRITE setSquareEnixServer NOTIFY squareEnixServerChanged)
|
||||
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(bool argumentsEncrypted READ argumentsEncrypted WRITE setArgumentsEncrypted NOTIFY encryptedArgumentsChanged)
|
||||
Q_PROPERTY(Headline *headline READ headline NOTIFY newsChanged)
|
||||
|
@ -143,6 +144,9 @@ public:
|
|||
[[nodiscard]] QString squareEnixLoginServer() const;
|
||||
void setSquareEnixLoginServer(const QString &value);
|
||||
|
||||
[[nodiscard]] QString xivApiServer() const;
|
||||
void setXivApiServer(const QString &value);
|
||||
|
||||
[[nodiscard]] QString preferredProtocol() const;
|
||||
void setPreferredProtocol(const QString &value);
|
||||
|
||||
|
@ -185,6 +189,7 @@ signals:
|
|||
void dalamudDistribServerChanged();
|
||||
void squareEnixServerChanged();
|
||||
void squareEnixLoginServerChanged();
|
||||
void xivApiServerChanged();
|
||||
void preferredProtocolChanged();
|
||||
void encryptedArgumentsChanged();
|
||||
void loginError(QString message);
|
||||
|
|
|
@ -227,7 +227,13 @@ void Account::fetchAvatar()
|
|||
const QString filename(QStringLiteral("%1/%2.jpg").arg(cacheLocation, lodestoneId()));
|
||||
if (!QFile(filename).exists()) {
|
||||
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);
|
||||
connect(reply, &QNetworkReply::finished, [this, filename, reply] {
|
||||
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
|
||||
{
|
||||
return Config::preferredProtocol();
|
||||
|
|
|
@ -27,7 +27,7 @@ FormCard.FormCardPage {
|
|||
id: keepPatchesDelegate
|
||||
|
||||
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
|
||||
onCheckedChanged: LauncherCore.keepPatches = checked
|
||||
}
|
||||
|
@ -102,5 +102,18 @@ FormCard.FormCardPage {
|
|||
text: LauncherCore.squareEnixLoginServer
|
||||
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