This commit is contained in:
masnn committed 2020-04-08 21:10:24 +08:00
1 parent 777a4bc927
commit 9c45527522
396 files changed
+13772

No files matched your search

+42
View File
@@ -0,0 +1,42 @@
import attachObjectMeta from './util/objectMeta';
export const CONTEST_TYPE_CONTEST = 1;
export const CONTEST_TYPE_HOMEWORK = 2;
export const RULE_OI = 2;
export const RULE_ACM = 3;
export const RULE_ASSIGNMENT = 11;
export const DOCTYPE_TO_CTYPE = {
30: 'contest',
60: 'homework',
};
attachObjectMeta(DOCTYPE_TO_CTYPE, 'intKey', true);
export const CTYPE_TO_DOCTYPE = {
contest: 30,
homework: 60,
};
export const CONTEST_RULES = [
RULE_OI,
RULE_ACM,
];
export const HOMEWORK_RULES = [
RULE_ASSIGNMENT,
];
export const RULE_ID = {
[RULE_OI]: 'oi',
[RULE_ACM]: 'acm',
[RULE_ASSIGNMENT]: 'assignment',
};
attachObjectMeta(RULE_ID, 'intKey', true);
export const RULE_TEXTS = {
[RULE_OI]: 'OI',
[RULE_ACM]: 'ACM/ICPC',
[RULE_ASSIGNMENT]: 'Assignment',
};
attachObjectMeta(RULE_TEXTS, 'intKey', true);
+25
View File
@@ -0,0 +1,25 @@
import attachObjectMeta from './util/objectMeta';
export const JOIN_METHOD_NONE = 0;
export const JOIN_METHOD_ALL = 1;
export const JOIN_METHOD_CODE = 2;
export const JOIN_METHOD_RANGE = {
[JOIN_METHOD_NONE]: 'No user is allowed to join this domain',
[JOIN_METHOD_ALL]: 'Any user is allowed to join this domain',
[JOIN_METHOD_CODE]: 'Any user is allowed to join this domain with an invitation code',
};
attachObjectMeta(JOIN_METHOD_RANGE, 'intKey', true);
export const JOIN_EXPIRATION_KEEP_CURRENT = 0;
export const JOIN_EXPIRATION_UNLIMITED = -1;
export const JOIN_EXPIRATION_RANGE = {
[JOIN_EXPIRATION_KEEP_CURRENT]: 'Keep current expiration',
3: 'In 3 hours',
24: 'In 1 day',
[24 * 3]: 'In 3 days',
[24 * 7]: 'In 1 week',
[24 * 30]: 'In 1 month',
[JOIN_EXPIRATION_UNLIMITED]: 'Never expire',
};
attachObjectMeta(JOIN_EXPIRATION_RANGE, 'intKey', true);
+50
View File
@@ -0,0 +1,50 @@
import attachObjectMeta from './util/objectMeta';
export const LANG_TEXTS = {
c: 'C',
cc: 'C++',
cs: 'C#',
pas: 'Pascal',
java: 'Java',
py: 'Python',
py3: 'Python 3',
php: 'PHP',
rs: 'Rust',
hs: 'Haskell',
js: 'JavaScript',
go: 'Go',
rb: 'Ruby',
};
export const LANG_HIGHLIGHT_ID = {
c: 'c',
cc: 'cpp',
cs: 'csharp',
pas: 'pascal',
java: 'java',
py: 'python',
py3: 'python',
php: 'php',
rs: 'rust',
hs: 'haskell',
js: 'javascript',
go: 'go',
rb: 'ruby',
};
export const LANG_CODEMIRROR_MODES = {
c: 'text/x-csrc',
cc: 'text/x-c++src',
cs: 'text/x-csharp',
pas: 'text/x-pascal',
java: 'text/x-java',
py: 'text/x-python',
py3: 'text/x-python',
php: 'text/x-php',
rs: 'text/x-rustsrc',
hs: 'text/x-haskell',
js: 'text/javascript',
go: 'text/x-go',
rb: 'text/x-ruby',
};
attachObjectMeta(LANG_CODEMIRROR_MODES, 'exportToPython', false);
+18
View File
@@ -0,0 +1,18 @@
import attachObjectMeta from './util/objectMeta';
export const USER_GENDER_MALE = 0;
export const USER_GENDER_FEMALE = 1;
export const USER_GENDER_OTHER = 2;
export const USER_GENDERS = [USER_GENDER_MALE, USER_GENDER_FEMALE, USER_GENDER_OTHER];
export const USER_GENDER_RANGE = {
[USER_GENDER_MALE]: 'Boy ♂',
[USER_GENDER_FEMALE]: 'Girl ♀',
[USER_GENDER_OTHER]: 'Other',
};
attachObjectMeta(USER_GENDER_RANGE, 'intKey', true);
export const USER_GENDER_ICONS = {
[USER_GENDER_MALE]: '♂',
[USER_GENDER_FEMALE]: '♀',
[USER_GENDER_OTHER]: '?',
};
attachObjectMeta(USER_GENDER_ICONS, 'intKey', true);
+98
View File
@@ -0,0 +1,98 @@
import attachObjectMeta from './util/objectMeta';
// Please note that accepted < others, rp system uses this feature.
export const STATUS_WAITING = 0;
export const STATUS_ACCEPTED = 1;
export const STATUS_WRONG_ANSWER = 2;
export const STATUS_TIME_LIMIT_EXCEEDED = 3;
export const STATUS_MEMORY_LIMIT_EXCEEDED = 4;
export const STATUS_OUTPUT_LIMIT_EXCEEDED = 5;
export const STATUS_RUNTIME_ERROR = 6;
export const STATUS_COMPILE_ERROR = 7;
export const STATUS_SYSTEM_ERROR = 8;
export const STATUS_CANCELED = 9;
export const STATUS_ETC = 10;
export const STATUS_JUDGING = 20;
export const STATUS_COMPILING = 21;
export const STATUS_FETCHED = 22;
export const STATUS_IGNORED = 30;
export const TYPE_SUBMISSION = 0;
export const TYPE_PRETEST = 1;
export const STATUS_TEXTS = {
[STATUS_WAITING]: 'Waiting',
[STATUS_ACCEPTED]: 'Accepted',
[STATUS_WRONG_ANSWER]: 'Wrong Answer',
[STATUS_TIME_LIMIT_EXCEEDED]: 'Time Exceeded',
[STATUS_MEMORY_LIMIT_EXCEEDED]: 'Memory Exceeded',
[STATUS_OUTPUT_LIMIT_EXCEEDED]: 'Output Exceeded',
[STATUS_RUNTIME_ERROR]: 'Runtime Error',
[STATUS_COMPILE_ERROR]: 'Compile Error',
[STATUS_SYSTEM_ERROR]: 'System Error',
[STATUS_CANCELED]: 'Cancelled',
[STATUS_ETC]: 'Unknown Error',
[STATUS_JUDGING]: 'Running',
[STATUS_COMPILING]: 'Compiling',
[STATUS_FETCHED]: 'Fetched',
[STATUS_IGNORED]: 'Ignored',
};
attachObjectMeta(STATUS_TEXTS, 'intKey', true);
export const STATUS_CODES = {
[STATUS_WAITING]: 'pending',
[STATUS_ACCEPTED]: 'pass',
[STATUS_WRONG_ANSWER]: 'fail',
[STATUS_TIME_LIMIT_EXCEEDED]: 'fail',
[STATUS_MEMORY_LIMIT_EXCEEDED]: 'fail',
[STATUS_OUTPUT_LIMIT_EXCEEDED]: 'fail',
[STATUS_RUNTIME_ERROR]: 'fail',
[STATUS_COMPILE_ERROR]: 'fail',
[STATUS_SYSTEM_ERROR]: 'fail',
[STATUS_CANCELED]: 'ignored',
[STATUS_ETC]: 'fail',
[STATUS_JUDGING]: 'progress',
[STATUS_COMPILING]: 'progress',
[STATUS_FETCHED]: 'progress',
[STATUS_IGNORED]: 'ignored',
};
attachObjectMeta(STATUS_CODES, 'intKey', true);
/**
* Whether to show detail about each test case for a submission status
*/
export const STATUS_SCRATCHPAD_SHOW_DETAIL_FLAGS = {
[STATUS_WAITING]: false,
[STATUS_ACCEPTED]: true,
[STATUS_WRONG_ANSWER]: true,
[STATUS_TIME_LIMIT_EXCEEDED]: true,
[STATUS_MEMORY_LIMIT_EXCEEDED]: true,
[STATUS_RUNTIME_ERROR]: true,
[STATUS_COMPILE_ERROR]: false,
[STATUS_SYSTEM_ERROR]: false,
[STATUS_CANCELED]: false,
[STATUS_ETC]: false,
[STATUS_JUDGING]: false,
[STATUS_COMPILING]: false,
[STATUS_FETCHED]: false,
[STATUS_IGNORED]: false,
};
attachObjectMeta(STATUS_SCRATCHPAD_SHOW_DETAIL_FLAGS, 'exportToPython', false);
/**
* Short text to show in Scratchpad mode
*/
export const STATUS_SCRATCHPAD_SHORT_TEXTS = {
[STATUS_ACCEPTED]: 'AC',
[STATUS_WRONG_ANSWER]: 'WA',
[STATUS_TIME_LIMIT_EXCEEDED]: 'TLE',
[STATUS_MEMORY_LIMIT_EXCEEDED]: 'MLE',
[STATUS_RUNTIME_ERROR]: 'RTE',
};
attachObjectMeta(STATUS_SCRATCHPAD_SHORT_TEXTS, 'exportToPython', false);
export const TYPE_TEXTS = {
[TYPE_SUBMISSION]: 'Submission',
[TYPE_PRETEST]: 'Pretest',
};
attachObjectMeta(TYPE_TEXTS, 'intKey', true);
+42
View File
@@ -0,0 +1,42 @@
import attachObjectMeta from './util/objectMeta';
export const PRIVACY_PUBLIC = 0;
export const PRIVACY_REGISTERED_ONLY = 1;
export const PRIVACY_SECRET = 2;
export const PRIVACY_RANGE = {
[PRIVACY_PUBLIC]: 'Public',
[PRIVACY_REGISTERED_ONLY]: 'Visible to registered users',
[PRIVACY_SECRET]: 'Secret',
};
attachObjectMeta(PRIVACY_RANGE, 'intKey', true);
export const FUNCTION_RANGE = {
0: 'Disabled',
1: 'Enabled',
};
attachObjectMeta(FUNCTION_RANGE, 'intKey', true);
export const BACKGROUND_RANGE = {
1: 'Bg1',
2: 'Bg2',
3: 'Bg3',
4: 'Bg4',
5: 'Bg5',
6: 'Bg6',
7: 'Bg7',
8: 'Bg8',
9: 'Bg9',
10: 'Bg10',
11: 'Bg11',
12: 'Bg12',
13: 'Bg13',
14: 'Bg14',
15: 'Bg15',
16: 'Bg16',
17: 'Bg17',
18: 'Bg18',
19: 'Bg19',
20: 'Bg20',
21: 'Bg21',
};
attachObjectMeta(BACKGROUND_RANGE, 'intKey', true);
+8
View File
@@ -0,0 +1,8 @@
export default function attachObjectMeta(obj, key, value) {
Object.defineProperty(obj, `__${key}`, {
value,
enumerable: false,
configurable: false,
writable: false,
});
}