mirror of
https://github.com/nx-bat/discordbot-ng.git
synced 2026-09-22 10:29:10 -04:00
Compare commits
6 Commits
master
...
34dd72a5af
| Author | SHA1 | Date | |
|---|---|---|---|
| 34dd72a5af | |||
| a9f7f94033 | |||
| 2b19710664 | |||
| 2d1de7c203 | |||
| 526a3714c9 | |||
| a70fa88343 |
+5
-4
@@ -1,13 +1,13 @@
|
||||
import { Client as DiscordClient, GatewayIntentBits, MessageFlags, Partials } from 'discord.js';
|
||||
import { config } from './config';
|
||||
import events from './events';
|
||||
import { ScheduledTasks, Scheduler } from './scheduler';
|
||||
import { Database } from './shared/Database';
|
||||
import { openRedisClient } from './shared/RedisClient';
|
||||
import { Handler } from './types';
|
||||
import { initIfNecessary, loadHandlersFrom, refreshCommands } from './utils';
|
||||
import { initializeWebserver } from './webserver';
|
||||
import { Encrypter } from './shared/Encrypter';
|
||||
import tasks from './tasks';
|
||||
|
||||
|
||||
let ready = false;
|
||||
@@ -31,8 +31,6 @@ const client = new DiscordClient({
|
||||
}
|
||||
});
|
||||
|
||||
const scheduler: Scheduler = new Scheduler(client);
|
||||
|
||||
const commands: Handler[] = [];
|
||||
const contextMenus: Handler[] = [];
|
||||
const buttons: Handler[] = [];
|
||||
@@ -141,7 +139,10 @@ client.on('clientReady', async () => {
|
||||
|
||||
await initializeWebserver(client);
|
||||
|
||||
ScheduledTasks.forEach(task => scheduler.add(task));
|
||||
tasks.forEach(async (task) => {
|
||||
if (task.firstRun) await task.handler(client);
|
||||
setInterval(async () => await task.handler(client), task.interval);
|
||||
});
|
||||
|
||||
events.forEach(event =>
|
||||
client.on(event.event, (...args) =>
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
import { Client } from 'discord.js';
|
||||
import { Task } from '../types';
|
||||
import ScheduledTasks from './tasks';
|
||||
|
||||
class Scheduler {
|
||||
private tasks = new Map<Task, NodeJS.Timeout>();
|
||||
private context: Client;
|
||||
|
||||
constructor(context: Client) {
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
add(task: Task) {
|
||||
const interval = setInterval(() => task.handle(this.context), task.interval);
|
||||
if (task.firstRun) interval._onTimeout();
|
||||
|
||||
this.tasks.set(task, interval);
|
||||
}
|
||||
}
|
||||
|
||||
export {
|
||||
ScheduledTasks, Scheduler
|
||||
};
|
||||
@@ -1,14 +0,0 @@
|
||||
import { Client } from 'discord.js';
|
||||
import { Task } from '../../types';
|
||||
import { checkExpiredBans } from '../../utils';
|
||||
|
||||
class CheckExpiredBansTask implements Task {
|
||||
interval: number = 300000;
|
||||
firstRun: boolean = true;
|
||||
|
||||
async handle(context: Client): Promise<void> {
|
||||
await checkExpiredBans(context);
|
||||
}
|
||||
}
|
||||
|
||||
export default new CheckExpiredBansTask();
|
||||
@@ -1,14 +0,0 @@
|
||||
import { Client } from 'discord.js';
|
||||
import { Task } from '../../types';
|
||||
import { closeOldTickets } from '../../utils';
|
||||
|
||||
class CloseStaleTicketsTask implements Task {
|
||||
interval: number = 3.6e6;
|
||||
firstRun: boolean = true;
|
||||
|
||||
async handle(context: Client): Promise<void> {
|
||||
await closeOldTickets(context);
|
||||
}
|
||||
}
|
||||
|
||||
export default new CloseStaleTicketsTask();
|
||||
@@ -1,9 +0,0 @@
|
||||
import checkExpiredBansTask from './check-expired-bans-task';
|
||||
import closeStaleTicketsTask from './close-stale-tickets-task';
|
||||
import pruneOldMessagesTask from './prune-old-messages-task';
|
||||
|
||||
export default [
|
||||
closeStaleTicketsTask,
|
||||
checkExpiredBansTask,
|
||||
pruneOldMessagesTask
|
||||
];
|
||||
@@ -1,13 +0,0 @@
|
||||
import { Task } from '../../types';
|
||||
import { Database } from '../../shared/Database';
|
||||
|
||||
class PruneOldMessagesTask implements Task {
|
||||
interval: number = 3.6e6;
|
||||
firstRun: boolean = true;
|
||||
|
||||
async handle(): Promise<void> {
|
||||
await Database.pruneOldMessages();
|
||||
}
|
||||
}
|
||||
|
||||
export default new PruneOldMessagesTask();
|
||||
@@ -0,0 +1,11 @@
|
||||
import { Client } from 'discord.js';
|
||||
import { checkExpiredBans } from '../utils';
|
||||
|
||||
export default {
|
||||
interval: 300000,
|
||||
firstRun: true,
|
||||
|
||||
handler: async (context: Client) => {
|
||||
await checkExpiredBans(context);
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,11 @@
|
||||
import { Client } from 'discord.js';
|
||||
import { closeOldTickets } from '../utils';
|
||||
|
||||
export default {
|
||||
interval: 3.6e6,
|
||||
firstRun: true,
|
||||
|
||||
handler: async (context: Client) => {
|
||||
await closeOldTickets(context);
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,9 @@
|
||||
import checkExpiredBansTask from './checkExpiredBansTask';
|
||||
import closeStaleTicketsTask from './closeStaleTicketsTask';
|
||||
import pruneOldMessagesTask from './pruneOldMessagesTask';
|
||||
|
||||
export default [
|
||||
closeStaleTicketsTask,
|
||||
checkExpiredBansTask,
|
||||
pruneOldMessagesTask
|
||||
];
|
||||
@@ -0,0 +1,11 @@
|
||||
import { Client } from 'discord.js';
|
||||
import { Database } from '../shared/Database';
|
||||
|
||||
export default {
|
||||
interval: 3.6e6,
|
||||
firstRun: true,
|
||||
|
||||
handler: async (context: Client) => {
|
||||
await Database.pruneOldMessages();
|
||||
},
|
||||
};
|
||||
Vendored
-1
@@ -3,4 +3,3 @@ export * from './database-types.d';
|
||||
export * from './e621-types.d';
|
||||
export * from './handler.d';
|
||||
export * from './helper-types.d';
|
||||
export * from './scheduler.d';
|
||||
|
||||
Vendored
-8
@@ -1,8 +0,0 @@
|
||||
import { Client } from 'discord.js';
|
||||
|
||||
export interface Task {
|
||||
interval: number;
|
||||
firstRun: boolean;
|
||||
|
||||
handle(context: Client): Promise<void>;
|
||||
};
|
||||
Reference in New Issue
Block a user