sokolov-sbs-flowserver/flow/check_if_new_day.js
2025-08-07 21:49:01 +02:00

54 lines
No EOL
1.4 KiB
JavaScript

exports.id = 'checknewday';
exports.title = 'Check if new day';
exports.group = 'Worksys';
exports.color = '#5D9CEC';
exports.version = '0.0.1';
exports.output = ['white'];
exports.input = true;
exports.author = 'Rastislav Kovac';
exports.icon = 'cloud-upload';
exports.readme = `Checks, if day changed. If yes, it sends it to connected components`;
const { execSync } = require('child_process');
const weekday = ["Nedele","Pondeli","Uteri","Streda","Ctvrtek","Patek","Sobota"];
function getDate() {
// for some reason new Date() function does not set month and year in local timezone, so we use "timedatectl" command
let dateFromCommand = execSync("timedatectl", {}).toString();
let first = dateFromCommand.search("time:");
let last = dateFromCommand.search(" CE");
dateFromCommand = dateFromCommand.slice(first, last); //Thu 2022-04-07 13:38:03
const d = new Date(dateFromCommand);
return d;
}
exports.install = function(instance) {
let date = null;
const checkNewDay = () =>
{
const d = getDate();
const today = d.getDate(); //napr 21 (dvadsiateho prveho)
if(today !== date)
{
date = today;
const month = d.getMonth(); // 0-11
const day = d.getDay(); // 0-6 (0 = nedela)
const datum = `${today}.${month + 1}`;
const result = [datum, weekday[day]];
instance.send(0, result); // ['22.12', 'Streda']
}
}
instance.on('data', flowdata => {
checkNewDay();
})
}