diff --git a/app/cron.mjs b/app/cron.mjs index 4f64747..45e13cb 100644 --- a/app/cron.mjs +++ b/app/cron.mjs @@ -1,12 +1,15 @@ import { CronJob } from "cron"; -import { updateAll } from "./data/index.mjs"; +import { updatePrimary, updateLowPriority } from "./data/index.mjs"; import { warmCaches } from "./splatnet/index.mjs"; import { sendStatuses } from "./social/index.mjs"; export default function() { new CronJob('5,20,35,50 * * * *', warmCaches, null, true); new CronJob('15 0,2,5,10,15,30,45 * * * *', async () => { - await updateAll(); + await updatePrimary(); await sendStatuses(); }, null, true); + new CronJob('1 * * * *', async () => { + await updateLowPriority(); + }, null, true); } diff --git a/app/data/index.mjs b/app/data/index.mjs index 093ecf9..d44869b 100644 --- a/app/data/index.mjs +++ b/app/data/index.mjs @@ -16,21 +16,43 @@ function updaters() { tokens.EU && new FestivalUpdater('EU'), tokens.JP && new FestivalUpdater('JP'), tokens.AP && new FestivalUpdater('AP'), - new XRankUpdater('Tentatek', 'ATLANTIC'), - new XRankUpdater('Takoroka', 'PACIFIC'), ].filter(u => u); } -export async function updateAll() { - console.info('Running all updaters...'); +function lowPriorityUpdaters() { + return [ + new XRankUpdater('Tentatek', 'ATLANTIC'), + new XRankUpdater('Takoroka', 'PACIFIC'), + ]; +} - for (let updater of updaters()) { +async function run(updaters) { + for (let updater of updaters) { try { await updater.updateIfNeeded(); } catch (e) { console.error(e); } } - - console.info('Done running updaters'); +} + +export async function updateAll() { + console.info('Running all updaters...'); + await run([ + ...updaters(), + ...lowPriorityUpdaters(), + ]); + console.info('Done running all updaters'); +} + +export async function updatePrimary() { + console.info('Running primary updaters...'); + await run(updaters()); + console.info('Done running primary updaters'); +} + +export async function updateLowPriority() { + console.info('Running low-priority updaters...'); + await run(lowPriorityUpdaters()); + console.info('Done running low-priority updaters'); } diff --git a/app/index.mjs b/app/index.mjs index dc12397..8cf7af3 100644 --- a/app/index.mjs +++ b/app/index.mjs @@ -2,7 +2,7 @@ import dotenv from 'dotenv'; import consoleStamp from 'console-stamp'; import cron from './cron.mjs'; import { sendStatuses, testStatuses } from './social/index.mjs'; -import { updateAll } from './data/index.mjs'; +import { updatePrimary, updateAll } from './data/index.mjs'; import { warmCaches } from "./splatnet/index.mjs"; import MastodonClient from './social/clients/MastodonClient.mjs'; import ImageWriter from './social/clients/ImageWriter.mjs'; @@ -16,7 +16,8 @@ const actions = { socialTest: testStatuses, socialTestMastodon: () => testStatuses([new MastodonClient]), socialTestImage: () => testStatuses([new ImageWriter]), - splatnet: updateAll, + splatnet: updatePrimary, + splatnetAll: updateAll, warmCaches, } diff --git a/package.json b/package.json index c35a77c..246bef1 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "social:test:image": "node app/index.mjs socialTestImage", "social:test:mastodon": "node app/index.mjs socialTestMastodon", "splatnet": "node app/index.mjs splatnet", + "splatnet:all": "node app/index.mjs splatnetAll", "warmCaches": "node app/index.mjs warmCaches" }, "dependencies": {