diff options
| author | tamaina <tamaina@hotmail.co.jp> | 2021-10-24 21:10:45 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-10-24 21:10:45 +0900 |
| commit | 5cf07fc50f311989e459c7151ca89e067619121f (patch) | |
| tree | 9cc19604a0fb88d1fb487a2c02b60d45bff44795 /src | |
| parent | Update CHANGELOG.md (diff) | |
| download | sharkey-5cf07fc50f311989e459c7151ca89e067619121f.tar.gz sharkey-5cf07fc50f311989e459c7151ca89e067619121f.tar.bz2 sharkey-5cf07fc50f311989e459c7151ca89e067619121f.zip | |
enhance: Provide Twemoji SVGs from Misskey server (#2) (#7897)
* Selfhosting Twemoji
* ちっ
* うざっ
* あ
* add test
Co-authored-by: mei23 <m@m544.net>
Diffstat (limited to 'src')
| -rw-r--r-- | src/misc/twemoji-base.ts | 2 | ||||
| -rw-r--r-- | src/server/web/index.ts | 16 |
2 files changed, 17 insertions, 1 deletions
diff --git a/src/misc/twemoji-base.ts b/src/misc/twemoji-base.ts index e08556bd49..cd50311b15 100644 --- a/src/misc/twemoji-base.ts +++ b/src/misc/twemoji-base.ts @@ -1 +1 @@ -export const twemojiSvgBase = 'https://twemoji.maxcdn.com/v/latest/svg'; +export const twemojiSvgBase = '/twemoji'; diff --git a/src/server/web/index.ts b/src/server/web/index.ts index 8f9b6add6e..35337868d9 100644 --- a/src/server/web/index.ts +++ b/src/server/web/index.ts @@ -101,6 +101,22 @@ router.get('/apple-touch-icon.png', async ctx => { }); }); +router.get('/twemoji/(.*)', async ctx => { + const path = ctx.path.replace('/twemoji/', ''); + + if (!path.match(/^[0-9a-f-]+\.svg$/)) { + ctx.status = 404; + return; + } + + ctx.set('Content-Security-Policy', `default-src 'none'; style-src 'unsafe-inline'`); + + await send(ctx as any, path, { + root: `${_dirname}/../../../node_modules/@discordapp/twemoji/dist/svg/`, + maxage: ms('30 days'), + }); +}); + // ServiceWorker router.get('/sw.js', async ctx => { await send(ctx as any, `/sw.${config.version}.js`, { |