/[sudobot]/trunk/src/commands/automation/QueuesCommand.ts
ViewVC logotype

Contents of /trunk/src/commands/automation/QueuesCommand.ts

Parent Directory Parent Directory | Revision Log Revision Log


Revision 444 - (show annotations)
Mon Jul 29 17:30:16 2024 UTC (8 months, 1 week ago) by rakin
File MIME type: application/typescript
File size: 2389 byte(s)
style: eslint autofix
1 /**
2 * This file is part of SudoBot.
3 *
4 * Copyright (C) 2021-2022 OSN Inc.
5 *
6 * SudoBot is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU Affero General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * SudoBot is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU Affero General Public License for more details.
15 *
16 * You should have received a copy of the GNU Affero General Public License
17 * along with SudoBot. If not, see <https://www.gnu.org/licenses/>.
18 */
19
20 import { CommandInteraction, Message } from 'discord.js';
21 import BaseCommand from '../../utils/structures/BaseCommand';
22 import DiscordClient from '../../client/Client';
23 import CommandOptions from '../../types/CommandOptions';
24 import InteractionOptions from '../../types/InteractionOptions';
25 import MessageEmbed from '../../client/MessageEmbed';
26 import { timeProcess, timeSince } from '../../utils/util';
27
28 export default class QueuesCommand extends BaseCommand {
29 supportsInteractions: boolean = true;
30
31 constructor() {
32 super('queues', 'automation', []);
33 }
34
35 async run(client: DiscordClient, msg: Message | CommandInteraction, options: CommandOptions | InteractionOptions) {
36 const map = [...client.queueManager.queues.values()].slice(0, 8);
37 let str = '';
38
39 await map.forEach(value => {
40 if (value.guild !== msg.guild!.id)
41 return;
42
43 console.log(new Date(value.runOn).getTime() - new Date().getTime());
44 str += `**ID: ${value.id}**\n`;
45
46 if (value.data?.cmd) {
47 `**Command**: \`${value.data.cmd}\`\n`;
48 }
49
50 str += `**ETA**: ${timeProcess((new Date(value.runOn).getTime() - new Date().getTime()) / 1000).replace(' ago', '')}\n**Queue Added**: ${value.model.createdAt.toLocaleString()} (${timeSince(value.model.createdAt.getTime())})\n\n`;
51 });
52
53 await msg.reply({
54 embeds: [
55 new MessageEmbed()
56 .setTitle('Queue List')
57 .setDescription(str === '' ? 'No queue.' : str)
58 .setTimestamp()
59 ]
60 });
61 }
62 }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26