Skip to content

Commit e2e31f0

Browse files
committed
added /user command and removed /getwarns
1 parent eb76e2a commit e2e31f0

File tree

3 files changed

+64
-40
lines changed

3 files changed

+64
-40
lines changed

handlers/commands/getwarns.js

Lines changed: 0 additions & 38 deletions
This file was deleted.

handlers/commands/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const leaveCommandHandler = require('./leave');
1010
const warnHandler = require('./warn');
1111
const unwarnHandler = require('./unwarn');
1212
const nowarnsHandler = require('./nowarns');
13-
const getWarnsHandler = require('./getwarns');
13+
const userHandler = require('./user');
1414
const banHandler = require('./ban');
1515
const unbanHandler = require('./unban');
1616
const reportHandler = require('./report');
@@ -44,7 +44,7 @@ composer.command('leave', deleteMessage, leaveCommandHandler);
4444
composer.command('warn', deleteMessage, warnHandler);
4545
composer.command('unwarn', deleteMessage, unwarnHandler);
4646
composer.command('nowarns', deleteMessage, nowarnsHandler);
47-
composer.command('getwarns', deleteMessage, getWarnsHandler);
47+
composer.command('user', deleteMessage, userHandler);
4848
composer.command('ban', deleteMessage, banHandler);
4949
composer.command('unban', deleteMessage, unbanHandler);
5050
composer.command('report', deleteMessage, reportHandler);

handlers/commands/user.js

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
'use strict';
2+
3+
// Utils
4+
const { link, scheduleDeletion } = require('../../utils/tg');
5+
6+
// Bot
7+
const { replyOptions } = require('../../bot/options');
8+
9+
// DB
10+
const { getUser, getWarns } = require('../../stores/user');
11+
12+
const getWarnsHandler = async ({ message, reply, state }) => {
13+
const { isAdmin } = state;
14+
if (!isAdmin) return null;
15+
16+
const mentionedUser = message.reply_to_message
17+
? message.reply_to_message.from
18+
: message.commandMention
19+
? message.commandMention
20+
: null;
21+
if (!mentionedUser) {
22+
return reply(
23+
'ℹ️ <b>Reply to a message or mention a user.</b>',
24+
replyOptions
25+
).then(scheduleDeletion);
26+
}
27+
28+
const theUser = await getUser({ id: mentionedUser.id });
29+
30+
if (theUser.status === 'admin') {
31+
return reply(
32+
`⭐️ ${link(theUser)} <b>is admin.</b>`,
33+
replyOptions
34+
).then(scheduleDeletion);
35+
}
36+
37+
let i = 0;
38+
const warns = await getWarns(theUser);
39+
const warnsMessage = warns
40+
? '⚠️ <b>Warns:</b>\n' +
41+
warns
42+
.map(warn => ++i + '. ' + warn)
43+
.join('\n')
44+
: '✅ <b>no warns</b>';
45+
46+
if (theUser.status === 'banned') {
47+
return reply(
48+
`🚫 ${link(theUser)} <b>is banned for:</b>\n` +
49+
`${theUser.banReason}\n\n` +
50+
warnsMessage,
51+
replyOptions
52+
);
53+
}
54+
55+
return reply(
56+
`ℹ️ ${link(theUser)} <b>is a member of network.</b>\n\n` +
57+
warnsMessage,
58+
replyOptions
59+
);
60+
};
61+
62+
module.exports = getWarnsHandler;

0 commit comments

Comments
 (0)