From 7ad9560f53e183cc2404747782b5c427abc38fe8 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 12 Jan 2019 11:27:23 +0900 Subject: [PATCH] Implement instance info page --- src/client/assets/misskey-php-like-logo.png | Bin 0 -> 49943 bytes src/server/web/index.ts | 24 +++++ src/server/web/views/info.pug | 113 ++++++++++++++++++++ 3 files changed, 137 insertions(+) create mode 100644 src/client/assets/misskey-php-like-logo.png create mode 100644 src/server/web/views/info.pug diff --git a/src/client/assets/misskey-php-like-logo.png b/src/client/assets/misskey-php-like-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7777e52b1d0bdb7c02f71887ea0b9f15448a302e GIT binary patch literal 49943 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

_O~2Ud;4n3<;%hwb6&cfnH6~@ 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 WwEMm8r@jmf3=E#GelF{r5}E)iE2-=N literal 0 HcmV?d00001 diff --git a/src/server/web/index.ts b/src/server/web/index.ts index 59b8390ab5..7fd9e76cfc 100644 --- a/src/server/web/index.ts +++ b/src/server/web/index.ts @@ -2,6 +2,7 @@ * Web Client Server */ +import * as os from 'os'; import ms = require('ms'); import * as Koa from 'koa'; import * as Router from 'koa-router'; @@ -18,6 +19,8 @@ import config from '../../config'; import Note, { pack as packNote } from '../../models/note'; import getNoteSummary from '../../misc/get-note-summary'; import fetchMeta from '../../misc/fetch-meta'; +import Emoji from '../../models/emoji'; +const pkg = require('../../../package.json'); const client = `${__dirname}/../../client/`; @@ -195,6 +198,27 @@ router.get('/notes/:note', async ctx => { }); //#endregion +router.get('/info', async ctx => { + const meta = await fetchMeta(); + const emojis = await Emoji.find({ host: null }, { + fields: { + _id: false + } + }); + await ctx.render('info', { + version: pkg.version, + machine: os.hostname(), + os: os.platform(), + node: process.version, + cpu: { + model: os.cpus()[0].model, + cores: os.cpus().length + }, + emojis: emojis, + meta: meta + }); +}); + // Render base html for all requests router.get('*', async ctx => { const meta = await fetchMeta(); diff --git a/src/server/web/views/info.pug b/src/server/web/views/info.pug new file mode 100644 index 0000000000..3e72d86410 --- /dev/null +++ b/src/server/web/views/info.pug @@ -0,0 +1,113 @@ +doctype html + +html + + head + meta(charset='utf-8') + meta(name='application-name' content='Misskey') + title Misskey + style. + html { + font-family: sans-serif; + } + + main { + max-width: 934px; + margin: 0 auto; + } + + header { + padding: 5px; + background: rgb(153, 153, 204); + border: 1px solid #000; + } + header:after { + content: ''; + display: block; + clear: both; + } + + header > h1 { + float: left; + font-size: 2em; + } + + header > img { + float: right; + width: 220px; + } + + table { + margin: 1em 0; + width: 100%; + border-collapse: collapse; + } + table tr th { + background-color: #ccf; + border: 1px solid #000; + width: 300px; + font-weight: bold; + padding: 4px 5px; + text-align: left; + } + table tr td { + background-color: #ddd; + border: 1px solid #000; + padding: 4px 5px; + } + + body + main + header + h1 Misskey Version #{version} + img(src='/assets/misskey-php-like-logo.png' alt='') + table + tr + th Instance + td= meta.name + tr + th Maintainer + td + = meta.maintainer.name + | <#{meta.maintainer.email}> + tr + th System + td= os + tr + th Node version + td= node + tr + th Machine + td= machine + tr + th CPU + td= cpu.model + tr + th Registration + td= !meta.disableRegistration ? 'yes' : 'no' + tr + th reCAPTCHA enabled + td= meta.enableRecaptcha ? 'yes' : 'no' + tr + th Cache remote files + td= meta.cacheRemoteFiles ? 'yes' : 'no' + tr + th Drive capacity per local user + td + = meta.localDriveCapacityMb + | MB + tr + th Drive capacity per remote user + td + = meta.remoteDriveCapacityMb + | MB + tr + th Max text length + td= meta.maxNoteTextLength + tr + th Emojis + td + each emoji in emojis + | :#{emoji.name}: + = ' ' +