website/src/hooks.server.ts

21 lines
912 B
TypeScript

import { updateLastPosts } from '$lib/bluesky';
import { lastFmUpdateNowPlaying } from '$lib/lastfm';
import { steamUpdateNowPlaying } from '$lib/steam'
import { cancelJob, scheduleJob, scheduledJobs } from 'node-schedule'
const UPDATE_LAST_JOB_NAME = "update steam game, lastfm track, bsky posts"
if (UPDATE_LAST_JOB_NAME in scheduledJobs) {
console.log(`${UPDATE_LAST_JOB_NAME} is already running, cancelling so we can start a new one`)
cancelJob(UPDATE_LAST_JOB_NAME)
}
console.log(`starting ${UPDATE_LAST_JOB_NAME} job...`);
scheduleJob(UPDATE_LAST_JOB_NAME, "*/1 * * * *", async () => {
console.log(`running ${UPDATE_LAST_JOB_NAME} job...`)
try {
await Promise.all([steamUpdateNowPlaying(), lastFmUpdateNowPlaying(), updateLastPosts()])
} catch (err) {
console.log(`error while running ${UPDATE_LAST_JOB_NAME} job: ${err}`)
}
}).invoke() // invoke once immediately