From 1038098cf4bef1e52e9949c5604e892463084709 Mon Sep 17 00:00:00 2001 From: frigis1 <63980066+frigis1@users.noreply.github.com> Date: Sun, 10 Apr 2022 21:29:52 -0700 Subject: [PATCH] Create boot.js --- apps/gbalarms/boot.js | 61 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 apps/gbalarms/boot.js diff --git a/apps/gbalarms/boot.js b/apps/gbalarms/boot.js new file mode 100644 index 000000000..338d238eb --- /dev/null +++ b/apps/gbalarms/boot.js @@ -0,0 +1,61 @@ +(function() { + + var settings = require("Storage").readJSON("gbalarms.json", 1) || {}; + if (settings.rp == undefined) settings.rp = true; + if (settings.as == undefined) settings.as = true; + if (settings.vibrate == undefined) settings.vibrate = ".."; + require('Storage').writeJSON("gbalarms.json", settings); + + function getCurrentTime() { + var time = new Date(); + return ( + time.getHours() * 3600000 + + time.getMinutes() * 60000 + + time.getSeconds() * 1000 + ); + } + +//convert GB DOW format to sched DOW format +function convDow(x) { + //if no DOW selected, set alarm to all DOW + if (x == 0) x = 127; + x = x.toString(2); + for (var i = 0; x.length < 7; i++) { + x = "0"+x; + } + x = x.slice(1, 7) + x.slice(0, 1); + return "0b"+x; +} + +global.GB = (event) => { + if (event.t==="alarm") { + settings = require("Storage").readJSON("gbalarms.json", 1) || {}; + var alarms = []; + + //wipe existing GB alarms + var gbalarms = require("sched").getAlarms().filter(a=>a.appid=="gbalarms"); + for (i = 0; i < gbalarms.length; i++) { + require("sched").setAlarm(gbalarms[i].id, undefined); + } + for (j = 0; j < event.d.length; j++) { + //prevents all alarms from going off at once?? + var last = (event.d[j].h * 3600000 + event.d[j].m * 60000 < getCurrentTime()) ? (new Date()).getDate() : 0; + var a = { + id : "gb"+j, + appid : "gbalarms" + on : true, + t : event.d[j].h * 3600000 + event.d[j].m * 60000, + dow : convDow(event.d[j].rep), + last : last, + rp : settings.rp, + as : settings.as, + vibrate : settings.vibrate, + }; + alarms.push(a); + } + require("sched").setAlarms(alarms); + require("sched").reload(); + } +}; + +})();