From 3f8926f36c644a0dab04c6494b7255b5d07b305e Mon Sep 17 00:00:00 2001 From: undefined Date: Thu, 1 Jul 2021 09:48:05 +0800 Subject: [PATCH] core: domain_list: filter unused domain --- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/handler/home.ts | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index fea28fa2a..392cec80d 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.29.10", + "version": "2.29.11", "bin": "bin/hydrooj.js", "main": "dist/loader.js", "typings": "dist/loader.d.ts", diff --git a/packages/hydrooj/src/handler/home.ts b/packages/hydrooj/src/handler/home.ts index c5f698a0c..73c366f53 100644 --- a/packages/hydrooj/src/handler/home.ts +++ b/packages/hydrooj/src/handler/home.ts @@ -26,6 +26,7 @@ import token from '../model/token'; import * as training from '../model/training'; import { PERM, PRIV } from '../model/builtin'; import BlackListModel from '../model/blacklist'; +import ProblemModel from '../model/problem'; const { geoip, useragent } = global.Hydro.lib; @@ -293,8 +294,15 @@ class HomeDomainHandler extends Handler { const dids = Object.keys(dudict); ddocs = await domain.getMulti({ _id: { $in: dids } }).toArray(); } else { - ddocs = await domain.getMulti().toArray(); - for (const ddoc of ddocs) dudict[ddoc._id] = ddoc; + const _ddocs = await domain.getMulti().toArray(); + for (const ddoc of _ddocs) { + // eslint-disable-next-line no-await-in-loop + const pcount = await ProblemModel.count(ddoc._id, {}); + if (pcount >= 3) { + dudict[ddoc._id] = ddoc; + ddocs.push(ddoc); + } + } } const canManage = {}; for (const ddoc of ddocs) {