From ccd14e04623191db916bd5ba82b699fceddfc41f Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 15 Nov 2020 17:40:49 +0900 Subject: クリップのOGP対応 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/web/index.ts | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'src/server/web/index.ts') diff --git a/src/server/web/index.ts b/src/server/web/index.ts index 58e764ee17..f889374139 100644 --- a/src/server/web/index.ts +++ b/src/server/web/index.ts @@ -17,7 +17,7 @@ import packFeed from './feed'; import { fetchMeta } from '../../misc/fetch-meta'; import { genOpenapiSpec } from '../api/openapi/gen-spec'; import config from '../../config'; -import { Users, Notes, Emojis, UserProfiles, Pages, Channels } from '../../models'; +import { Users, Notes, Emojis, UserProfiles, Pages, Channels, Clips } from '../../models'; import parseAcct from '../../misc/acct/parse'; import getNoteSummary from '../../misc/get-note-summary'; import { ensure } from '../../prelude/ensure'; @@ -298,6 +298,28 @@ router.get('/@:user/pages/:page', async ctx => { ctx.status = 404; }); +// Clip +router.get('/clips/:clip', async ctx => { + const clip = await Clips.findOne({ + id: ctx.params.clip, + }); + + if (clip) { + const _clip = await Clips.pack(clip); + const meta = await fetchMeta(); + await ctx.render('clip', { + clip: _clip, + instanceName: meta.name || 'Misskey' + }); + + ctx.set('Cache-Control', 'public, max-age=180'); + + return; + } + + ctx.status = 404; +}); + // Channel router.get('/channels/:channel', async ctx => { const channel = await Channels.findOne({ -- cgit v1.2.3-freya