2
0
mirror of https://github.com/thedevs-network/the-guard-bot synced 2025-09-05 08:35:22 +00:00
Files
the-guard-bot/handlers/messages/runCustomCmd.js
2017-10-06 21:49:33 +03:30

59 lines
1.3 KiB
JavaScript

'use strict';
// DB
const { getCommand } = require('../../stores/command');
const runCustomCmdHandler = async (ctx, next) => {
const { message, state } = ctx;
const { isAdmin, isMaster } = state;
const isCommand = /^!\w+/.test(message.text);
if (!isCommand) {
return next();
}
const commandName = message.text.split(' ')[0].replace('!', '');
const command = await getCommand({ isActive: true, name: commandName });
if (!command) {
return next();
}
const { caption, content, role, type } = command;
const replyTo = message.reply_to_message
? { reply_to_message_id: message.reply_to_message.message_id }
: {};
const options = Object.assign(replyTo, caption ? { caption } : {});
if (
role === 'Master' &&
!isMaster ||
role === 'Admins' &&
!isAdmin
) {
return next();
}
if (type === 'text') {
ctx.replyWithHTML(content, options);
return next();
}
if (type === 'photo') {
ctx.replyWithPhoto(content, options);
return next();
}
if (type === 'video') {
ctx.replyWithVideo(content, replyTo);
return next();
}
if (type === 'document') {
ctx.replyWithDocument(content, replyTo);
return next();
}
if (type === 'audio') {
ctx.replyWithAudio(content, replyTo);
return next();
}
return next();
};
module.exports = runCustomCmdHandler;