43 lines
1.1 KiB
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;
|
|
}
|
|
}
|