From ba2cbffbfd7b1a38f29ca425c3dba9bc2eb97ca2 Mon Sep 17 00:00:00 2001 From: undefined Date: Fri, 2 Apr 2021 13:14:03 +0800 Subject: [PATCH] judge: fix cache prune --- packages/hydrojudge/package.json | 2 +- packages/hydrojudge/src/cache.ts | 6 ++++-- packages/hydrooj/src/handler/problem.ts | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/hydrojudge/package.json b/packages/hydrojudge/package.json index a9dcd5a0e..1007a5976 100644 --- a/packages/hydrojudge/package.json +++ b/packages/hydrojudge/package.json @@ -1,7 +1,7 @@ { "name": "@hydrooj/hydrojudge", "bin": "bin/hydrojudge.js", - "version": "2.4.16", + "version": "2.4.17", "os": [ "linux" ], diff --git a/packages/hydrojudge/src/cache.ts b/packages/hydrojudge/src/cache.ts index 5df81edf0..72c475f74 100644 --- a/packages/hydrojudge/src/cache.ts +++ b/packages/hydrojudge/src/cache.ts @@ -23,10 +23,10 @@ export = function main() { for (const domain of domains) { const domaindir = path.resolve(hostdir, domain); if (!fs.statSync(domaindir).isDirectory()) continue; - const problems = fs.readdirSync(domaindir); + let problems = fs.readdirSync(domaindir); for (const problem of problems) { const problemdir = path.resolve(domaindir, problem); - if (!fs.statSync(problem).isDirectory()) continue; + if (!fs.statSync(problemdir).isDirectory()) continue; let lastUsage = 0; if (fs.existsSync(path.resolve(problemdir, 'lastUsage'))) { const content = fs.readFileSync(path.resolve(problemdir, 'lastUsage')).toString(); @@ -37,6 +37,8 @@ export = function main() { cnt++; logger.info('Removed cache %s', problemdir); } + problems = fs.readdirSync(domaindir); + if (!problems.length) fs.removeSync(domaindir); } } logger.info('Done! %d items deleted.', cnt); diff --git a/packages/hydrooj/src/handler/problem.ts b/packages/hydrooj/src/handler/problem.ts index 84fd75322..853e58fde 100644 --- a/packages/hydrooj/src/handler/problem.ts +++ b/packages/hydrooj/src/handler/problem.ts @@ -66,7 +66,7 @@ export class ProblemMainHandler extends ProblemHandler { let sort: number[]; if (q) { path[1][1] = 'problem_main'; - path.push([q, null, null, true]); + path.push([`${this.translate('Keyword')}: ${q}`, null, null, true]); if (search) { const result = await search(domainId, q); query.docId = { $in: result };