From 329ef760bfc46d53e27d5e1f192b98b890928fd0 Mon Sep 17 00:00:00 2001
From: tamaina <tamaina@hotmail.co.jp>
Date: Thu, 29 Dec 2022 14:54:31 +0000
Subject: [PATCH 1/2] fix(server): /emoji to accept `@.` host expression

---
 packages/backend/src/server/web/ClientServerService.ts | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/packages/backend/src/server/web/ClientServerService.ts b/packages/backend/src/server/web/ClientServerService.ts
index af1ff91ac9..84e8481d55 100644
--- a/packages/backend/src/server/web/ClientServerService.ts
+++ b/packages/backend/src/server/web/ClientServerService.ts
@@ -232,7 +232,8 @@ export class ClientServerService {
 			const host = path.split('@')[1]?.replace('.webp', '');
 
 			const emoji = await this.emojisRepository.findOneBy({
-				host: host == null ? IsNull() : host,
+				// `@.` is the spec of ReactionService.decodeReaction
+				host: (host == null || host === '.') ? IsNull() : host,
 				name: name,
 			});
 

From e35e788ebb6ae2b609e60744e93c5f3abd96e652 Mon Sep 17 00:00:00 2001
From: tamaina <tamaina@hotmail.co.jp>
Date: Thu, 29 Dec 2022 15:15:30 +0000
Subject: [PATCH 2/2] fix(client): use MkEmoji for custom emoji in
 MkEmojiPicker

---
 packages/frontend/src/components/MkEmojiPicker.vue | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/packages/frontend/src/components/MkEmojiPicker.vue b/packages/frontend/src/components/MkEmojiPicker.vue
index 814f71168a..e9e265a916 100644
--- a/packages/frontend/src/components/MkEmojiPicker.vue
+++ b/packages/frontend/src/components/MkEmojiPicker.vue
@@ -12,8 +12,7 @@
 					tabindex="0"
 					@click="chosen(emoji, $event)"
 				>
-					<!--<MkEmoji v-if="emoji.char != null" :emoji="emoji.char"/>-->
-					<img class="emoji" :src="disableShowingAnimatedImages ? getStaticImageUrl(emoji.url) : emoji.url"/>
+					<MkEmoji class="emoji" :emoji="`:${emoji.name}:`" />
 				</button>
 			</div>
 			<div v-if="searchResultUnicode.length > 0" class="body">