mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-17 09:36:08 +08:00
1 parent
584a0edca6
commit
f7478ab346
12 files changed
+141
-62
No files matched your search
@@ -0,0 +1 @@
|
||||
Ensure index for problem search: 初始化 better-search 插件
|
||||
@@ -2,7 +2,7 @@ import nodejieba from 'nodejieba';
|
||||
import { Pdoc } from 'hydrooj';
|
||||
import * as document from 'hydrooj/dist/model/document';
|
||||
|
||||
export const description = 'Ensure index for peoblem search';
|
||||
export const description = 'Ensure index for problem search';
|
||||
|
||||
export async function run() {
|
||||
await document.coll.find({ docType: document.TYPE_PROBLEM }).forEach(async (doc: Pdoc) => {
|
||||
|
||||
@@ -7,18 +7,28 @@ Cannot find output file {0}.: 找不到输出文件 {0}。
|
||||
Cannot find user extra file {0}.: 找不到用户额外文件 {0}。
|
||||
Cannot parse testdata.: 无法解析测试数据。
|
||||
Checker returned {0}.: 比较器返回了{0}。
|
||||
Disable builtin judge: 禁用内置评测机
|
||||
Executable file not found.: 没有找到可执行文件。
|
||||
Found {0} testcases.: 识别到 {0} 个测试点。
|
||||
Invalid judge_extra_files config.: 无效的 judge_extra_files 配置。
|
||||
Invalid user_extra_files config.: 无效的 user_extra_files 配置。
|
||||
Max testcases per problem: 单题最多测试点数量
|
||||
Problem data not found.: 没有找到测试数据。
|
||||
Read {0}, expect {1}.: 读取到 {0},应为 {1}。
|
||||
Retry delay sec: 重试间隔(秒)
|
||||
Runner parallelism: 评测机运行进程数
|
||||
Sandbox Error: 沙箱错误
|
||||
Sandbox Host: 沙箱地址
|
||||
Standard answer longer than user output.: 标准输出比选手输出长。
|
||||
Stdout/Stderr size: 标准输出/错误流输出大小限制
|
||||
Temp directory: 临时目录
|
||||
Testdata cache directory: 测试数据缓存目录
|
||||
Testdata configuration incorrect.: 题目配置错误。
|
||||
Tmpfs size: tmpfs 分区大小
|
||||
Too many files.: 文件过多。
|
||||
Too many testcases. Cancelled.: 测试数据过多。评测取消。
|
||||
Total time limit longer than {0}s. Cancelled.: 总时限超过{0}s。评测取消。
|
||||
Total time limit per problem: 单题最多总评测时长
|
||||
Unknown checker type {0}.: 未知的比较器类型 {0}。
|
||||
Unknown language type.: 未知的语言类型。
|
||||
Unsupported language {0}.: 不支持的语言 {0}。
|
||||
|
||||
@@ -1,46 +1,57 @@
|
||||
sandbox_host:
|
||||
type: text
|
||||
name: Sandbox Host
|
||||
name: sandbox_host
|
||||
desc: Sandbox Host
|
||||
default: http://localhost:5050
|
||||
tmp_dir:
|
||||
type: text
|
||||
name: Temp directory
|
||||
name: tmp_dir
|
||||
desc: Temp directory
|
||||
default: $TEMP/hydro/judge.tmp
|
||||
tmpfs_size:
|
||||
type: text
|
||||
name: Tmpfs size
|
||||
name: tmpfs_size
|
||||
desc: Tmpfs size
|
||||
default: 256m
|
||||
stdio_size:
|
||||
type: text
|
||||
name: Stdout/Stderr size
|
||||
name: stdio_size
|
||||
desc: Stdout/Stderr size
|
||||
default: 32m
|
||||
testcases_max:
|
||||
type: number
|
||||
name: Max testcases per problem
|
||||
name: testcases_max
|
||||
desc: Max testcases per problem
|
||||
default: 100
|
||||
total_time_limit:
|
||||
type: number
|
||||
name: Total time limit per problem
|
||||
name: total_time_limit
|
||||
desc: Total time limit per problem
|
||||
default: 60
|
||||
retry_delay_sec:
|
||||
type: number
|
||||
name: Retry delay sec
|
||||
name: retry_delay_sec
|
||||
desc: Retry delay sec
|
||||
default: 15
|
||||
cache_dir:
|
||||
type: text
|
||||
name: Testdata cache directory
|
||||
name: cache_dir
|
||||
desc: Testdata cache directory
|
||||
default: $HOME/.cache/hydro/judge
|
||||
parallelism:
|
||||
type: number
|
||||
name: Runner parallelism
|
||||
name: parallelism
|
||||
desc: Runner parallelism
|
||||
default: 2
|
||||
disable:
|
||||
type: boolean
|
||||
name: Disable builtin judge
|
||||
name: disable
|
||||
desc: Disable builtin judge
|
||||
default: false
|
||||
langs:
|
||||
type: textarea
|
||||
name: Language file settings
|
||||
name: langs
|
||||
desc: Language file settings
|
||||
default: |
|
||||
ccWithoutO2: # Do not remove this entry
|
||||
type: compiler
|
||||
|
||||
@@ -166,7 +166,7 @@ class JudgeTask {
|
||||
this.ws.send(JSON.stringify({
|
||||
key: 'next',
|
||||
tag: this.tag,
|
||||
judge_text: '自豪的采用HydroJudge(https://github.com/hydro-dev/Hydro)进行评测。',
|
||||
judge_text: '自豪的采用 HydroJudge(https://github.com/hydro-dev/Hydro) 进行评测。',
|
||||
}));
|
||||
if (data.message !== undefined) {
|
||||
data.judge_text = data.message;
|
||||
|
||||
@@ -38,7 +38,7 @@ __langname: 한국어
|
||||
'We use <a href="https://en.gravatar.com/" target="_blank">Gravatar</a> to present your avatar icon.': '<a href="https://cn.gravatar.com/" target="_blank">Gravatar</a>를 만들어 보세요.'
|
||||
'Yes': 예
|
||||
"Effects only when Difficulty is not 'Use algorithm calculated'.": 난이도가 알고리즘에 의해 정해지지 않은 경우에만 적용됩니다.
|
||||
"Splitted by ', '.": “, ”“,”으로 구분
|
||||
"Split by ', '.": “, ”“,”으로 구분
|
||||
"What's file?": 파일?
|
||||
(All Problems): (전체 문제)
|
||||
(None): (N/A)
|
||||
|
||||
@@ -38,7 +38,7 @@ __langname: 简体中文
|
||||
'We use <a href="https://en.gravatar.com/" target="_blank">Gravatar</a> to present your avatar icon.': '我们使用 <a href="https://cn.gravatar.com/" target="_blank">Gravatar</a> 服务来呈现您的头像。'
|
||||
'Yes': 是
|
||||
"Effects only when Difficulty is not 'Use algorithm calculated'.": 仅当难度不为“使用算法计算”时才起效。
|
||||
"Splitted by ', '.": 由“, ”或“,”分隔。
|
||||
"Split by ',' '.'": 由“, ”或“,”分隔。
|
||||
"What's file?": 什么是文件?
|
||||
(All Problems): (所有题目)
|
||||
(None): (无)
|
||||
@@ -55,6 +55,7 @@ Accepted: 已通过
|
||||
Access Control: 访问控制
|
||||
Action: 动作
|
||||
Active Sessions: 活动会话
|
||||
Add blacklist by ip, uid: 封禁 IP / 将对应 uid 的用户拉入黑名单
|
||||
Add module: 添加模块
|
||||
Add new data: 添加新数据
|
||||
Add User: 添加用户
|
||||
@@ -66,6 +67,7 @@ All Homeworks: 所有作业
|
||||
All Submissions: 所有递交
|
||||
All Training Plans: 所有训练计划
|
||||
All: 全部
|
||||
Allow builtin-login: 启用内置登录
|
||||
Always granted all privileges: 总是拥有所有权限
|
||||
An error has occurred.: 发生了一个错误。
|
||||
An example of dataset: 测试数据集的一个例子
|
||||
@@ -97,6 +99,7 @@ By Contest: 由比赛
|
||||
By Problem: 由题目
|
||||
By signing up a Hydro universal account, you can submit code and join discussions in all online judging services provided by us.: 注册一个 Hydro 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。
|
||||
By Username / UID: 由用户名或 UID
|
||||
Calculate rp of a domain, or all domains: 计算用户的 RP
|
||||
Calendar View: 日历视图
|
||||
Calendar: 日历
|
||||
Can be Extended For: 可延期
|
||||
@@ -104,6 +107,7 @@ Cancel Score: 取消成绩
|
||||
Cancel: 取消
|
||||
Categories: 分类
|
||||
Category: 分类
|
||||
CDN Prefix: CDN 路径前缀
|
||||
Change Email: 修改电子邮件
|
||||
Change Password: 修改密码
|
||||
Chinese: 中文
|
||||
@@ -145,6 +149,8 @@ contest_edit: 编辑比赛
|
||||
contest_main: 比赛
|
||||
contest_scoreboard: 比赛成绩表
|
||||
Contest: 比赛
|
||||
Contests on main: 主页展示的比赛数量
|
||||
Contests per page: 每页展示的比赛数量
|
||||
Continue: 继续
|
||||
Contributed Problems: 贡献的题目
|
||||
Contributions: 贡献
|
||||
@@ -192,6 +198,9 @@ Day: 日
|
||||
Deadline: 截止时间
|
||||
Default Code Language: 默认代码语言
|
||||
Default Code Template: 默认代码模板
|
||||
Default display language: 默认显示语言
|
||||
Default Privilege: 用户默认全站权限
|
||||
Delete a user: 删除用户
|
||||
Delete discussion replies of own discussion: 删除自己讨论中的回复
|
||||
Delete discussion replies: 删除讨论回复
|
||||
Delete discussions: 删除讨论
|
||||
@@ -226,6 +235,8 @@ discussion_edit: 编辑讨论
|
||||
discussion_main: 讨论
|
||||
discussion_node: 讨论
|
||||
Discussion: 讨论
|
||||
Discussions on main: 主页展示的讨论数量
|
||||
Discussions per page: 每页展示的讨论数量
|
||||
Discussions: 讨论
|
||||
Display name {1} you want to set is used by others.: 您想要设置的显示名 {1} 已经被其他人使用了。
|
||||
Display Name: 显示名
|
||||
@@ -288,6 +299,8 @@ Enabled: 开启
|
||||
End at: 结束于
|
||||
End Date: 结束日期
|
||||
End Time: 结束时间
|
||||
EndPoint for judge: 提供给评测机的 EndPoint
|
||||
EndPoint for user: 提供给用户的 EndPoint
|
||||
English: 英文
|
||||
Enroll Training: 参加训练
|
||||
Enrolled: 已参加
|
||||
@@ -344,15 +357,20 @@ homework_main: 作业
|
||||
homework_scoreboard: 作业成绩表
|
||||
homework_status: 作业成绩表
|
||||
Homework: 作业
|
||||
Host: 主持人
|
||||
Homeworks on main: 主页展示的作业数量
|
||||
Homeworks per page: 每页展示的作业数量
|
||||
Host: 主办人
|
||||
hour(s): 小时
|
||||
If enabled, source code will be emailed to you after the submission is accepted.: 如果启用,在您通过题目后,源代码会以 Email 的形式发送给您。
|
||||
If left blank, the built-in template of the corresponding language will be used.: 若留空,则将使用对应语言的内置代码模板。
|
||||
Images: 图片
|
||||
Import From Hydro: 从 Hydro 导入
|
||||
Import From SYZOJ: 从 SYZOJ 导入
|
||||
Import From SYZOJ.: 从 SYZOJ 导入
|
||||
Import from: 导入自
|
||||
Import problem from syzoj.: 从运行 syzoj 系统的 OJ 导入题目。
|
||||
Import Problem: 导入题目
|
||||
Import User: 导入用户
|
||||
Import: 导入
|
||||
In 1 day: 一天后
|
||||
In 1 month: 一个月后
|
||||
@@ -364,6 +382,7 @@ In following homework: 在以下作业中
|
||||
In following training plans: 在下列训练计划中
|
||||
In Progress: 进行中
|
||||
Information: 信息
|
||||
Init Discussion Nodes: 初始化讨论结点
|
||||
Initialize: 初始化
|
||||
Inline codes: 行内代码
|
||||
Inline formulas: 行内公式
|
||||
@@ -388,6 +407,9 @@ Judged At: 评测时间
|
||||
Judged By: 评测机
|
||||
Judging Queue: 评测队列
|
||||
Keep current expiration: 保持当前过期设置
|
||||
LANG_TEXTS: 编译语言代号 -> 语言名称
|
||||
Language file settings: 评测机语言(langs.yaml)
|
||||
Language Highlight ID: 编译语言代号 -> 高亮语言代号
|
||||
Language: 语言
|
||||
last active at: 最后活动于
|
||||
last login at: 最后登录于
|
||||
@@ -413,6 +435,7 @@ Logout This Session: 注销该会话
|
||||
Logout: 登出
|
||||
Lost Password: 忘记密码
|
||||
Lucky: 手气不错
|
||||
Mail From: 发件人
|
||||
manage_dashboard: 控制面板
|
||||
manage_join_applications: 加域申请
|
||||
manage_module: 管理模块
|
||||
@@ -457,6 +480,7 @@ No Permission to Submit: 您没有权限递交
|
||||
No problem.: 没有题目。
|
||||
No solutions so far...: 目前还没有题解...
|
||||
No Submissions: 没有递交
|
||||
No testdata at current.: 暂无测试数据。
|
||||
No user is allowed to join this domain: 没有用户可以自助加入此域
|
||||
no_translation_warn: ''
|
||||
None: 无
|
||||
@@ -514,6 +538,7 @@ perm_training: 训练
|
||||
Permission: 权限
|
||||
Permissions: 权限
|
||||
Pick a problem randomly based on current filter: 根据当前过滤条件随机选择一道题
|
||||
pid: 题目 ID
|
||||
Plan: 计划
|
||||
Please attend contest to see the problems.: 请参加比赛来查看题目。
|
||||
Please claim the assignment to see the problems.: 认领作业后才可以查看作业内容。
|
||||
@@ -523,8 +548,10 @@ Pretest Data: 自测数据
|
||||
Pretest Your Code: 使用自定义数据测试
|
||||
Pretest: 自测
|
||||
Pretest?: 自测?
|
||||
Preview: 预览
|
||||
Privacy: 隐私
|
||||
Problem {1} not found.: 题目 {1} 不存在。
|
||||
Problem Categories: 题目标签
|
||||
Problem Data: 题目数据
|
||||
Problem Description: 题目描述
|
||||
Problem ID List: 题目 ID 列表
|
||||
@@ -552,6 +579,7 @@ problem.import.input_format: '## 输入格式'
|
||||
problem.import.limit_and_hint: '## 限制'
|
||||
problem.import.output_format: '## 输出格式'
|
||||
problem.import.problem_description: '## 题目描述'
|
||||
Problems per page: 每页展示的题目数量
|
||||
Problems Sets: 题库
|
||||
Problems: 题目
|
||||
Profile Background Image: 背景图片
|
||||
@@ -565,10 +593,12 @@ Quit Scratchpad: 退出在线编程模式
|
||||
Quote: 引用
|
||||
Rank: 排名
|
||||
ranking: 排名
|
||||
Recalculates nSubmit and nAccept in problem status.: 重新计算每道题目的 AC 量和提交量
|
||||
Recommended: 推荐
|
||||
Record {0} not found.: 记录 {0} 不存在。
|
||||
record_detail: 记录详情
|
||||
record_main: 评测队列
|
||||
Records per page: 每页展示的评测记录数量
|
||||
Records: 评测记录
|
||||
Refresh Records: 刷新评测记录
|
||||
Refresh: 刷新
|
||||
@@ -583,6 +613,7 @@ Remove Selected User: 将所选用户移出
|
||||
Remove this data: 移除这组数据
|
||||
Remove: 移除
|
||||
Repeat Password: 重复密码
|
||||
Replies per page: 每页展示的回复数量
|
||||
Reply discussions: 回复讨论
|
||||
Reply problem solutions: 回复题解
|
||||
reply: 回复
|
||||
@@ -607,6 +638,7 @@ Sample Input: 输入数据
|
||||
Sample Output: 输出数据
|
||||
Sample: 样例
|
||||
Save All Changes: 保存所有修改
|
||||
Saved session expire seconds: 保存的会话的过期秒数
|
||||
Saved session: 已保存的会话
|
||||
score canceled: 成绩取消
|
||||
Score: 分数
|
||||
@@ -626,15 +658,18 @@ Selected users have been removed from the domain.: 所选用户已从此域中
|
||||
Send Code after acceptance: 通过题目后发送源代码
|
||||
Send Message: 发送站内信息
|
||||
Send Password Reset Email: 发送密码重置邮件
|
||||
Send Problem: 发送题目
|
||||
Send Verification Email: 发送验证邮件
|
||||
Send: 发送
|
||||
Service Status: 服务状态
|
||||
Set Role: 设置角色
|
||||
Set Roles for Selected User: 设置所选用户的角色
|
||||
Set Roles for selected users: 为所选用户设置角色
|
||||
setting_basic: 基础设置
|
||||
setting_customize: 个性化
|
||||
setting_display: 显示偏好
|
||||
setting_domain: 域设置
|
||||
setting_file: 存储桶设置
|
||||
setting_info_domain: 个人信息
|
||||
setting_info: 个人信息
|
||||
setting_privacy: 隐私
|
||||
@@ -654,6 +689,11 @@ Sign up mail has been sent to your email.: 注册邮件已经发送到您的垃
|
||||
Sign Up Now: 现在注册
|
||||
Sign Up: 注册
|
||||
Size: 大小
|
||||
SMTP Password: SMTP 密码
|
||||
SMTP Server Host: SMTP 服务器地址
|
||||
SMTP Server Port: SMTP 服务器端口
|
||||
SMTP Username: SMTP 用户名
|
||||
Solutions per page: 每页展示的题解数量
|
||||
Sorry: 对不起
|
||||
Sort by: 排序
|
||||
Source type: 来源类型
|
||||
@@ -664,6 +704,11 @@ Statistics: 统计
|
||||
Status is hidden: 状态已隐藏
|
||||
status: 状态
|
||||
Status: 状态
|
||||
Storage engine accessKey: 存储桶 accessKey
|
||||
Storage engine bucket: 存储桶名称
|
||||
Storage engine endPoint: 存储桶 endPoint
|
||||
Storage engine region: 存储桶地域
|
||||
Storage engine secret: 存储桶 secretKey
|
||||
Submission Statistics: 递交统计
|
||||
Submission: 递交
|
||||
Submissions: 递交
|
||||
@@ -671,6 +716,7 @@ Submit: 递交
|
||||
Submitted: 已递交
|
||||
Support: 支持
|
||||
Tags: 标签
|
||||
Target: 目标
|
||||
Technical Information: 技术信息
|
||||
Temporary session: 临时会话
|
||||
Terms of Service: 服务条款
|
||||
@@ -695,6 +741,7 @@ This homework is not open.: 该作业还未开放递交。
|
||||
This is the current session: 这是当前的会话
|
||||
This message will be presented to those whose submissions are accepted.: 这条消息将会被展示给通过此题的用户。
|
||||
This page needs JavaScript to work.: 这个页面需要 Javascript。
|
||||
This person is lazy and didn't wrote anything.: 该用户太懒,这里啥也没写 (´・ω・`)
|
||||
This section cannot be challenged at present, so please complete the following sections first: 该章节目前不可挑战,请先完成以下章节
|
||||
This type of files are not allowed to be uploaded.: 不允许上传这种文件。
|
||||
Time (Seconds): 耗时 (秒)
|
||||
@@ -718,6 +765,8 @@ training_detail: 训练详情
|
||||
training_edit: 编辑训练
|
||||
training_main: 训练
|
||||
Training: 训练
|
||||
Trainings on main: 主页展示的训练数量
|
||||
Trainings per page: 每页展示的训练数量
|
||||
Type: 类型
|
||||
UI Language: 用户界面语言
|
||||
Uncompleted: 未完成
|
||||
@@ -725,6 +774,7 @@ Unique: 唯一
|
||||
Unknown field {0}.: 未知字段 {0}。
|
||||
Unknown: 未知
|
||||
Unordered List: 无序列表
|
||||
Unsaved session expire seconds: 未保存的会话的过期秒数
|
||||
Unstar Topic: 取消收藏
|
||||
Unstar: 取消收藏
|
||||
Update Permission: 更新权限
|
||||
@@ -798,6 +848,8 @@ What's this?: 这是什么?
|
||||
Whether to show tags in the problem list.: 是否在题目列表中显示题目的标签。
|
||||
Will be used as the domain icon.: 将被用作系统图标。
|
||||
With this feature, you can copy problems that you can view from a domain to some other domain. Their title, content, tags and categories will be copied. However, their test data are not copied directly.: 您可以通过这个功能将某域下您能查看的题目复制到其它域中,题目的标题、描述、标签与分类将被复制过来。但是测试数据不会被直接复制。
|
||||
With this feature, you can import problems that you can view from a site to here. Their title, content, tags and categories will be imported. However, their test data are not copied directly.: 您可以通过这个功能将其他 OJ 的题目导入到本站。题目的标题、题面、标签和分类将会被直接导入,测试数据将会在后台自动导入。
|
||||
With this feature, you can import problems that you can view from a site to here. Their title, content, tags and categories will be imported.: 您可以通过这个功能将其他 OJ 的题目导入到本站。题目的标题、题面、标签和分类都将会被自动导入。
|
||||
Write Your Comment: 发表您的评论
|
||||
Write Your Solution: 发表您的题解
|
||||
Year: 年
|
||||
|
||||
@@ -128,7 +128,7 @@ DomainSetting(
|
||||
);
|
||||
|
||||
DomainUserSetting(
|
||||
Setting('setting_info', 'displayName', null, 'text', 'display name'),
|
||||
Setting('setting_info', 'displayName', null, 'text', 'Display Name'),
|
||||
Setting('setting_storage', 'nAccept', 0, 'number', 'nAccept', null, FLAG_HIDDEN | FLAG_DISABLED),
|
||||
Setting('setting_storage', 'nSubmit', 0, 'number', 'nSubmit', null, FLAG_HIDDEN | FLAG_DISABLED),
|
||||
Setting('setting_storage', 'nLike', 0, 'number', 'nLike', null, FLAG_HIDDEN | FLAG_DISABLED),
|
||||
@@ -138,50 +138,52 @@ DomainUserSetting(
|
||||
);
|
||||
|
||||
SystemSetting(
|
||||
Setting('setting_file', 'file.endPoint', null, 'text', 'Storage engine endPoint'),
|
||||
Setting('setting_file', 'file.accessKey', null, 'text', 'Storage engine accessKey'),
|
||||
Setting('setting_file', 'file.secretKey', null, 'password', 'Storage engine secret', null, FLAG_SECRET),
|
||||
Setting('setting_file', 'file.bucket', 'hydro', 'text', 'Storage engine bucket'),
|
||||
Setting('setting_file', 'file.region', 'us-east-1', 'text', 'Storage engine region'),
|
||||
Setting('setting_file', 'file.endPointForUser', '/fs/', 'text', 'EndPoint for user'),
|
||||
Setting('setting_file', 'file.endPointForJudge', '/fs/', 'text', 'EndPoint for judge'),
|
||||
Setting('setting_smtp', 'smtp.user', null, 'text', 'SMTP Username'),
|
||||
Setting('setting_smtp', 'smtp.pass', null, 'password', 'SMTP Password', null, FLAG_SECRET),
|
||||
Setting('setting_smtp', 'smtp.host', null, 'text', 'SMTP Server Host'),
|
||||
Setting('setting_smtp', 'smtp.port', 465, 'number', 'SMTP Server Port'),
|
||||
Setting('setting_smtp', 'smtp.from', null, 'text', 'Mail From'),
|
||||
Setting('setting_smtp', 'smtp.secure', false, 'boolean', 'SSL'),
|
||||
Setting('setting_server', 'server.name', 'Hydro', 'text', 'Server Name'),
|
||||
Setting('setting_server', 'server.worker', 1, 'number', 'Server Workers Number'),
|
||||
Setting('setting_server', 'server.hostname', 'oj.undefined.moe', 'text', 'Server Hostname'),
|
||||
Setting('setting_server', 'server.host', 'oj.undefined.moe', 'text', 'Server Host'),
|
||||
Setting('setting_server', 'server.url', '/', 'text', 'Server BaseURL'),
|
||||
Setting('setting_server', 'server.cdn', '/', 'text', 'CDN Prefix', 'Ends with /'),
|
||||
Setting('setting_server', 'server.port', 8888, 'number', 'Server Port'),
|
||||
Setting('setting_server', 'server.xff', null, 'text', 'IP Header', 'e.g. x-forwarded-for (lowercase)'),
|
||||
Setting('setting_server', 'server.language', 'zh_CN', langRange, 'Default display language'),
|
||||
Setting('setting_server', 'server.login', true, 'boolean', 'Allow builtin-login'),
|
||||
Setting('setting_basic', 'default.priv', builtin.PRIV.PRIV_DEFAULT, 'number', 'Default Privilege'),
|
||||
Setting('setting_basic', 'problem.categories', builtin.CATEGORIES, 'yaml', 'Problem Categories'),
|
||||
Setting('setting_basic', 'lang.texts', builtin.LANG_TEXTS, 'yaml', 'LANG_TEXTS'),
|
||||
Setting('setting_basic', 'pagination.problem', 100, 'number', 'Problems per page'),
|
||||
Setting('setting_basic', 'pagination.contest', 20, 'number', 'Contests per page'),
|
||||
Setting('setting_basic', 'pagination.discussion', 50, 'number', 'Discussions per page'),
|
||||
Setting('setting_basic', 'pagination.record', 100, 'number', 'Records per page'),
|
||||
Setting('setting_basic', 'pagination.solution', 20, 'number', 'Solutions per page'),
|
||||
Setting('setting_basic', 'pagination.training', 10, 'number', 'Trainings per page'),
|
||||
Setting('setting_basic', 'pagination.reply', 50, 'number', 'Replies per page'),
|
||||
Setting('setting_basic', 'pagination.homework_main', 5, 'number', 'Homeworks on main'),
|
||||
Setting('setting_basic', 'pagination.contest_main', 10, 'number', 'Contests on main'),
|
||||
Setting('setting_basic', 'pagination.training_main', 10, 'number', 'Trainings on main'),
|
||||
Setting('setting_basic', 'pagination.discussion_main', 20, 'number', 'Discussions on main'),
|
||||
Setting('setting_session', 'session.keys', [String.random(32)], 'text', 'session.keys', null, FLAG_HIDDEN),
|
||||
Setting('setting_session', 'session.secure', false, 'boolean', 'session.secure'),
|
||||
Setting('setting_session', 'session.saved_expire_seconds', 3600 * 24 * 30, 'number', 'Saved session expire seconds'),
|
||||
Setting('setting_session', 'session.unsaved_expire_seconds', 3600 * 3, 'number', 'Unsaved session expire seconds'),
|
||||
Setting('setting_storage', 'db.ver', 0, 'number', 'Database version', null, FLAG_DISABLED | FLAG_HIDDEN),
|
||||
Setting('setting_storage', 'user', 1, 'number', 'User Counter', null, FLAG_DISABLED | FLAG_HIDDEN),
|
||||
Setting('setting_storage', 'installid', String.random(64), 'text', 'Installation ID', null, FLAG_HIDDEN | FLAG_DISABLED),
|
||||
Setting('setting_file', 'file.endPoint', null, 'text', 'file.endPoint', 'Storage engine endPoint'),
|
||||
Setting('setting_file', 'file.accessKey', null, 'text', 'file.accessKey', 'Storage engine accessKey'),
|
||||
Setting('setting_file', 'file.secretKey', null, 'password', 'file.secretKey', 'Storage engine secret', FLAG_SECRET),
|
||||
Setting('setting_file', 'file.bucket', 'hydro', 'text', 'file.bucket', 'Storage engine bucket'),
|
||||
Setting('setting_file', 'file.region', 'us-east-1', 'text', 'file.region', 'Storage engine region'),
|
||||
Setting('setting_file', 'file.endPointForUser', '/fs/', 'text', 'file.endPointForUser', 'EndPoint for user'),
|
||||
Setting('setting_file', 'file.endPointForJudge', '/fs/', 'text', 'file.endPointForJudge', 'EndPoint for judge'),
|
||||
Setting('setting_smtp', 'smtp.user', null, 'text', 'smtp.user', 'SMTP Username'),
|
||||
Setting('setting_smtp', 'smtp.pass', null, 'password', 'smtp.pass', 'SMTP Password', FLAG_SECRET),
|
||||
Setting('setting_smtp', 'smtp.host', null, 'text', 'smtp.host', 'SMTP Server Host'),
|
||||
Setting('setting_smtp', 'smtp.port', 465, 'number', 'smtp.port', 'SMTP Server Port'),
|
||||
Setting('setting_smtp', 'smtp.from', null, 'text', 'smtp.from', 'Mail From'),
|
||||
Setting('setting_smtp', 'smtp.secure', false, 'boolean', 'smtp.secure', 'SSL'),
|
||||
Setting('setting_server', 'server.name', 'Hydro', 'text', 'server.name', 'Server Name'),
|
||||
Setting('setting_server', 'server.worker', 1, 'number', 'server.worker', 'Server Workers Number'),
|
||||
Setting('setting_server', 'server.hostname', 'oj.undefined.moe', 'text', 'server.hostname', 'Server Hostname'),
|
||||
Setting('setting_server', 'server.host', 'oj.undefined.moe', 'text', 'server.host', 'Server Host'),
|
||||
Setting('setting_server', 'server.url', '/', 'text', 'server.url', 'Server BaseURL'),
|
||||
Setting('setting_server', 'server.cdn', '/', 'text', 'server.cdn', 'CDN Prefix'),
|
||||
Setting('setting_server', 'server.port', 8888, 'number', 'server.port', 'Server Port'),
|
||||
Setting('setting_server', 'server.xff', null, 'text', 'server.xff', 'IP Header'),
|
||||
Setting('setting_server', 'server.language', 'zh_CN', langRange, 'server.language', 'Default display language'),
|
||||
Setting('setting_server', 'server.login', true, 'boolean', 'server.login', 'Allow builtin-login'),
|
||||
Setting('setting_basic', 'default.priv', builtin.PRIV.PRIV_DEFAULT, 'number', 'default.priv', 'Default Privilege'),
|
||||
Setting('setting_basic', 'problem.categories', builtin.CATEGORIES, 'yaml', 'problem.categories', 'Problem Categories'),
|
||||
Setting('setting_basic', 'lang.texts', builtin.LANG_TEXTS, 'yaml', 'lang.texts', 'LANG_TEXTS'),
|
||||
Setting('setting_basic', 'pagination.problem', 100, 'number', 'pagination.problem', 'Problems per page'),
|
||||
Setting('setting_basic', 'pagination.contest', 20, 'number', 'pagination.contest', 'Contests per page'),
|
||||
Setting('setting_basic', 'pagination.discussion', 50, 'number', 'pagination.discussion', 'Discussions per page'),
|
||||
Setting('setting_basic', 'pagination.record', 100, 'number', 'pagination.record', 'Records per page'),
|
||||
Setting('setting_basic', 'pagination.solution', 20, 'number', 'pagination.solution', 'Solutions per page'),
|
||||
Setting('setting_basic', 'pagination.training', 10, 'number', 'pagination.training', 'Trainings per page'),
|
||||
Setting('setting_basic', 'pagination.reply', 50, 'number', 'pagination.reply', 'Replies per page'),
|
||||
Setting('setting_basic', 'pagination.homework_main', 5, 'number', 'pagination.homework_main', 'Homeworks on main'),
|
||||
Setting('setting_basic', 'pagination.contest_main', 10, 'number', 'pagination.contest_main', 'Contests on main'),
|
||||
Setting('setting_basic', 'pagination.training_main', 10, 'number', 'pagination.training_main', 'Trainings on main'),
|
||||
Setting('setting_basic', 'pagination.discussion_main', 20, 'number', 'pagination.discussion_main', 'Discussions on main'),
|
||||
Setting('setting_session', 'session.keys', [String.random(32)], 'text', 'session.keys', 'session.keys', FLAG_HIDDEN),
|
||||
Setting('setting_session', 'session.secure', false, 'boolean', 'session.secure', 'session.secure'),
|
||||
Setting('setting_session', 'session.saved_expire_seconds', 3600 * 24 * 30,
|
||||
'number', 'session.saved_expire_seconds', 'Saved session expire seconds'),
|
||||
Setting('setting_session', 'session.unsaved_expire_seconds', 3600 * 3,
|
||||
'number', 'session.unsaved_expire_seconds', 'Unsaved session expire seconds'),
|
||||
Setting('setting_storage', 'db.ver', 0, 'number', 'db.ver', 'Database version', FLAG_DISABLED | FLAG_HIDDEN),
|
||||
Setting('setting_storage', 'user', 1, 'number', 'user', 'User Counter', FLAG_DISABLED | FLAG_HIDDEN),
|
||||
Setting('setting_storage', 'installid', String.random(64), 'text', 'installid', 'Installation ID', FLAG_HIDDEN | FLAG_DISABLED),
|
||||
);
|
||||
|
||||
bus.once('app/started', async () => {
|
||||
|
||||
@@ -3,7 +3,7 @@ import db from '../service/db';
|
||||
import { STATUS } from '../model/builtin';
|
||||
import * as document from '../model/document';
|
||||
|
||||
export const description = 'Recalcuates nSubmit and nAccept in problem status.';
|
||||
export const description = 'Recalculates nSubmit and nAccept in problem status.';
|
||||
|
||||
export async function udoc() {
|
||||
const pipeline = [
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
From QDUOJ Export: 从 QDUOJ 导入
|
||||
@@ -0,0 +1 @@
|
||||
migrate from hustoj: 从 HustOJ 导入
|
||||
@@ -0,0 +1 @@
|
||||
migrate from vijos: 从 Vijos 导入
|
||||
Reference in new issue
Block a user