diff options
Diffstat (limited to 'src/server/web')
| -rw-r--r-- | src/server/web/index.ts | 4 | ||||
| -rw-r--r-- | src/server/web/url-preview.ts | 18 |
2 files changed, 14 insertions, 8 deletions
diff --git a/src/server/web/index.ts b/src/server/web/index.ts index 6ceef17c1c..5ce040d083 100644 --- a/src/server/web/index.ts +++ b/src/server/web/index.ts @@ -49,8 +49,8 @@ const router = new Router(); //#region static assets router.get('/assets/*', async ctx => { - // 無圧縮スクリプトを用意するのは大変なので一時的に無効化 - const path = process.env.NODE_ENV == 'production' ? ctx.path.replace('raw.js', 'min.js') : ctx.path.replace('min.js', 'raw.js'); + // 互換性のため + const path = ctx.path.replace('.raw.js', '.js').replace('.min.js', '.js'); await send(ctx, path, { root: client, maxage: ms('7 days'), diff --git a/src/server/web/url-preview.ts b/src/server/web/url-preview.ts index cd53837a25..99ee2eaebd 100644 --- a/src/server/web/url-preview.ts +++ b/src/server/web/url-preview.ts @@ -2,14 +2,20 @@ import * as Koa from 'koa'; import summaly from 'summaly'; module.exports = async (ctx: Koa.Context) => { - const summary = await summaly(ctx.query.url); - summary.icon = wrap(summary.icon); - summary.thumbnail = wrap(summary.thumbnail); + try { + const summary = await summaly(ctx.query.url, { + followRedirects: false + }); + summary.icon = wrap(summary.icon); + summary.thumbnail = wrap(summary.thumbnail); - // Cache 7days - ctx.set('Cache-Control', 'max-age=604800, immutable'); + // Cache 7days + ctx.set('Cache-Control', 'max-age=604800, immutable'); - ctx.body = summary; + ctx.body = summary; + } catch (e) { + ctx.status = 500; + } }; function wrap(url: string): string { |