import type { SUBMISSION_RESULT } from "./types" export enum SubmissionStatus { compile_error = -2, wrong_answer = -1, accepted = 0, time_limit_exceeded = 1 | 2, memory_limit_exceeded = 3, runtime_error = 4, system_error = 5, pending = 6, judging = 7, partial_accepted = 8, submitting = 9, ast_check_failed = 10, } export enum ContestStatus { initial = "2", // 这里不需要传入到后端,只是为了一开始加载数据的时候,做一个初始位 not_started = "1", underway = "0", finished = "-1", } export enum ContestType { public = "Public", private = "Password Protected", } export const JUDGE_STATUS: { [key in SUBMISSION_RESULT]: { name: string title: string type: "error" | "success" | "warning" | "info" } } = { "-2": { name: "编译失败", title: "编译失败", type: "warning", }, "-1": { name: "答案错误", title: "答案错误", type: "error", }, "0": { name: "答案正确", title: "答案正确", type: "success", }, "1": { name: "运行超时", title: "运行超时", type: "error", }, "2": { name: "运行超时", title: "运行超时", type: "error", }, "3": { name: "内存超限", title: "内存超限", type: "error", }, "4": { name: "运行时错误", title: "运行时错误", type: "warning", }, "5": { name: "系统错误", title: "系统错误", type: "error", }, "6": { name: "等待评分", title: "等待评分", type: "warning", }, "7": { name: "正在评分", title: "正在评分", type: "warning", }, "8": { name: "部分正确", title: "部分正确", type: "warning", }, "9": { name: "正在提交", title: "正在提交", type: "info", }, "10": { name: "语法未通过", title: "答案正确,但语法未通过", type: "success", }, } export const CONTEST_STATUS: { [key in ContestStatus]: { name: string type: "error" | "success" | "warning" } } = { // 这里不需要传入到后端,只是为了一开始加载数据的时候,做一个初始位 "2": { name: "未开始", type: "warning", }, "1": { name: "未开始", type: "warning", }, "0": { name: "进行中", type: "success", }, "-1": { name: "已结束", type: "error", }, } export const CONTEST_TYPE = { PUBLIC: "Public", PRIVATE: "Password Protected", } export const USER_TYPE = { REGULAR_USER: "Regular User", STUDENT_ADMIN: "Student Admin", TEACHER_ADMIN: "Teacher Admin", SUPER_ADMIN: "Super Admin", } export const PROBLEM_PERMISSION = { NONE: "None", OWN: "Own", ALL: "All", } export const STORAGE_KEY = { AUTHED: "authed", LANGUAGE: "problemLanguage", LEARN_CURRENT_STEP: "learnStep", ADMIN_PROBLEM: "adminProblem", ADMIN_PROBLEM_TAGS: "adminProblemTags", } export const DIFFICULTY = { Low: "简单", Mid: "中等", High: "困难", } const cSource = "#include\r\n\r\nint main()\r\n{\r\n \r\n return 0;\r\n}" const cppSource = "#include\r\n\r\nusing namespace std;\r\n\r\nint main()\r\n{\r\n \r\n return 0;\r\n}" const pythonSource = "" const javaSource = 'public class Main {\r\n public static void main(String[] args) {\r\n System.out.println("黄岩一职");\r\n }\r\n}' export const SOURCES = { C: cSource, "C++": cppSource, Java: javaSource, Python3: pythonSource, Python2: "", JavaScript: "", Golang: "", Flowchart: "", } as const export const LANGUAGE_ID = { C: 50, "C++": 54, Java: 62, Python3: 71, Python2: 0, JavaScript: 0, Golang: 0, Flowchart: 0, } as const export const LANGUAGE_FORMAT_VALUE = { C: "c", "C++": "cpp", Java: "java", Python2: "python", Python3: "python", JavaScript: "javascript", Golang: "go", Flowchart: "flowchart", } as const export const LANGUAGE_SHOW_VALUE = { Flowchart: "流程图", C: "C语言", "C++": "C++", Java: "Java", Python2: "Python", Python3: "Python", JavaScript: "JS", Golang: "Go", } as const export const ICON_SET = { Flowchart: "vscode-icons:file-type-drawio", Python2: "devicon:python", Python3: "devicon:python", C: "devicon:c", "C++": "devicon:cplusplus", Java: "devicon:java", JavaScript: "devicon:javascript", Golang: "devicon:go", } as const const cTemplate = `//TEMPLATE BEGIN #include int main() { printf("黄岩一职"); return 0; } //TEMPLATE END` const cppTemplate = `//TEMPLATE BEGIN #include int main() { return 0; } //TEMPLATE END` const blankTemplate = `//PREPEND BEGIN //PREPEND END //TEMPLATE BEGIN //TEMPLATE END //APPEND BEGIN //APPEND END` export const CODE_TEMPLATES = { C: cTemplate, "C++": cppTemplate, Python2: blankTemplate, Python3: blankTemplate, Java: blankTemplate, JavaScript: blankTemplate, Golang: blankTemplate, Flowchart: blankTemplate, } as const export enum ScreenMode { both = "双栏", code = "自测", problem = "题目", } export enum ChartType { Rank, Activity, } // 时间范围配置 export const DURATION_OPTIONS = [ { label: "本节课内", value: "hours:1" }, { label: "两节课内", value: "hours:2" }, { label: "一天内", value: "days:1" }, { label: "一周内", value: "weeks:1" }, { label: "一个月内", value: "months:1" }, { label: "两个月内", value: "months:2" }, { label: "半年内", value: "months:6" }, { label: "一年内", value: "years:1" }, ] as const