judge: add getFile()

This commit is contained in:
undefined committed 2023-04-24 00:20:28 +08:00
1 parent 453de20572
commit 6d591aef37
3 files changed
+6 -4

No files matched your search

+1 -3
View File
@@ -53,9 +53,7 @@ function judgeCase(c: NormalizedCase) {
if (code < 32) message = signals[code];
else message = { message: 'Your program returned {0}.', params: [code] };
}
await Promise.all(
Object.values(res.fileIds).map((id) => del(id)),
).catch(() => { /* Ignore file doesn't exist */ });
await Promise.allSettled(Object.values(res.fileIds).map((id) => del(id)));
if (runner && ctx.rerun && c.time <= 5000 && status === STATUS.STATUS_TIME_LIMIT_EXCEEDED) {
ctx.rerun--;
return await runner(ctx, ctxSubtask);
+4
View File
@@ -179,6 +179,10 @@ export async function del(fileId: string) {
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> {
let result: SandboxResult;
try {
+1 -1
View File
@@ -9,7 +9,7 @@ const client = new Proxy({
return superagent.post(`${url}/run`).send(req).then((res) => res.body);
},
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> {
return superagent.delete(`${url}/file/${fileId}`).then((res) => res.body);