diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 6916e7da5..adab337b5 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.32.28", + "version": "2.32.29", "bin": "bin/hydrooj.js", "main": "src/loader", "module": "src/loader", diff --git a/packages/hydrooj/src/handler/judge.ts b/packages/hydrooj/src/handler/judge.ts index b9d974acb..f4c374a13 100644 --- a/packages/hydrooj/src/handler/judge.ts +++ b/packages/hydrooj/src/handler/judge.ts @@ -11,11 +11,11 @@ import * as contest from '../model/contest'; import domain from '../model/domain'; import task from '../model/task'; import * as system from '../model/system'; +import storage from '../model/storage'; import * as bus from '../service/bus'; import { Route, Handler, Connection, ConnectionHandler, post, Types, } from '../service/server'; -import storage from '../service/storage'; import { updateJudge } from '../service/monitor'; const logger = new Logger('judge'); @@ -81,6 +81,7 @@ export async function next(body: JudgeResultBody) { export async function end(body: JudgeResultBody) { if (body.rid) body.rid = new ObjectID(body.rid); let rdoc = await record.get(body.rid); + if (!rdoc) return; const $set: Partial = {}; const $push: any = {}; const $unset: any = { progress: '' }; diff --git a/packages/hydrooj/src/model/storage.ts b/packages/hydrooj/src/model/storage.ts index 18610e973..154611aef 100644 --- a/packages/hydrooj/src/model/storage.ts +++ b/packages/hydrooj/src/model/storage.ts @@ -88,8 +88,7 @@ export class StorageModel { { path: target, autoDelete: { $exists: false } }, { $set: { lastUsage: new Date() } }, ); - if (!res.value) return await storage.signDownloadLink(target, filename, noExpire, useAlternativeEndpointFor); - return await storage.signDownloadLink(res.value._id, filename, noExpire, useAlternativeEndpointFor); + return await storage.signDownloadLink(res.value?._id || target, filename, noExpire, useAlternativeEndpointFor); } } diff --git a/packages/hydrooj/src/service/server.ts b/packages/hydrooj/src/service/server.ts index 22b97c5cb..0492918c8 100644 --- a/packages/hydrooj/src/service/server.ts +++ b/packages/hydrooj/src/service/server.ts @@ -838,6 +838,7 @@ export function Connection( const sock = sockjs.createServer({ prefix, log }); const checker = Checker(permPrivChecker); sock.on('connection', async (conn) => { + if (!conn) return; const h: Dictionary = new RouteConnHandler(conn); try { const args = { domainId: 'system', ...h.request.params }; diff --git a/packages/utils/lib/utils.ts b/packages/utils/lib/utils.ts index fc37a78cd..2ca233820 100644 --- a/packages/utils/lib/utils.ts +++ b/packages/utils/lib/utils.ts @@ -275,7 +275,7 @@ export namespace Time { export function errorMessage(err: Error | string) { const t = typeof err === 'string' ? err : err.stack; const parsed = t - .replace(/[A-Z]:\\.+\\@hydrooj\\/g, '\\') + .replace(/[A-Z]:\\.+\\@hydrooj\\/g, '@hydrooj\\') .replace(/\/.+\/@hydrooj\//g, '\\') .replace(/[A-Z]:\\.+\\hydrooj\\/g, 'hydrooj\\') .replace(/\/.+\/hydrooj\//g, 'hydrooj/') diff --git a/packages/utils/package.json b/packages/utils/package.json index 06e4526d5..11c184958 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/utils", - "version": "1.1.2", + "version": "1.1.3", "description": "hydrooj utils", "main": "package.json", "repository": "https://github.com/hydro-dev/Hydro.git",