2
0
mirror of https://github.com/thedevs-network/the-guard-bot synced 2025-08-24 19:07:17 +00:00

47 lines
1.3 KiB
JavaScript
Raw Normal View History

2017-09-23 20:57:32 +02:00
'use strict';
// Utils
2019-01-21 17:22:53 +01:00
const { escapeHtml, link, scheduleDeletion } = require('../../utils/tg');
2017-09-23 20:57:32 +02:00
2017-09-24 14:32:27 +03:30
// Bot
const { replyOptions } = require('../../bot/options');
2019-01-21 17:22:53 +01:00
const { chats = {} } = require('../../config');
2017-09-23 20:57:32 +02:00
const reportHandler = async ctx => {
2019-01-24 19:53:10 +01:00
if (!ctx.chat.type.endsWith('group')) return null;
2017-09-23 20:57:32 +02:00
const msg = ctx.message;
if (!msg.reply_to_message) {
return ctx.reply(
' <b>Reply to message you\'d like to report</b>',
replyOptions
).then(scheduleDeletion());
2017-09-23 20:57:32 +02:00
}
2019-01-21 17:22:53 +01:00
if (chats.report) {
ctx.tg.sendMessage(
chats.report,
`❗️<b>Report in ${escapeHtml(msg.chat.title)}!</b>`,
replyOptions
);
}
const admins = (await ctx.getChatAdministrators())
.filter(member =>
member.status === 'creator' ||
member.can_delete_messages &&
member.can_restrict_members
// eslint-disable-next-line function-paren-newline
).map(member => member.user);
2017-09-23 20:57:32 +02:00
const adminObjects = admins.map(user => ({
first_name: '', // small hack to be able to use link function
id: user.id,
2017-09-23 20:57:32 +02:00
}));
const adminsMention = adminObjects.map(link).join('');
const s = `❗️${link(ctx.from)} <b>reported the message to the admins.</b>` +
`${adminsMention}`;
2017-09-23 20:57:32 +02:00
return ctx.replyWithHTML(s, {
reply_to_message_id: msg.reply_to_message.message_id
});
};
module.exports = reportHandler;