diff --git a/index.js b/index.js index ad6085d..f63f047 100644 --- a/index.js +++ b/index.js @@ -26,10 +26,17 @@ const config = loadJSON('config.json'); const bot = new Telegraf(config.token); -bot.command('admin', ({ message, reply }) => { +bot.command('admin', async ({ message, reply }) => { + if (message.from.id !== config.masterID) { + return null; + } const userToAdmin = message.reply_to_message ? message.reply_to_message.from : message.from; + + if (await admins.isAdmin(userToAdmin)) { + return reply('Already admin'); + } return admins.admin(userToAdmin).then(() => reply('Admined ' + link(userToAdmin), replyOptions)); }); diff --git a/init.js b/init.js index 20b8a74..54eb162 100644 --- a/init.js +++ b/init.js @@ -4,6 +4,11 @@ const { existsSync, mkdirSync } = require('fs'); const { createInterface } = require('readline'); const { loadJSON, saveJSON } = require('./utils/json'); +const defaultConfig = { + masterID: 'masterID', + token: 'token' +}; + function dirs() { if (!existsSync('data')) { mkdirSync('data'); @@ -14,19 +19,20 @@ function loadConfig() { try { return loadJSON('config.json'); } catch (err) { - return { - token: 'token' - }; + return defaultConfig; } } async function validateConfig(input, config) { - config = Object.assign({}, config); + config = Object.assign({}, defaultConfig, config); for (const key in config) { while (config[key] === key || config[key] === '') { console.log('Enter ' + key + ': '); /* eslint no-await-in-loop: "off" */ - config[key] = (await input()).trim(); + const value = (await input()).trim(); + config[key] = Number.isNaN(Number(value)) + ? value + : Number(value); } } return config;