[WIP] Initial app backend
This commit is contained in:
15
src/Gui/Api/Pleroma.qml
Normal file
15
src/Gui/Api/Pleroma.qml
Normal 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
28
src/Gui/App.qml
Normal 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}`)
|
||||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
1
src/Gui/qmldir
Normal file
@@ -0,0 +1 @@
|
||||
singleton App 1.0 App.qml
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user