diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2021-10-24 21:02:50 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2021-10-24 21:02:50 +0900 |
| commit | 09f4885f8975c935861ddef01f4cdb83c4a185d9 (patch) | |
| tree | b561a408f6683a7cf52b0dfaff57d67310bada35 /src/server/index.ts | |
| parent | :art: (diff) | |
| download | sharkey-09f4885f8975c935861ddef01f4cdb83c4a185d9.tar.gz sharkey-09f4885f8975c935861ddef01f4cdb83c4a185d9.tar.bz2 sharkey-09f4885f8975c935861ddef01f4cdb83c4a185d9.zip | |
feat(client): メンションにユーザーのアバターを表示するように
Resolve #350
Diffstat (limited to 'src/server/index.ts')
| -rw-r--r-- | src/server/index.ts | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/server/index.ts b/src/server/index.ts index c891596140..5e1a12e4d3 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -26,6 +26,7 @@ import { networkChart } from '@/services/chart/index'; import { genAvatar } from '@/misc/gen-avatar'; import { createTemp } from '@/misc/create-temp'; import { publishMainStream } from '@/services/stream'; +import { parseAcct } from '@/misc/acct'; export const serverLogger = new Logger('server', 'gray', false); @@ -68,7 +69,22 @@ router.use(activityPub.routes()); router.use(nodeinfo.routes()); router.use(wellKnown.routes()); -router.get('/avatar/:x', async ctx => { +router.get('/avatar/@:acct', async ctx => { + const { username, host } = parseAcct(ctx.params.acct); + const user = await Users.findOne({ + usernameLower: username.toLowerCase(), + host: host === config.host ? null : host, + isSuspended: false + }); + + if (user) { + ctx.redirect(Users.getAvatarUrl(user)); + } else { + ctx.redirect('/static-assets/user-unknown.png'); + } +}); + +router.get('/random-avatar/:x', async ctx => { const [temp] = await createTemp(); await genAvatar(ctx.params.x, fs.createWriteStream(temp)); ctx.set('Content-Type', 'image/png'); |