core: script: 修复脚本回显错误的问题

This commit is contained in:
undefined committed 2021-01-22 13:41:53 +08:00
1 parent 12c43a9635
commit 6c6a0df0f0
4 files changed
+21 -16

No files matched your search

+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "hydrooj",
"version": "2.15.29",
"version": "2.15.30",
"bin": "bin/hydrooj.js",
"main": "dist/loader.js",
"typings": "dist/loader.d.ts",
+3 -3
View File
@@ -82,14 +82,14 @@ class RecordDetailHandler extends RecordHandler {
problem.get(domainId, rdoc.pid),
user.getById(domainId, rdoc.uid),
]);
if (!(pdoc && this.user.hasPerm(PERM.PERM_VIEW_PROBLEM))) {
pdoc = problem.Pdoc.create(pdoc?.docId || 0, pdoc?.pid || '*');
}
if (!rdoc.contest && pdoc.hidden && pdoc.owner !== this.user._id) {
if (!this.user.hasPerm(PERM.PERM_VIEW_PROBLEM_HIDDEN)) {
pdoc = problem.Pdoc.create(pdoc.docId, pdoc.pid);
}
}
if (!this.user.hasPerm(PERM.PERM_VIEW_PROBLEM)) {
pdoc = problem.Pdoc.create(pdoc.docId, pdoc.pid);
}
this.response.body = {
path: [
['Hydro', 'homepage'],
+15 -11
View File
@@ -30,18 +30,22 @@ export async function run() {
];
const bulk = db.collection('document').initializeUnorderedBulkOp();
db.collection('record').aggregate(pipeline).each(
(err, adoc: any) => bulk.find({
domainId: adoc._id.domainId,
docType: document.TYPE_PROBLEM,
docId: adoc._id.pid,
}).updateOne({
$set: {
nSubmit: adoc.nSubmit,
nAccept: adoc.nAccept,
},
}),
(err, adoc: any) => {
if (adoc) {
bulk.find({
domainId: adoc._id.domainId,
docType: document.TYPE_PROBLEM,
docId: adoc._id.pid,
}).updateOne({
$set: {
nSubmit: adoc.nSubmit,
nAccept: adoc.nAccept,
},
});
}
},
);
await bulk.execute();
if (bulk.length) await bulk.execute();
}
export const validate = {};
+2 -1
View File
@@ -128,7 +128,8 @@ async function runInDomain(domainId: string, isSub: boolean, report: Function) {
for (const dudoc of dudocs) {
deltaudict[dudoc.uid] = dudoc.rpdelta || 0;
}
const contests = await contest.getMulti(domainId, { rated: true }).sort('endAt', -1).toArray();
const contests = await contest.getMulti(domainId, { rated: true })
.sort('endAt', -1).toArray();
await report({ message: `Found ${contests.length} contests in ${domainId}` });
for (const i in contests) {
const tdoc = contests[i];