diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2019-04-29 09:11:57 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-04-29 09:11:57 +0900 |
| commit | 05b8111c1906c1285c9ddde758eda45b83792244 (patch) | |
| tree | da5d58c4ae18436f739eaee9e1801c6c48056be5 /src/server/web/index.ts | |
| parent | Update define.ts (diff) | |
| download | misskey-05b8111c1906c1285c9ddde758eda45b83792244.tar.gz misskey-05b8111c1906c1285c9ddde758eda45b83792244.tar.bz2 misskey-05b8111c1906c1285c9ddde758eda45b83792244.zip | |
Pages (#4811)
* wip
* wip
* wip
* Update page-editor.vue
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* Update page-editor.variable.core.vue
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* Update aiscript.ts
* wip
* Update package.json
* wip
* wip
* wip
* wip
* wip
* Update page.vue
* wip
* wip
* wip
* wip
* more info
* wip fn
* wip
* wip
* wip
Diffstat (limited to 'src/server/web/index.ts')
| -rw-r--r-- | src/server/web/index.ts | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/src/server/web/index.ts b/src/server/web/index.ts index 1f87cd70f8..c5a3497f44 100644 --- a/src/server/web/index.ts +++ b/src/server/web/index.ts @@ -16,7 +16,7 @@ import { fetchMeta } from '../../misc/fetch-meta'; import * as pkg from '../../../package.json'; import { genOpenapiSpec } from '../api/openapi/gen-spec'; import config from '../../config'; -import { Users, Notes, Emojis, UserProfiles } from '../../models'; +import { Users, Notes, Emojis, UserProfiles, Pages } from '../../models'; import parseAcct from '../../misc/acct/parse'; import getNoteSummary from '../../misc/get-note-summary'; import { ensure } from '../../prelude/ensure'; @@ -203,6 +203,41 @@ router.get('/notes/:note', async ctx => { ctx.status = 404; }); + +// Page +router.get('/@:user/pages/:page', async ctx => { + const { username, host } = parseAcct(ctx.params.user); + const user = await Users.findOne({ + usernameLower: username.toLowerCase(), + host + }); + + if (user == null) return; + + const page = await Pages.findOne({ + name: ctx.params.page, + userId: user.id + }); + + if (page) { + const _page = await Pages.pack(page); + const meta = await fetchMeta(); + await ctx.render('page', { + page: _page, + instanceName: meta.name || 'Misskey' + }); + + if (['public'].includes(page.visibility)) { + ctx.set('Cache-Control', 'public, max-age=180'); + } else { + ctx.set('Cache-Control', 'private, max-age=0, must-revalidate'); + } + + return; + } + + ctx.status = 404; +}); //#endregion router.get('/info', async ctx => { |