weather: delete stale weather data
parent
3693d6ebce
commit
eed9868b76
|
|
@ -392,7 +392,8 @@
|
||||||
{"name":"weather.app.js","url":"app.js"},
|
{"name":"weather.app.js","url":"app.js"},
|
||||||
{"name":"weather.wid.js","url":"widget.js"},
|
{"name":"weather.wid.js","url":"widget.js"},
|
||||||
{"name":"weather","url":"lib.js"},
|
{"name":"weather","url":"lib.js"},
|
||||||
{"name":"weather.img","url":"icon.js","evaluate":true}
|
{"name":"weather.img","url":"icon.js","evaluate":true},
|
||||||
|
{"name":"weather.settings.js","url":"settings.js"}
|
||||||
],
|
],
|
||||||
"data": [
|
"data": [
|
||||||
{"name": "weather.json"}
|
{"name": "weather.json"}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,21 @@
|
||||||
|
let expiryTimeout = undefined;
|
||||||
|
function updateExpiry(json) {
|
||||||
|
if (expiryTimeout) {
|
||||||
|
clearTimeout(expiryTimeout);
|
||||||
|
expiryTimeout = undefined;
|
||||||
|
}
|
||||||
|
if (json.weather && json.weather.time && json.expiry) {
|
||||||
|
let t = json.weather.time + json.expiry - Date.now();
|
||||||
|
expiryTimeout = setTimeout(() => {
|
||||||
|
expiryTimeout = undefined;
|
||||||
|
let json = require('Storage').readJSON('weather.json')||{};
|
||||||
|
delete json.weather;
|
||||||
|
require('Storage').write('weather.json', json);
|
||||||
|
exports.emit("expiry");
|
||||||
|
}, t);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
exports = {
|
exports = {
|
||||||
save: weather => {
|
save: weather => {
|
||||||
let json = require('Storage').readJSON('weather.json')||{};
|
let json = require('Storage').readJSON('weather.json')||{};
|
||||||
|
|
@ -5,6 +23,7 @@ exports = {
|
||||||
delete json.weather.t; // don't save the event type (if present)
|
delete json.weather.t; // don't save the event type (if present)
|
||||||
json.weather.time = Date.now();
|
json.weather.time = Date.now();
|
||||||
require('Storage').write('weather.json', json);
|
require('Storage').write('weather.json', json);
|
||||||
|
updateExpiry(json);
|
||||||
},
|
},
|
||||||
load: () => {
|
load: () => {
|
||||||
let json = require('Storage').readJSON('weather.json')||{};
|
let json = require('Storage').readJSON('weather.json')||{};
|
||||||
|
|
@ -175,3 +194,5 @@ exports = {
|
||||||
chooseIcon(cond)(x, y, r);
|
chooseIcon(cond)(x, y, r);
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
updateExpiry(require('Storage').readJSON('weather.json')||{});
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
(function(back) {
|
||||||
|
const storage = require('Storage');
|
||||||
|
let settings = storage.readJSON('weather.json', 1) || {};
|
||||||
|
function save(key, value) {
|
||||||
|
settings[key] = value;
|
||||||
|
storage.write('weather.json', settings);
|
||||||
|
}
|
||||||
|
E.showMenu({
|
||||||
|
'': { 'title': 'Weather' },
|
||||||
|
'Expiry': {
|
||||||
|
value: "expiry" in settings ? settings["expiry"] : 2*3600000,
|
||||||
|
min: 0,
|
||||||
|
max : 24*3600000,
|
||||||
|
step: 15*60000,
|
||||||
|
format: x => {
|
||||||
|
if (x == 0) return "none";
|
||||||
|
if (x < 3600000) return Math.floor(x/60000) + "m";
|
||||||
|
if (x < 86400000) return Math.floor(x/36000)/100 + "h";
|
||||||
|
},
|
||||||
|
onchange: x => save('expiry', x),
|
||||||
|
},
|
||||||
|
'< Back': back,
|
||||||
|
});
|
||||||
|
})
|
||||||
|
|
@ -44,6 +44,11 @@
|
||||||
if (_GB) setTimeout(_GB, 0, event);
|
if (_GB) setTimeout(_GB, 0, event);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
require('weather').on("expiry", () => {
|
||||||
|
WIDGETS["weather"].width = 0;
|
||||||
|
Bangle.drawWidgets();
|
||||||
|
});
|
||||||
|
|
||||||
WIDGETS["weather"] = {area: "tl", width: 20, draw: draw};
|
WIDGETS["weather"] = {area: "tl", width: 20, draw: draw};
|
||||||
if (!require('weather').load()) {
|
if (!require('weather').load()) {
|
||||||
WIDGETS["weather"].width = 0;
|
WIDGETS["weather"].width = 0;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue