widshipbell: Adapt to new weak/strong buzz patterns

master
Erik Andresen 2022-05-29 11:22:00 +02:00
parent c1e9600c1a
commit bd88e4bbca
2 changed files with 24 additions and 15 deletions

View File

@ -2,7 +2,7 @@
var FILE = "widshipbell.json";
// Load settings
var settings = Object.assign({
enabled: true,
strength: 1,
}, require('Storage').readJSON(FILE, true) || {});
function writeSettings() {
@ -13,11 +13,12 @@
E.showMenu({
"" : { "title" : "Ship's bell" },
"< Back" : () => back(),
'Enable?': {
value: !!settings.enabled, // !! converts undefined to false
format: v => v?"Yes":"No",
'Strength': {
value: settings.strength,
min: 0, max: 2,
format: v => ["Off", "Weak", "Strong"][v],
onchange: v => {
settings.enabled = v;
settings.strength = v;
writeSettings();
}
},

View File

@ -1,7 +1,11 @@
(() => {
var settings = Object.assign({
enabled: true,
}, require('Storage').readJSON("widshipbell.json", true) || {});
const strength = Object.assign({
strength: 1,
}, require('Storage').readJSON("widshipbell.json", true) || {}).strength;
function replaceAll(target, search, replacement) {
return target.split(search).join(replacement);
}
function check() {
const now = new Date();
@ -14,21 +18,25 @@
// buzz now
let pattern='';
if (strikeHour === 0 && currentMinute == 0) {
pattern = '.. .. .. ..';
pattern = '.. .. .. ..';
} else if (strikeHour === 0 && currentMinute == 30) {
pattern = '.';
} else if (strikeHour === 1 && currentMinute == 0) {
pattern = '..';
} else if (strikeHour === 1 && currentMinute == 30) {
pattern = '.. .';
pattern = '.. .';
} else if (strikeHour === 2 && currentMinute == 0) {
pattern = '.. ..';
pattern = '.. ..';
} else if (strikeHour === 2 && currentMinute == 30) {
pattern = '.. .. .';
pattern = '.. .. .';
} else if (strikeHour === 3 && currentMinute == 0) {
pattern = '.. .. ..';
pattern = '.. .. ..';
} else if (strikeHour === 3 && currentMinute == 30) {
pattern = '.. .. .. .';
pattern = '.. .. .. .';
}
pattern = replaceAll(pattern, ' ', ' '); // longer pause
if (strength === 2) { // strong selected
pattern = replaceAll(pattern, '.', ':');
}
require("buzz").pattern(pattern);
}
@ -37,7 +45,7 @@
setTimeout(check, etaSecond*1000);
}
if (settings.enabled === true) {
if (strength !== 0) {
check();
}
})();