diff --git a/package.json b/package.json index 7b71aa7..843a66e 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "ejs": "^2.5.2", "express": "^4.14.0", "express-session": "^1.14.1", + "file-size": "^1.0.0", "gravatar": "^1.5.2", "md5": "^2.2.1", "moemark-renderer": "^1.2.0", diff --git a/utility.js b/utility.js index 655501a..96792f0 100644 --- a/utility.js +++ b/utility.js @@ -32,6 +32,7 @@ let querystring = require('querystring'); let pygmentize = require('pygmentize-bundled-cached'); let gravatar = require('gravatar'); let AdmZip = require('adm-zip'); +let filesize = require('file-size'); function escapeHTML(s) { // Code from http://stackoverflow.com/questions/5251520/how-do-i-escape-some-html-in-javascript/5251551 @@ -102,6 +103,13 @@ module.exports = { } return util.format('%s:%s:%s', toStringWithPad(x / 3600), toStringWithPad(x / 60 % 60), toStringWithPad(x % 60)); }, + formatSize(x) { + let res = filesize(x, { fixed: 1 }).calculate(); + if (res.result === parseInt(res.result)) res.fixed = res.result.toString(); + if (res.suffix === 'Bytes') res.suffix = 'B'; + else res.suffix = res.suffix.replace('iB', ''); + return res.fixed + ' ' + res.suffix; + }, parseDate(s) { return parseInt(+new Date(s) / 1000); }, diff --git a/views/judge_detail_item.ejs b/views/judge_detail_item.ejs index 0a21278..447e868 100644 --- a/views/judge_detail_item.ejs +++ b/views/judge_detail_item.ejs @@ -8,7 +8,7 @@ 分数 总时间 内存 - 语言 + 代码 提交者 提交时间 @@ -24,8 +24,8 @@ <%= judge.result.score %> <%= judge.result.total_time %> ms - <%= judge.result.max_memory %> KiB - <%= syzoj.config.languages[judge.language].show %> + <%= judge.result.max_memory %> K + <%= syzoj.config.languages[judge.language].show %> / <%= syzoj.utils.formatSize(judge.code.length) %> <% } else { %> 隐藏 隐藏 diff --git a/views/judge_state.ejs b/views/judge_state.ejs index 8560572..994dbeb 100644 --- a/views/judge_state.ejs +++ b/views/judge_state.ejs @@ -15,7 +15,7 @@ <% } %>
- +
@@ -24,7 +24,7 @@ - + diff --git a/views/judge_state_item.ejs b/views/judge_state_item.ejs index 354b3c0..c752c2c 100644 --- a/views/judge_state_item.ejs +++ b/views/judge_state_item.ejs @@ -10,8 +10,8 @@ - - + + <% } else { %>
编号分数 总时间 内存语言代码 提交者 提交时间
<%= judge.result.score %> <%= judge.result.total_time %> ms<%= judge.result.max_memory %> KiB<%= syzoj.config.languages[judge.language].show %><%= judge.result.max_memory %> K<%= syzoj.config.languages[judge.language].show %> / <%= syzoj.utils.formatSize(judge.code.length) %>隐藏 隐藏