58 lines
1.5 KiB
JavaScript
58 lines
1.5 KiB
JavaScript
function initializeBot(node, bot) {
|
|
if (node.bot) {
|
|
node.bot.register(node);
|
|
updateNodeStatus(node, "red", "ring", "disconnected");
|
|
|
|
node.telegramBot = node.bot.getTelegramBot();
|
|
|
|
if (node.telegramBot) {
|
|
updateNodeStatusSuccess(node);
|
|
} else {
|
|
updateNodeStatusFailed(node, "bot not initialized");
|
|
}
|
|
} else {
|
|
updateNodeStatusFailed(node, "config node failed to initialize");
|
|
}
|
|
}
|
|
|
|
function validateChatId(node, msg) {
|
|
return (node.chatId || (msg.telegram && msg.telegram.chat && msg.telegram.chat.id));
|
|
}
|
|
|
|
function updateNodeStatus(node, fill, shape, msg) {
|
|
node.status({ fill: fill, shape: shape, text: msg });
|
|
}
|
|
|
|
function updateNodeStatusSuccess(node, msg="connected") {
|
|
updateNodeStatus(node, "green", "dot", msg);
|
|
}
|
|
|
|
function updateNodeStatusPending(node, msg) {
|
|
updateNodeStatus(node, "yellow", "ring", msg);
|
|
}
|
|
|
|
function updateNodeStatusFailed(node, msg) {
|
|
node.warn(msg);
|
|
updateNodeStatus(node, "red", "ring", msg);
|
|
}
|
|
|
|
function timeUnits(time, units) {
|
|
switch (units) {
|
|
case "ms": return time;
|
|
case "s": return time * 1000;
|
|
case "min": return timeUnits(time * 60, "s");
|
|
case "hr": return timeUnits(time * 60, "min");
|
|
default: throw new Error("Invalid units");
|
|
}
|
|
}
|
|
|
|
module.exports = {
|
|
initializeBot: initializeBot,
|
|
validateChatId: validateChatId,
|
|
updateNodeStatus: updateNodeStatus,
|
|
updateNodeStatusSuccess: updateNodeStatusSuccess,
|
|
updateNodeStatusFailed: updateNodeStatusFailed,
|
|
updateNodeStatusPending: updateNodeStatusPending,
|
|
timeUnits: timeUnits
|
|
};
|