11import { CronJob } from 'cron' ;
22
3+ import { PSCronJobs } from '@/cache' ;
4+
35import type { Client } from 'ps-client' ;
46
57// Timezones
@@ -9,16 +11,11 @@ enum TimeZone {
911 GMT = 'Etc/GMT' ,
1012}
1113
12- class PSCronJobManager {
13- client : Client ;
14+ export class PSCronJobManager {
1415 readonly #jobs: Record < string , CronJob > = { } ;
1516
16- constructor ( client : Client ) {
17- this . client = client ;
18- }
19-
2017 register ( id : string , cronTime : string , timeZone : TimeZone , callback : ( ) => void ) : void {
21- this . #jobs[ id ] = CronJob . from ( { name : id , cronTime, onTick : callback , timeZone } ) ;
18+ this . #jobs[ id ] = CronJob . from ( { name : id , cronTime, start : true , onTick : callback , timeZone } ) ;
2219 }
2320 kill ( ) : void {
2421 for ( const jobId in this . #jobs) {
@@ -27,8 +24,8 @@ class PSCronJobManager {
2724 }
2825}
2926
30- export function startCron ( client : Client ) : PSCronJobManager {
31- const Jobs = new PSCronJobManager ( client ) ;
27+ export function startPSCron ( client : Client ) : PSCronJobManager {
28+ const Jobs = new PSCronJobManager ( ) ;
3229
3330 // TODO Move back to Hindi and remove 'CRON:'
3431 Jobs . register ( 'hindi-automodchat-enable' , '0 0 * * *' , TimeZone . IST , ( ) => {
@@ -40,5 +37,9 @@ export function startCron(client: Client): PSCronJobManager {
4037 room ?. send ( 'CRON: /automodchat off' ) ;
4138 } ) ;
4239
40+ // Kill existing cron jobs
41+ PSCronJobs . manager ?. kill ( ) ;
42+ PSCronJobs . manager = Jobs ;
43+
4344 return Jobs ;
4445}
0 commit comments