2
0
mirror of https://github.com/thedevs-network/the-guard-bot synced 2025-08-23 18:38:05 +00:00
the-guard-bot/bot/context.js

41 lines
1.3 KiB
JavaScript
Raw Normal View History

2018-05-04 14:21:51 +02:00
'use strict';
const warn = require('../actions/warn');
const ban = require('../actions/ban');
2019-01-31 20:19:39 +01:00
const batchBan = require('../actions/batchBan');
const { scheduleDeletion } = require('../utils/tg');
2018-05-04 14:21:51 +02:00
const {
warnInlineKeyboard,
deleteWarnsAfter = false,
deleteBansAfter = false,
} = require('../config');
2018-05-04 14:21:51 +02:00
const normalisedDeleteWarnsAfter = typeof deleteWarnsAfter === 'object'
? { auto: false, manual: false, ...deleteWarnsAfter }
: { auto: deleteWarnsAfter, manual: deleteWarnsAfter };
const reply_markup = { inline_keyboard: warnInlineKeyboard };
2018-05-04 14:21:51 +02:00
module.exports = {
async ban({ admin, reason, userToBan }) {
const banMessage = await ban({ admin, reason, userToBan });
return this.replyWithHTML(banMessage)
.then(scheduleDeletion(deleteBansAfter));
},
2019-01-31 20:19:39 +01:00
batchBan({ admin, reason, targets }) {
return batchBan({ admin, reason, targets })
.then(this.replyWithHTML)
.then(scheduleDeletion(deleteBansAfter));
},
2019-05-31 17:02:00 +02:00
async warn({ admin, amend, reason, userToWarn, mode }) {
const warnMessage = await warn({ admin, amend, reason, userToWarn });
return this.replyWithHTML(warnMessage, { reply_markup })
.then(scheduleDeletion(normalisedDeleteWarnsAfter[mode]));
2018-05-04 14:21:51 +02:00
},
replyWithCopy(content, options) {
return this.tg.sendCopy(this.chat.id, content, options);
},
2018-05-04 14:21:51 +02:00
};