diff --git a/server/index.js b/server/index.js index 973ad10..c8ace07 100644 --- a/server/index.js +++ b/server/index.js @@ -1,4 +1,5 @@ const Bluebird = require('bluebird'); +const Moment = require('moment'); const FS = Bluebird.promisifyAll(require('fs')); const OS = require('os'); const Express = require('express'); @@ -28,6 +29,7 @@ app.use(Compression()) app.use(SpiderDetector.middleware()); app.use(`/`, Express.static(`${__dirname}/www`)); app.get('/.mtime', handleTimestampRequest); +app.get('/.cache', handleCacheStatusRequest); app.get('/json/*', handleJSONRequest); app.get(`/*`, handlePageRequest); app.purge(`/*`, handlePurgeRequest); @@ -47,6 +49,34 @@ async function handleTimestampRequest(req, res, next) { } } +async function handleCacheStatusRequest(req, res, next) { + try { + res.set({ 'X-Accel-Expires': 0 }); + res.type('html'); + res.write(`
URL | Modified time | Size | `); + res.write(``); + let entries = await NginxCache.read(); + let total = 0; + for (let entry of _.orderBy(entries, 'mtime', 'desc')) { + let { url, mtime, size } = entry; + let date = Moment(mtime).format('LLLL'); + let sizeKB = _.round(size / 1024, 2); + res.write(`
---|---|---|
${url} | ${date} | ${sizeKB}KB |
Total | ${totalMB}MB |