diff --git a/apps/vscode-extension/package.json b/apps/vscode-extension/package.json index 1daf581..fb55096 100644 --- a/apps/vscode-extension/package.json +++ b/apps/vscode-extension/package.json @@ -1,7 +1,7 @@ { "name": "atc-helper", "displayName": "AtCoder Helper neo", - "version": "1.1.0", + "version": "1.1.2", "description": "AtCoder 助手", "publisher": "Hoshino", "icon": "img.png", diff --git a/apps/vscode-extension/src/extension.ts b/apps/vscode-extension/src/extension.ts index 96aace9..d4f4bfb 100644 --- a/apps/vscode-extension/src/extension.ts +++ b/apps/vscode-extension/src/extension.ts @@ -264,13 +264,14 @@ export async function handleFetchSubHistory(contest: string, send: (payload: Rec async function pullSubmitStatu(contest: string, taskName: string, send: (payload: Record) => void,): Promise { const maxSetp = 15; + const judgeStatus = new Set(["AC", "WA", "TLE", "MLE", "RE", "CE", "OLE"]); for (let i = 1; i <= maxSetp; i++) { await sleep(2000); try { const statusMap = await fetchSubStatus(contest); send({ type: "statusUpdate", statuses: Object.fromEntries(statusMap) }); const status = statusMap.get(taskName); - if (status && status !== "WJ") { + if (status && judgeStatus.has(status)) { send({ type: "update", text: `评测结果: ${status}` }); return; } diff --git a/packages/webview/src/WebviewApp.tsx b/packages/webview/src/WebviewApp.tsx index 268fb5e..785e7b4 100644 --- a/packages/webview/src/WebviewApp.tsx +++ b/packages/webview/src/WebviewApp.tsx @@ -219,6 +219,11 @@ const WebviewApp: React.FC = ({ if (message.type === "submissionHistory") { const m = message as any; setSubmissionHistory(m.submissions ?? []); + const latest: Record = {}; + for (const s of (m.submissions ?? [])) { + if (!(s.taskScreenName in latest)) latest[s.taskScreenName] = s.status; + } + setTasks(prev => prev.map(t => ({ ...t, status: latest[t.value] }))); setLoadingHistory(false); setStatus(`已获取 ${(m.submissions ?? []).length} 条提交记录`); setShowSubmissionHistory(true); diff --git a/release/extension.vsix b/release/extension.vsix index ca4bcac..a970f60 100644 Binary files a/release/extension.vsix and b/release/extension.vsix differ