From d923201c79e69175dc45578586a9177f2df3cbe1 Mon Sep 17 00:00:00 2001 From: Weiming Date: Tue, 30 Mar 2021 10:05:53 -0400 Subject: [PATCH] fix bug for quiet time --- apps/hourstrike/boot.js | 21 ++++++++++++++++----- apps/hourstrike/hourstrike.js | 23 ++++------------------- 2 files changed, 20 insertions(+), 24 deletions(-) diff --git a/apps/hourstrike/boot.js b/apps/hourstrike/boot.js index 0e4ee7542..a787dcc14 100644 --- a/apps/hourstrike/boot.js +++ b/apps/hourstrike/boot.js @@ -1,8 +1,19 @@ (function() { var setting = require('Storage').readJSON('hourstrike.json',1)||[]; - var cur = new Date(); - var cur_sec = cur.getMinutes()*60+cur.getSeconds(); - var notify_sec = setting.interval>0?setting.interval-cur_sec%setting.interval:-1; - if (notify_sec>0) setTimeout(function() {load("hourstrike.js");}, notify_sec*1000); + var t = new Date(); + var t_min_sec = t.getMinutes()*60+t.getSeconds(); + var wait_msec = setting.interval>0?(setting.interval-t_min_sec%setting.interval)*1000:-1; + if (wait_msec>0) { + t.setMilliseconds(t.getMilliseconds()+wait_msec); + var t_hour = t.getHours(); + if (t_hoursetting.end) { + var strike = new Date(t); + strike.setHours(setting.start); + if (t_hour>setting.end) { + strike.setDate(strike.getDate()+1); + } + wait_msec += strike-t; + } + setTimeout(function() {load("hourstrike.js");}, wait_msec); + } })(); - diff --git a/apps/hourstrike/hourstrike.js b/apps/hourstrike/hourstrike.js index 493edd8d7..c258d338a 100644 --- a/apps/hourstrike/hourstrike.js +++ b/apps/hourstrike/hourstrike.js @@ -1,27 +1,12 @@ clearInterval(); var setting = require('Storage').readJSON('hourstrike.json',1)||[]; -var cur = new Date(); -var cur_hour = cur.getHours(); -var cur_min = cur.getMinutes(); -var cur_sec = cur.getSeconds(); - -var wait_sec; -if (cur_hoursetting.end) { - wait_sec = ((23-cur_hour+setting.start)*60+59-cur_min)*60+60-cur_sec; -} else { - wait_sec = 0; -} function notify_func () { - Bangle.buzz(200, setting.vlevel) + Bangle.buzz(200, setting.vlevel||0.5) .then(() => new Promise(resolve => setTimeout(resolve,200))) - .then(() => Bangle.buzz(200, setting.vlevel)); + .then(() => Bangle.buzz(200, setting.vlevel||0.5)); } -setTimeout(notify_func, wait_sec*1000); -setTimeout(load, wait_sec*1000+800); - - +notify_func; +setTimeout(load, 800);