forked from FOSS/BangleApps
45 lines
1.0 KiB
JavaScript
45 lines
1.0 KiB
JavaScript
/**
|
|
* This file checks for upcoming alarms and schedules qalarm.js to deal with them and itself to continue doing these checks.
|
|
*/
|
|
|
|
print("Checking for alarms...");
|
|
|
|
if (Bangle.QALARM) {
|
|
clearInterval(Bangle.QALARM);
|
|
Bangle.QALARM = undefined;
|
|
}
|
|
|
|
function getCurrentTime() {
|
|
let time = new Date();
|
|
return (
|
|
time.getHours() * 3600000 +
|
|
time.getMinutes() * 60000 +
|
|
time.getSeconds() * 1000
|
|
);
|
|
}
|
|
|
|
let time = new Date();
|
|
let t = getCurrentTime();
|
|
|
|
let nextAlarms = (require("Storage").readJSON("qalarm.json", 1) || [])
|
|
.filter(
|
|
(alarm) =>
|
|
alarm.on &&
|
|
alarm.t > t &&
|
|
alarm.last != time.getDate() &&
|
|
(alarm.timer || alarm.daysOfWeek[time.getDay()])
|
|
)
|
|
.sort((a, b) => a.t - b.t);
|
|
|
|
if (nextAlarms[0]) {
|
|
Bangle.QALARM = setTimeout(() => {
|
|
eval(require("Storage").read("qalarmcheck.js"));
|
|
load("qalarm.js");
|
|
}, nextAlarms[0].t - t);
|
|
} else {
|
|
// No alarms found: will re-check at midnight
|
|
Bangle.QALARM = setTimeout(() => {
|
|
eval(require("Storage").read("qalarmcheck.js"));
|
|
}, 86400000 - t);
|
|
}
|