nova-shell/shell/services/WeatherService.qml

43 lines
1.1 KiB
QML

pragma Singleton
import QtQuick
import Quickshell
import Quickshell.Io
import "." as S
import NovaStats as NS
QtObject {
id: root
property string icon: ""
property string tooltip: ""
readonly property bool available: icon !== ""
property Process _proc: Process {
running: NS.ModulesService.weatherEnable
command: ["wttrbar"].concat(NS.ModulesService.weatherArgs)
stdout: StdioCollector {
onStreamFinished: {
try {
const data = JSON.parse(text);
root.icon = data.text ?? "";
root.tooltip = data.tooltip ?? "";
} catch (e) {
root.icon = "";
root.tooltip = "";
}
}
}
}
property Timer _poll: Timer {
interval: NS.ModulesService.weatherInterval || 3600000
running: NS.ModulesService.weatherEnable
repeat: true
onTriggered: root._proc.running = true
}
function refresh() {
_proc.running = true;
}
}