[WIP] Initial app backend

This commit is contained in:
2023-12-27 18:14:23 -03:00
parent a25949811b
commit af2e4d34d9
7 changed files with 54 additions and 20 deletions

15
src/Gui/Api/Pleroma.qml Normal file
View File

@@ -0,0 +1,15 @@
import QtQuick
QtObject {
id: pleroma
property string url: ""
function get() {
assert(url)
}
function createApp() {
}
}

28
src/Gui/App.qml Normal file
View File

@@ -0,0 +1,28 @@
pragma Singleton
import QtQuick
import Util
import "Api"
QtObject {
id: app
property var accounts: ([])
property var apis: ({})
function createApp(url) {
// Try *oma, mastodon, misskey
Http.getRequest(
`${url}/api/v1/instance`,
(body) => {
const jsn = JSON.parse(body)
print(`URL: ${url}`)
print(`Version: ${jsn.version}`)
},
(err) => {
console.error(`error: ${err}`)
},
)
}
}

View File

@@ -5,6 +5,7 @@ import QtQml
import Util
import "../PStyle"
import ".."
PStackView {
id: login
@@ -20,21 +21,7 @@ PStackView {
anchors.centerIn: parent
onTryInstance: (instanceUrl) => {
login.push(loadInstance)
Http.getRequest(
`${instanceUrl}/api/v1/instance`,
(body) => {
const json = JSON.parse(body)
print(`Instance name: ${json.title}`)
print(`Instance description: ${json.description}`)
instanceInfo = json
login.replace(infoScreen)
},
(err) => {
print(err)
login.pop()
})
App.createApp(instanceUrl)
}
}
}

View File

@@ -6,16 +6,14 @@ import QtQuick.Controls
import Util
import "Login"
import "PStyle"
import "Settings"
Window {
visible: true
width: 640
height: 480
title: qsTr("QutePleroma")
title: Qt.application.displayName
Component.onCompleted: {
const configDir = Settings.configDir
}
PBackground {

View File

@@ -22,8 +22,8 @@ QtObject {
}
retryCount = 0;
} else {
if (retryCount < maxRetries) {
console.error("Failed to GET " + url + ". Retrying...");
if (Math.floor(xhr.status / 100) == 5 && retryCount < maxRetries) {
console.error("Failed to GET " + url + " (" + xhr.status + "). Retrying...");
retryCount++;
sendRequest(); // Retry the request
} else {

1
src/Gui/qmldir Normal file
View File

@@ -0,0 +1 @@
singleton App 1.0 App.qml

View File

@@ -1,6 +1,8 @@
<RCC>
<qresource prefix="/">
<file alias="Splash.qml">Gui/Splash.qml</file>
<file alias="App.qml">Gui/App.qml</file>
<file alias="qmldir">Gui/qmldir</file>
<!-- util -->
<file alias="Util/Http.qml">Gui/Util/Http.qml</file>
@@ -11,6 +13,9 @@
<file alias="Login/InstanceInput.qml">Gui/Login/InstanceInput.qml</file>
<file alias="Login/LoadingInfo.qml">Gui/Login/LoadingInfo.qml</file>
<!-- api -->
<file alias="Api/Pleroma.qml">Gui/Api/Pleroma.qml</file>
<!-- settings -->
<file alias="Settings/Settings.qml">Gui/Settings/Settings.qml</file>
<file alias="Settings/qmldir">Gui/Settings/qmldir</file>