2017-07-24 17:12:38 +02:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
// Utils
|
2017-09-21 13:57:49 +04:30
|
|
|
const { deleteAfter } = require('./utils/tg');
|
2017-09-27 23:12:12 +03:30
|
|
|
const { logError } = require('./utils/log');
|
2017-09-21 13:57:49 +04:30
|
|
|
|
2017-10-04 23:57:47 +05:30
|
|
|
/**
|
|
|
|
* @type {Telegraf}
|
|
|
|
* Bot
|
|
|
|
*/
|
2017-09-21 13:57:49 +04:30
|
|
|
const bot = require('./bot');
|
|
|
|
|
2017-09-21 23:39:58 +02:00
|
|
|
bot.telegram.getMe().then((botInfo) => {
|
|
|
|
bot.options.username = botInfo.username;
|
|
|
|
});
|
|
|
|
|
2017-09-23 21:40:58 +03:30
|
|
|
|
2017-10-04 23:57:47 +05:30
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
* Time in milliseconds after which join and leave messages should be deleted
|
|
|
|
*/
|
|
|
|
const delTimeout = 2 * 60 * 1000;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {string}
|
|
|
|
* Path of middlewares and commands
|
|
|
|
*/
|
|
|
|
const middleware = './handlers/middlewares',
|
|
|
|
command = './handlers/commands';
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {function}
|
|
|
|
* Middleware Handlers
|
|
|
|
*/
|
|
|
|
const leaveUnmanagedHandler = require(`${middleware}/leaveUnmanaged`),
|
|
|
|
removeCommandsHandler = require(`${middleware}/removeCommands`),
|
|
|
|
kickBannedHandler = require(`${middleware}/kickBanned`),
|
|
|
|
addUserHandler = require(`${middleware}/addUser`),
|
|
|
|
removeLinksHandler = require(`${middleware}/removeLinks`),
|
|
|
|
checkUsernameHandler = require(`${middleware}/checkUsername`),
|
|
|
|
addCustomCmdHandler = require(`${middleware}/addCustomCmd`),
|
|
|
|
runCustomCmdHandler = require(`${middleware}/runCustomCmd`),
|
|
|
|
antibotHandler = require(`${middleware}/antibot`),
|
|
|
|
addedToGroupHandler = require(`${middleware}/addedToGroup`);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {function}
|
|
|
|
* Commmands Handlers
|
|
|
|
*/
|
|
|
|
const adminHandler = require(`${command}/admin`),
|
|
|
|
unAdminHandler = require(`${command}/unadmin`),
|
|
|
|
leaveCommandHandler = require(`${command}/leave`),
|
|
|
|
warnHandler = require(`${command}/warn`),
|
|
|
|
unwarnHandler = require(`${command}/unwarn`),
|
|
|
|
nowarnsHandler = require(`${command}/nowarns`),
|
|
|
|
getWarnsHandler = require(`${command}/getwarns`),
|
|
|
|
banHandler = require(`${command}/ban`),
|
|
|
|
unbanHandler = require(`${command}/unban`),
|
|
|
|
reportHandler = require(`${command}/report`),
|
|
|
|
staffHandler = require(`${command}/staff`),
|
|
|
|
linkHandler = require(`${command}/link`),
|
|
|
|
groupsHandler = require(`${command}/groups`),
|
|
|
|
commandReferenceHandler = require(`${command}/commands`),
|
|
|
|
addCommandHandler = require(`${command}/addCommand`),
|
|
|
|
removeCommandHandler = require(`${command}/removeCommand`),
|
|
|
|
helpHandler = require(`${command}/help`);
|
2017-09-21 13:57:49 +04:30
|
|
|
|
2017-09-24 15:28:43 +02:00
|
|
|
bot.on('new_chat_members', addedToGroupHandler);
|
2017-09-22 19:47:38 +02:00
|
|
|
bot.use(leaveUnmanagedHandler);
|
2017-10-03 11:10:39 +03:30
|
|
|
bot.use(removeCommandsHandler);
|
|
|
|
bot.use(kickBannedHandler);
|
2017-09-27 12:34:26 +03:30
|
|
|
bot.on('message', addUserHandler);
|
2017-09-23 21:52:58 +03:30
|
|
|
bot.on('message', removeLinksHandler);
|
2017-09-25 12:40:04 +03:30
|
|
|
bot.on('message', checkUsernameHandler);
|
2017-10-04 20:55:50 +03:30
|
|
|
bot.on('message', addCustomCmdHandler);
|
|
|
|
bot.on('message', runCustomCmdHandler);
|
2017-09-23 21:40:58 +03:30
|
|
|
bot.on('new_chat_members', antibotHandler);
|
2017-10-04 23:57:47 +05:30
|
|
|
bot.on([ 'new_chat_members', 'left_chat_member' ], deleteAfter(delTimeout));
|
2017-09-21 13:57:49 +04:30
|
|
|
bot.command('admin', adminHandler);
|
2017-09-22 15:52:27 +03:30
|
|
|
bot.command('unadmin', unAdminHandler);
|
2017-09-28 22:59:35 +02:00
|
|
|
bot.command('leave', leaveCommandHandler);
|
2017-09-21 13:57:49 +04:30
|
|
|
bot.command('warn', warnHandler);
|
|
|
|
bot.command('unwarn', unwarnHandler);
|
2017-09-21 23:47:26 +04:30
|
|
|
bot.command('nowarns', nowarnsHandler);
|
|
|
|
bot.command('getwarns', getWarnsHandler);
|
2017-09-22 15:52:27 +03:30
|
|
|
bot.command('ban', banHandler);
|
|
|
|
bot.command('unban', unbanHandler);
|
2017-09-23 20:57:32 +02:00
|
|
|
bot.command('report', reportHandler);
|
|
|
|
bot.hears(/^@admins?$/i, reportHandler);
|
2017-09-24 18:05:16 +02:00
|
|
|
bot.command('staff', staffHandler);
|
2017-10-02 12:09:44 +03:30
|
|
|
bot.command('link', linkHandler);
|
2017-09-24 23:23:36 +02:00
|
|
|
bot.command('groups', groupsHandler);
|
2017-09-27 22:17:07 +02:00
|
|
|
bot.command('commands', commandReferenceHandler);
|
2017-10-04 20:55:50 +03:30
|
|
|
bot.command('addcommand', addCommandHandler);
|
|
|
|
bot.command('removecommand', removeCommandHandler);
|
2017-09-28 15:41:06 +03:30
|
|
|
bot.command([ 'start', 'help' ], helpHandler);
|
2017-07-24 18:08:31 +02:00
|
|
|
|
2017-09-27 23:12:12 +03:30
|
|
|
bot.catch(logError);
|
2017-09-24 18:34:32 +02:00
|
|
|
|
2017-07-24 17:12:38 +02:00
|
|
|
bot.startPolling();
|