lscanbot/index.js

81 lines
2.2 KiB
JavaScript

const TeleBot = require('telebot');
const appConfig = require('./config.json');
const scanner = require('./scanner.js');
const utils = require('./utils.js');
const logger = require('./logger.js');
const bot = new TeleBot(appConfig.app.token);
bot.on('/start', (msg) => {
bot.sendMessage(msg.from.id, utils.templateStart(), { parseMode: 'Markdown' });
if (utils.isAuthorizedUser(msg.from.id)) {
bot.event('/help', msg);
} else {
bot.sendMessage(msg.from.id, utils.templateUnauthorizedUser(), { parseMode: 'Markdown' });
}
});
bot.on('/help', (msg) => {
if (utils.isAuthorizedUser(msg.from.id)) {
bot.sendMessage(msg.from.id, utils.templateHelp(), { parseMode: 'Markdown' });
}
});
bot.on('/scan', (msg) => {
if (utils.isAuthorizedUser(msg.from.id)) {
scanner.scanNetwork(msg.from.id)
.then(() => {
scanner.getDevicesNetwork(msg.from.id)
.then((devices) => {
bot.sendMessage(msg.from.id, utils.templateDevicesList(devices), { parseMode: 'Markdown' });
})
.catch((err) => {
msg.reply.text('Error, check the error.log');
logger.logError(err);
});
})
.catch((err) => {
msg.reply.text('Error, check the error.log');
logger.logError(err);
});
}
});
bot.on('/inventory', (msg) => {
if (utils.isAuthorizedUser(msg.from.id)) {
scanner.getInventoryNetwork()
.then((inventory) => {
bot.sendMessage(msg.from.id, utils.templateInventoryList(inventory), { parseMode: 'Markdown' });
})
.catch((err) => {
msg.reply.text('Error, check the error.log');
logger.logError(err);
});
}
});
bot.on(/^\/add (.+)$/, (msg, props) => {
if (utils.isAuthorizedUser(msg.from.id)) {
const textArgs = props.match[1];
const arrArgs = textArgs.split(';').map(item => item.trim());
scanner.addDeviceToTrack(arrArgs);
}
});
bot.on(/^\/remove (.+)$/, (msg, props) => {
if (utils.isAuthorizedUser(msg.from.id)) {
const textArgs = props.match[1];
const arrArgs = textArgs.split(';').map(item => item.trim());
scanner.removeDeviceToTrack(arrArgs[0]);
}
});
bot.on('/getUID', (msg) => {
msg.reply.text(`⚠️ UID: ${msg.from.id}`);
});
scanner.initScannerDB();
// bot start
bot.start();