judge: add getFile()

pull/562/head
undefined 1 year ago
parent 453de20572
commit 6d591aef37
No known key found for this signature in database

@ -53,9 +53,7 @@ function judgeCase(c: NormalizedCase) {
if (code < 32) message = signals[code]; if (code < 32) message = signals[code];
else message = { message: 'Your program returned {0}.', params: [code] }; else message = { message: 'Your program returned {0}.', params: [code] };
} }
await Promise.all( await Promise.allSettled(Object.values(res.fileIds).map((id) => del(id)));
Object.values(res.fileIds).map((id) => del(id)),
).catch(() => { /* Ignore file doesn't exist */ });
if (runner && ctx.rerun && c.time <= 5000 && status === STATUS.STATUS_TIME_LIMIT_EXCEEDED) { if (runner && ctx.rerun && c.time <= 5000 && status === STATUS.STATUS_TIME_LIMIT_EXCEEDED) {
ctx.rerun--; ctx.rerun--;
return await runner(ctx, ctxSubtask); return await runner(ctx, ctxSubtask);

@ -179,6 +179,10 @@ export async function del(fileId: string) {
await client.deleteFile(fileId); await client.deleteFile(fileId);
} }
export async function get(fileId: string) {
return await client.getFile(fileId);
}
export async function run(execute: string, params?: Parameter): Promise<SandboxAdaptedResult> { export async function run(execute: string, params?: Parameter): Promise<SandboxAdaptedResult> {
let result: SandboxResult; let result: SandboxResult;
try { try {

@ -9,7 +9,7 @@ const client = new Proxy({
return superagent.post(`${url}/run`).send(req).then((res) => res.body); return superagent.post(`${url}/run`).send(req).then((res) => res.body);
}, },
getFile(fileId: string): Promise<Buffer> { getFile(fileId: string): Promise<Buffer> {
return superagent.get(`${url}/file/${fileId}`).then((res) => res.body); return superagent.get(`${url}/file/${fileId}`).responseType('arraybuffer').then((res) => res.body);
}, },
deleteFile(fileId: string): Promise<void> { deleteFile(fileId: string): Promise<void> {
return superagent.delete(`${url}/file/${fileId}`).then((res) => res.body); return superagent.delete(`${url}/file/${fileId}`).then((res) => res.body);

Loading…
Cancel
Save