From bd3c8b4107ee2673b8cd089d3e36817286c93a51 Mon Sep 17 00:00:00 2001 From: Martin Boonk Date: Wed, 17 May 2023 21:54:35 +0200 Subject: [PATCH 1/4] owmweather - Read defaults to prevent loading weather every few seconds --- apps/owmweather/boot.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/owmweather/boot.js b/apps/owmweather/boot.js index 737413940..7803bcf3b 100644 --- a/apps/owmweather/boot.js +++ b/apps/owmweather/boot.js @@ -1,8 +1,9 @@ { let waiting = false; - let settings = require("Storage").readJSON("owmweather.json", 1) || { - enabled: false - }; + let settings = Object.assign( + require('Storage').readJSON("owmweather.default.json", true) || {}, + require('Storage').readJSON("owmweather.json", true) || {} + ); let completion = function(){ waiting = false; From 4c5e9ce74bb1ca50506a0065535a4f29cb6c97a6 Mon Sep 17 00:00:00 2001 From: Martin Boonk Date: Wed, 17 May 2023 21:56:21 +0200 Subject: [PATCH 2/4] owmweather - Bump version --- apps/owmweather/ChangeLog | 1 + apps/owmweather/metadata.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/owmweather/ChangeLog b/apps/owmweather/ChangeLog index dba6a755a..6b4a80e23 100644 --- a/apps/owmweather/ChangeLog +++ b/apps/owmweather/ChangeLog @@ -1,2 +1,3 @@ 0.01: New App! 0.02: Do first update request 5s after boot to boot up faster +0.03: Fix updating weather too often diff --git a/apps/owmweather/metadata.json b/apps/owmweather/metadata.json index 56f9afca7..7ea3dc9bb 100644 --- a/apps/owmweather/metadata.json +++ b/apps/owmweather/metadata.json @@ -1,7 +1,7 @@ { "id": "owmweather", "name": "OpenWeatherMap weather provider", "shortName":"OWM Weather", - "version":"0.02", + "version":"0.03", "description": "Pulls weather from OpenWeatherMap (OWM) API", "icon": "app.png", "type": "bootloader", From bd34c54eed48af473e737ac02e1e2d1d6289ec91 Mon Sep 17 00:00:00 2001 From: Martin Boonk Date: Wed, 17 May 2023 22:05:08 +0200 Subject: [PATCH 3/4] owmweather - Respect update interval even on boot --- apps/owmweather/boot.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/owmweather/boot.js b/apps/owmweather/boot.js index 7803bcf3b..5ac32c55a 100644 --- a/apps/owmweather/boot.js +++ b/apps/owmweather/boot.js @@ -7,14 +7,15 @@ let completion = function(){ waiting = false; + settings.updated = Date.now(); + require('Storage').writeJSON("owmweather.json", settings); } if (settings.enabled) { let weather = require("Storage").readJSON('weather.json') || {}; - let lastUpdate; if (weather && weather.weather && weather.weather.time) lastUpdate = weather.weather.time; - if (!lastUpdate || lastUpdate + settings.refresh * 1000 * 60 < Date.now()){ + if (!settings.updated || settings.updated + settings.refresh * 1000 * 60 < Date.now()){ setTimeout(() => { if (!waiting){ waiting = true; From fe240ea27c163afc59267bb6d2a7ad2644e0554e Mon Sep 17 00:00:00 2001 From: Martin Boonk Date: Wed, 17 May 2023 22:22:48 +0200 Subject: [PATCH 4/4] owmweather - Fix calling weather if it is not available --- apps/owmweather/lib.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/owmweather/lib.js b/apps/owmweather/lib.js index 6ba52b498..67cdc115b 100644 --- a/apps/owmweather/lib.js +++ b/apps/owmweather/lib.js @@ -25,7 +25,7 @@ function parseWeather(response) { json.weather = weather; require("Storage").writeJSON('weather.json', json); - require("weather").emit("update", json.weather); + if (require("Storage").read("weather")!==undefined) require("weather").emit("update", json.weather); return undefined; } else { return /*LANG*/"Not OWM data";