/[sudobot]/trunk/src/queues/ExpireScheduleMessageQueue.ts
ViewVC logotype

Annotation of /trunk/src/queues/ExpireScheduleMessageQueue.ts

Parent Directory Parent Directory | Revision Log Revision Log


Revision 431 - (hide annotations)
Mon Jul 29 17:30:12 2024 UTC (8 months, 1 week ago) by rakin
File MIME type: application/typescript
File size: 1892 byte(s)
style: add license comments
1 rakin 431 /**
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 rakin 430 import { TextChannel } from "discord.js";
21     import { fetchEmoji } from "../utils/Emoji";
22     import Queue from "../utils/structures/Queue";
23     import ExpireMessageQueue from "./ExpireMessageQueue";
24    
25     export default class ExpireScheduleMessageQueue extends Queue {
26     async execute({ channelID, guildID, content, expires }: { [key: string]: string }): Promise<any> {
27     const guild = this.client.guilds.cache.get(guildID);
28    
29     if (!guild) {
30     return;
31     }
32    
33     const channel = guild.channels.cache.get(channelID) as TextChannel;
34    
35     if (!channel || !['GUILD_TEXT', 'GUILD_NEWS', 'GUILD_NEWS_THREAD', 'GUILD_PUBLIC_THREAD', 'GUILD_PRIVATE_THREAD'].includes(channel.type)) {
36     return;
37     }
38    
39     try {
40     const { id: messageID } = await channel.send({ content });
41    
42     await this.client.queueManager.addQueue(ExpireMessageQueue, {
43     data: {
44     messageID,
45     guildID,
46     channelID,
47     },
48     runAt: new Date(Date.now() + expires)
49     });
50     }
51     catch (e) {
52     console.log(e);
53     }
54     }
55     }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26