summaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
Diffstat (limited to 'src/server')
-rw-r--r--src/server/activitypub.ts19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/server/activitypub.ts b/src/server/activitypub.ts
index a308c6aaea..42d90ab91f 100644
--- a/src/server/activitypub.ts
+++ b/src/server/activitypub.ts
@@ -7,9 +7,11 @@ import { createHttpJob } from '../queue';
import pack from '../remote/activitypub/renderer';
import Note from '../models/note';
import User, { isLocalUser, ILocalUser, IUser } from '../models/user';
+import Emoji from '../models/emoji';
import renderNote from '../remote/activitypub/renderer/note';
import renderKey from '../remote/activitypub/renderer/key';
import renderPerson from '../remote/activitypub/renderer/person';
+import renderEmoji from '../remote/activitypub/renderer/emoji';
import Outbox, { packActivity } from './activitypub/outbox';
import Followers from './activitypub/followers';
import Following from './activitypub/following';
@@ -188,4 +190,21 @@ router.get('/@:user', async (ctx, next) => {
});
//#endregion
+// emoji
+router.get('/emojis/:emoji', async ctx => {
+ const emoji = await Emoji.findOne({
+ host: null,
+ name: ctx.params.emoji
+ });
+
+ if (emoji === null) {
+ ctx.status = 404;
+ return;
+ }
+
+ ctx.body = pack(await renderEmoji(emoji));
+ ctx.set('Cache-Control', 'public, max-age=180');
+ setResponseType(ctx);
+});
+
export default router;