migrate: add optional solution field

pull/359/head
undefined 2 years ago
parent bcf0938f90
commit 8582de2560

@ -1,17 +1,19 @@
{
"name": "@hydrooj/migrate",
"version": "0.1.0",
"version": "0.1.1",
"main": "package.json",
"repository": "git@github.com:hydro-dev/Hydro.git",
"author": "undefined <i@undefined.moe>",
"license": "AGPL-3.0-or-later",
"devDependencies": {
"@types/mongodb": "^3.6.20",
"@types/mysql": "^2.15.21"
"@types/mysql": "^2.15.21",
"@types/turndown": "^5.0.1"
},
"dependencies": {
"@hydrooj/utils": "workspace:*",
"mongodb": "^3.7.3",
"mysql": "^2.18.1"
"mysql": "^2.18.1",
"turndown": "^7.1.1"
}
}

@ -3,6 +3,7 @@
import fs from 'fs-extra';
import { ObjectID } from 'mongodb';
import mysql from 'mysql';
import TurndownService from 'turndown';
import { STATUS } from '@hydrooj/utils/lib/status';
import { noop, Time } from '@hydrooj/utils/lib/utils';
import { NotFoundError } from 'hydrooj/src/error';
@ -13,9 +14,15 @@ import * as contest from 'hydrooj/src/model/contest';
import domain from 'hydrooj/src/model/domain';
import problem from 'hydrooj/src/model/problem';
import record from 'hydrooj/src/model/record';
import SolutionModel from 'hydrooj/src/model/solution';
import * as system from 'hydrooj/src/model/system';
import user from 'hydrooj/src/model/user';
const turndown = new TurndownService({
codeBlockStyle: 'fenced',
bulletListMarker: '-',
});
const statusMap = {
4: STATUS.STATUS_ACCEPTED,
5: STATUS.STATUS_WRONG_ANSWER,
@ -145,6 +152,8 @@ export async function run({
accepted int 11 Y ac
submit int 11 Y
solved int 11 Y
solution #optional
*/
const pidMap: Record<string, number> = {};
const [[{ 'count(*)': pcount }]] = await query('SELECT count(*) FROM `problem`');
@ -183,6 +192,10 @@ export async function run({
maintainer,
html: true,
});
if (pdoc.solution) {
const md = turndown.turndown(pdoc.solution);
await SolutionModel.add(domainId, pidMap[pdoc.problem_id], 1, md);
}
}
}

Loading…
Cancel
Save