From a70fa88343dcf8d12c5ca8efb583e401c7e2995f Mon Sep 17 00:00:00 2001 From: Nix Krystik Date: Fri, 28 Aug 2026 01:26:07 +0800 Subject: [PATCH] (tasks): simply the tasks :fire: --- src/index.ts | 6 ++++- src/scheduler/index.ts | 23 ------------------- src/scheduler/tasks/index.ts | 9 -------- .../checkExpiredBansTask.ts} | 4 ++-- .../closeStaleTicketsTask.ts} | 4 ++-- src/tasks/index.ts | 9 ++++++++ .../pruneOldMessagesTask.ts} | 4 ++-- 7 files changed, 20 insertions(+), 39 deletions(-) delete mode 100644 src/scheduler/index.ts delete mode 100644 src/scheduler/tasks/index.ts rename src/{scheduler/tasks/check-expired-bans-task.ts => tasks/checkExpiredBansTask.ts} (76%) rename src/{scheduler/tasks/close-stale-tickets-task.ts => tasks/closeStaleTicketsTask.ts} (76%) create mode 100644 src/tasks/index.ts rename src/{scheduler/tasks/prune-old-messages-task.ts => tasks/pruneOldMessagesTask.ts} (72%) diff --git a/src/index.ts b/src/index.ts index 3fe90fa..80e7936 100644 --- a/src/index.ts +++ b/src/index.ts @@ -8,6 +8,7 @@ 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; @@ -141,7 +142,10 @@ client.on('clientReady', async () => { await initializeWebserver(client); - ScheduledTasks.forEach(task => scheduler.add(task)); + tasks.forEach(async (task) => { + if (task.firstRun) await task.handle(client); + setInterval(async () => await task.handle(client), task.interval); + }); events.forEach(event => client.on(event.event, (...args) => diff --git a/src/scheduler/index.ts b/src/scheduler/index.ts deleted file mode 100644 index 22059df..0000000 --- a/src/scheduler/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Client } from 'discord.js'; -import { Task } from '../types'; -import ScheduledTasks from './tasks'; - -class Scheduler { - private tasks = new Map(); - 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 -}; diff --git a/src/scheduler/tasks/index.ts b/src/scheduler/tasks/index.ts deleted file mode 100644 index 8ce79a0..0000000 --- a/src/scheduler/tasks/index.ts +++ /dev/null @@ -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 -]; diff --git a/src/scheduler/tasks/check-expired-bans-task.ts b/src/tasks/checkExpiredBansTask.ts similarity index 76% rename from src/scheduler/tasks/check-expired-bans-task.ts rename to src/tasks/checkExpiredBansTask.ts index a6f8d0b..762efc8 100644 --- a/src/scheduler/tasks/check-expired-bans-task.ts +++ b/src/tasks/checkExpiredBansTask.ts @@ -1,6 +1,6 @@ import { Client } from 'discord.js'; -import { Task } from '../../types'; -import { checkExpiredBans } from '../../utils'; +import { Task } from '../types'; +import { checkExpiredBans } from '../utils'; class CheckExpiredBansTask implements Task { interval: number = 300000; diff --git a/src/scheduler/tasks/close-stale-tickets-task.ts b/src/tasks/closeStaleTicketsTask.ts similarity index 76% rename from src/scheduler/tasks/close-stale-tickets-task.ts rename to src/tasks/closeStaleTicketsTask.ts index a20022f..0c6e243 100644 --- a/src/scheduler/tasks/close-stale-tickets-task.ts +++ b/src/tasks/closeStaleTicketsTask.ts @@ -1,6 +1,6 @@ import { Client } from 'discord.js'; -import { Task } from '../../types'; -import { closeOldTickets } from '../../utils'; +import { Task } from '../types'; +import { closeOldTickets } from '../utils'; class CloseStaleTicketsTask implements Task { interval: number = 3.6e6; diff --git a/src/tasks/index.ts b/src/tasks/index.ts new file mode 100644 index 0000000..a369618 --- /dev/null +++ b/src/tasks/index.ts @@ -0,0 +1,9 @@ +import checkExpiredBansTask from './checkExpiredBansTask'; +import closeStaleTicketsTask from './closeStaleTicketsTask'; +import pruneOldMessagesTask from './pruneOldMessagesTask'; + +export default [ + closeStaleTicketsTask, + checkExpiredBansTask, + pruneOldMessagesTask +]; diff --git a/src/scheduler/tasks/prune-old-messages-task.ts b/src/tasks/pruneOldMessagesTask.ts similarity index 72% rename from src/scheduler/tasks/prune-old-messages-task.ts rename to src/tasks/pruneOldMessagesTask.ts index 822a52e..765ba80 100644 --- a/src/scheduler/tasks/prune-old-messages-task.ts +++ b/src/tasks/pruneOldMessagesTask.ts @@ -1,5 +1,5 @@ -import { Task } from '../../types'; -import { Database } from '../../shared/Database'; +import { Task } from '../types'; +import { Database } from '../shared/Database'; class PruneOldMessagesTask implements Task { interval: number = 3.6e6;