Compare commits

...

3 Commits

Author SHA1 Message Date
Niels
a50dda245f Language management 2025-06-12 19:51:55 +02:00
Niels
ed8dcd979c Bump version to 2.0.20 2025-06-12 19:51:30 +02:00
Niels
3c7f0bd111 Failower attempt when radio servers are unstable 2025-06-12 19:51:09 +02:00
17 changed files with 502 additions and 312 deletions

View File

@ -9,7 +9,7 @@ import "helpers"
ApplicationWindow
{
id: allRadio
property string _version: "2.0.19"
property string _version: "2.0.20"
property string _language: Qt.locale().name.slice(0,2)
property string _country: Qt.locale().name.slice(-2)
property int sleepTime: 0

View File

@ -20,6 +20,7 @@ Item {
property string _useragent: "AllRadio/2.0.0 (test) (SailfishOS; Linux) nesnomis@gmail.com"
property int _tags: 0
property int _countries: 0
property int _c: 0
// Properties to be used in application -------------------------------------------------
property ListModel serversModel : ListModel { id: serversModel }
property ListModel votedModel : ListModel {id: votedModel}
@ -34,9 +35,44 @@ Item {
//property int viewTagCount: tagsModel.maxCount
property int countryCount: 0
property bool loading: stationCount !== 0 && tagCount !== 0 && countryCount !== 0 ? false : true
property string lookup: "http://all.api.radio-browser.info/json/servers"
property int serverIndex: 0
property int connectIndex: -1
property string lookup: sModel.get(serverIndex).url //"http://fi2.api.radio-browser.info/json/servers"
// ---------------------------------------------------------------------------------------
Timer {
id: sTimer
interval: 2000; running: false; repeat: false
onTriggered: {
if (serverIndex < sModel.count-1) serverIndex = serverIndex + 1; else serverIndex = 0
getList()
}
}
//onServerIndexChanged: console.log(" ******* LOOKUP ******** ")+serverIndex
ListModel {
id: sModel
ListElement {
name: "all.api.radio-browser.info"
url: "http://all.api.radio-browser.info/json/servers"
}
ListElement {
name: "de1.api.radio-browser.info"
url: "http://de1.api.radio-browser.info/json/servers"
}
ListElement {
name: "de2.api.radio-browser.info"
url: "http://de2.api.radio-browser.info/json/servers"
}
ListElement {
name: "fi1.api.radio-browser.info"
url: "http://fi1.api.radio-browser.info/json/servers"
}
ListElement {
name: "fi3.api.radio-browser.info"
url: "http://fi3.api.radio-browser.info/json/servers"
}
}
onOnlineChanged: {
if (online && serverUrl !== "") {
@ -54,12 +90,12 @@ Item {
} */
// Choose a random server from available servers
function getRandom() {
function getRandom(url) {
if (serversModel.count > 0) {
var random = Math.floor((Math.random() * serversModel.count) + 1) - 1
serverUrl = serversModel.get(random).serverUrl
server = serversModel.get(random).server
if (serverUrl.length > 7) getStats(); else getRandom();
if (serverUrl.length > 7 && url !== serverUrl) {sTimer.running=false;getStats();} else getRandom();
}
}
@ -68,14 +104,24 @@ Item {
var req = new XMLHttpRequest();
req.onreadystatechange = function () {
if (req.readyState === 4 && req.status < 300) {
var obj = JSON.parse(req.responseText)
serversModel.clear()
for (var key in obj) {
addIfNotExist(obj[key])
}
getRandom()
} else if (req.readyState === 4 && req.status > 299) {lookup="http://de2.api.radio-browser.info/json/servers";getList();}
sTimer.running = false
//console.log(" *** lookup *** "+serverIndex+": "+lookup)
getRandom(lookup)
} else if (req.readyState === 4 && req.status > 299) {
if (serverIndex < sModel.count-1) serverIndex=serverIndex+1; else serverIndex=0;
lookup=sModel.get(serverIndex).url
//console.log(" *** lookup *** "+serverIndex+": "+lookup)
getList();
}
};
sTimer.running = true
//console.log(" *** START : "+lookup)
req.open("get", lookup);
req.setRequestHeader('User-Agent',_useragent);
req.send();

View File

@ -7,9 +7,10 @@ Column {
id: column
spacing: Theme.paddingMedium
anchors.centerIn: parent
property QDtimer timer: QDtimer {
Timer {
id: spTimer
interval: 10000; running: visible ? true : false; repeat: false
onTriggered: radioBrowser.getRandom(radioBrowser.serverUrl)
}
Image {
@ -27,11 +28,13 @@ Column {
}
BusyLabel {
width: parent.width
text: radioBrowser.serversModel.count > 0 ? qsTr("Found")+": "+radioBrowser.serversModel.count + " "+qsTr("servers") : qsTr("Searching servers")
running: radioBrowser.serversModel.count < 1
anchors.horizontalCenter: parent.horizontalCenter
}
BusyLabel {
width: parent.width
visible: radioBrowser.serversModel.count > 0
running: visible
text: qsTr("Connecting")
@ -44,12 +47,12 @@ Column {
color: Theme.highlightColor
anchors.horizontalCenter: parent.horizontalCenter
}
Button {
/* Button {
visible: radioBrowser.serversModel.count > 1 && !spTimer.running
anchors.topMargin: Theme.paddingLarge
text: qsTr("Try another server")
onClicked: radioBrowser.getRandom()
onClicked: radioBrowser.getRandom(radioBrowser.serverUrl)
anchors.horizontalCenter: parent.horizontalCenter
}
} */
}

View File

@ -1,4 +1,5 @@
import QtQuick 2.0
import QtQml 2.2
import Sailfish.Silica 1.0
import QtQuick.LocalStorage 2.0
import QtGraphicalEffects 1.0
@ -42,6 +43,50 @@ Dialog {
MenuItem { text: qsTr("Random favorite") }
}
}
Label {
anchors.right: parent.right
anchors.rightMargin: Theme.paddingLarge
color: Theme.highlightColor
font.pixelSize: Theme.fontSizeLarge
text: qsTr("Server settings")
}
Separator {
anchors.left: parent.left
anchors.right: parent.right
anchors.rightMargin: Theme.paddingMedium
color: Theme.highlightColor
}
ComboBox {
id: serverL
width: parent.width
label: qsTr("Server")
anchors.margins: Theme.paddingLarge
description: qsTr("Select anohter server")
//currentIndex: Favorites.getSetting("appStart",0)
menu : ContextMenu {
id: contextMenu
Column {
Repeater {
model: radioBrowser.serversModel
delegate: QtObject {
property Item child: MenuItem {
text: modelData
onClicked: console.log("***")
}
}
}
}
}
/* menu: ContextMenu {
MenuItem { text: qsTr("None") }
MenuItem { text: qsTr("Last played") }
MenuItem { text: qsTr("Random favorite") }
}*/
}
}
onAccepted: Favorites.setSetting("appStart",appStart.currentIndex)

View File

@ -1,7 +1,7 @@
Name: harbour-allradio
Summary: AllRadio
Version: 2.0.19
Version: 2.0.20
Release: 1
Group: Qt/Qt
License: GPLv2

View File

@ -1262,6 +1262,18 @@
<source>Random favorite</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Server settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Server</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select anohter server</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SleepTimerPage</name>
@ -1315,10 +1327,6 @@
<source>Searching servers</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Try another server</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Connecting</source>
<translation type="unfinished"></translation>

View File

@ -1262,6 +1262,18 @@
<source>Random favorite</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Server settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Server</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select anohter server</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SleepTimerPage</name>
@ -1315,10 +1327,6 @@
<source>Searching servers</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Try another server</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Connecting</source>
<translation type="unfinished"></translation>

View File

@ -1262,6 +1262,18 @@
<source>Random favorite</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Server settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Server</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select anohter server</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SleepTimerPage</name>
@ -1315,10 +1327,6 @@
<source>Searching servers</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Try another server</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Connecting</source>
<translation type="unfinished"></translation>

View File

@ -1262,6 +1262,18 @@
<source>Random favorite</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Server settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Server</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select anohter server</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SleepTimerPage</name>
@ -1315,10 +1327,6 @@
<source>Searching servers</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Try another server</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Connecting</source>
<translation type="unfinished"></translation>

View File

@ -1262,6 +1262,18 @@
<source>Random favorite</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Server settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Server</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select anohter server</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SleepTimerPage</name>
@ -1315,10 +1327,6 @@
<source>Searching servers</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Try another server</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Connecting</source>
<translation type="unfinished"></translation>

View File

@ -1262,6 +1262,18 @@
<source>Random favorite</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Server settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Server</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select anohter server</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SleepTimerPage</name>
@ -1315,10 +1327,6 @@
<source>Searching servers</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Try another server</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Connecting</source>
<translation type="unfinished"></translation>

View File

@ -1262,6 +1262,18 @@
<source>Random favorite</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Server settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Server</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select anohter server</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SleepTimerPage</name>
@ -1315,10 +1327,6 @@
<source>Searching servers</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Try another server</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Connecting</source>
<translation type="unfinished"></translation>

View File

@ -1262,6 +1262,18 @@
<source>Random favorite</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Server settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Server</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select anohter server</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SleepTimerPage</name>
@ -1315,10 +1327,6 @@
<source>Searching servers</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Try another server</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Connecting</source>
<translation type="unfinished"></translation>

View File

@ -1262,6 +1262,18 @@
<source>Random favorite</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Server settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Server</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select anohter server</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SleepTimerPage</name>
@ -1315,10 +1327,6 @@
<source>Searching servers</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Try another server</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Connecting</source>
<translation type="unfinished"></translation>

File diff suppressed because it is too large Load Diff

View File

@ -1262,6 +1262,18 @@
<source>Random favorite</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Server settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Server</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select anohter server</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SleepTimerPage</name>
@ -1315,10 +1327,6 @@
<source>Searching servers</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Try another server</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Connecting</source>
<translation type="unfinished"></translation>

View File

@ -1262,6 +1262,18 @@
<source>Random favorite</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Server settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Server</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select anohter server</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SleepTimerPage</name>
@ -1315,10 +1327,6 @@
<source>Searching servers</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Try another server</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Connecting</source>
<translation type="unfinished"></translation>