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,7 +24,7 @@分数 | 总时间 | 内存 | -语言 | +代码 | 提交者 | 提交时间 | <%= 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 { %>隐藏 | 隐藏 |
---|