diff --git a/packages/hydrooj/src/model/task.ts b/packages/hydrooj/src/model/task.ts index a660a62b4..0e776d811 100644 --- a/packages/hydrooj/src/model/task.ts +++ b/packages/hydrooj/src/model/task.ts @@ -144,7 +144,7 @@ Worker.addHandler('task.daily', async () => { await global.Hydro.script.rp?.run({}, new Logger('task/rp').debug); await global.Hydro.script.problemStat?.run({}, new Logger('task/problem').debug); if (global.Hydro.model.system.get('server.checkUpdate')) { - await global.Hydro.script.checkVersion?.run({}, new Logger('task/checkUpdate').debug); + await global.Hydro.script.checkUpdate?.run({}, new Logger('task/checkUpdate').debug); } }); bus.on('domain/delete', (domainId) => coll.deleteMany({ domainId })); diff --git a/packages/hydrooj/src/script/checkUpdate.ts b/packages/hydrooj/src/script/checkUpdate.ts index c0e7a87ec..d7683c748 100644 --- a/packages/hydrooj/src/script/checkUpdate.ts +++ b/packages/hydrooj/src/script/checkUpdate.ts @@ -15,7 +15,7 @@ async function getRemoteVersion(id: string) { } } -export async function run() { +export async function run(_: {}, report: Function) { const current = global.Hydro.version; const message = ['']; for (const name in current) { @@ -24,7 +24,7 @@ export async function run() { const remote = await getRemoteVersion(id); if (!remote) continue; const stored = system.get(`checkVersion.${id}`); - if (semver.lt(stored, remote)) { + if (!stored || semver.lt(stored, remote)) { system.set(`checkVersion.${id}`, remote); if (semver.lt(current[name], remote)) { message.push(`${id}\t${current[name]} -> ${remote}`); @@ -32,6 +32,7 @@ export async function run() { } } if (message.length > 1) { + report({ message: `Found ${message.length - 1} package${message.length > 2 ? 's have' : ' has'} new version` }); MessageModel.sendNotification('Packages have new version: {0}', message.join('\n')); } return true;