diff --git a/public/js/album.js b/public/js/album.js index 6d5ede4..8146e9c 100644 --- a/public/js/album.js +++ b/public/js/album.js @@ -1,7 +1,33 @@ /* global LazyLoad */ -const page = {} +const page = { + lazyLoad: null, + + // byte units for getPrettyBytes() + byteUnits: ['B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] +} + +page.getPrettyBytes = num => { + // MIT License + // Copyright (c) Sindre Sorhus (sindresorhus.com) + if (!Number.isFinite(num)) { return num } + + const neg = num < 0 + if (neg) { num = -num } + if (num < 1) { return (neg ? '-' : '') + num + ' B' } + + const exponent = Math.min(Math.floor(Math.log10(num) / 3), page.byteUnits.length - 1) + const numStr = Number((num / Math.pow(1000, exponent)).toPrecision(3)) + const unit = page.byteUnits[exponent] + + return (neg ? '-' : '') + numStr + ' ' + unit +} window.onload = function () { + const elements = document.getElementsByClassName('file-size') + for (let i = 0; i < elements.length; i++) { + elements[i].innerHTML = page.getPrettyBytes(parseInt(elements[i].innerHTML)) + } + page.lazyLoad = new LazyLoad() } diff --git a/routes/album.js b/routes/album.js index a711a19..77c8e1a 100644 --- a/routes/album.js +++ b/routes/album.js @@ -41,7 +41,6 @@ routes.get('/a/:identifier', async (req, res, next) => { for (const file of files) { file.file = `${basedomain}/${file.name}` - file.size = utils.getPrettyBytes(parseInt(file.size)) file.extname = path.extname(file.name).toLowerCase() if (utils.mayGenerateThumb(file.extname)) { diff --git a/views/_globals.njk b/views/_globals.njk index 66e523f..d42e8ca 100644 --- a/views/_globals.njk +++ b/views/_globals.njk @@ -15,7 +15,7 @@ v2: Images and config files (manifest.json, browserconfig.xml, etc). v3: CSS and JS files (libs such as bulma, lazyload, etc). #} -{% set v1 = "J9TzRpLTDJ" %} +{% set v1 = "JxZhgFgBYY" %} {% set v2 = "Ii3JYKIhb0" %} {% set v3 = "HrvcYD3KTh" %} diff --git a/views/album.njk b/views/album.njk index 37aae49..7a731c7 100644 --- a/views/album.njk +++ b/views/album.njk @@ -86,7 +86,7 @@

{{ file.name }}

-

{{ file.size }}

+

{{ file.size }}

{% endfor %}