From 9469b26eb25caf89cd9b1919e8ba380c0d33708a Mon Sep 17 00:00:00 2001
From: nenohi <kimutipartylove@gmail.com>
Date: Fri, 14 Apr 2023 14:49:41 +0900
Subject: [PATCH] =?UTF-8?q?=E3=82=AB=E3=82=B9=E3=82=BF=E3=83=A0=E7=B5=B5?=
 =?UTF-8?q?=E6=96=87=E5=AD=97=E3=81=AE=E6=A4=9C=E7=B4=A2=E3=82=92=E7=B5=B5?=
 =?UTF-8?q?=E6=96=87=E5=AD=97=E3=83=94=E3=83=83=E3=82=AB=E3=83=BC=E4=BD=BF?=
 =?UTF-8?q?=E7=94=A8=E3=81=A7=E3=81=8D=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?=
 =?UTF-8?q?=20(#10335)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* fix( #10013)

* add changelog

* also in about.emojis.vue

* fix changelog

---------

Co-authored-by: tamaina <tamaina@hotmail.co.jp>
---
 .../src/server/api/endpoints/admin/emoji/list.ts | 16 +++++++++++-----
 packages/frontend/src/pages/about.emojis.vue     | 10 +++++++++-
 2 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/list.ts b/packages/backend/src/server/api/endpoints/admin/emoji/list.ts
index 814668294f..4aa4ad82b4 100644
--- a/packages/backend/src/server/api/endpoints/admin/emoji/list.ts
+++ b/packages/backend/src/server/api/endpoints/admin/emoji/list.ts
@@ -87,12 +87,18 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
 				//const emojis = await q.take(ps.limit).getMany();
 
 				emojis = await q.getMany();
+				const queryarry = ps.query.match(/\:([a-z0-9_]*)\:/g);
 
-				emojis = emojis.filter(emoji =>
-					emoji.name.includes(ps.query!) ||
-					emoji.aliases.some(a => a.includes(ps.query!)) ||
-					emoji.category?.includes(ps.query!));
-
+				if (queryarry) {
+					emojis = emojis.filter(emoji => 
+						queryarry.includes(`:${emoji.name}:`)
+					);
+				} else {
+					emojis = emojis.filter(emoji =>
+						emoji.name.includes(ps.query!) ||
+						emoji.aliases.some(a => a.includes(ps.query!)) ||
+						emoji.category?.includes(ps.query!));
+				}
 				emojis.splice(ps.limit + 1);
 			} else {
 				emojis = await q.take(ps.limit).getMany();
diff --git a/packages/frontend/src/pages/about.emojis.vue b/packages/frontend/src/pages/about.emojis.vue
index d461430234..2d82fcf277 100644
--- a/packages/frontend/src/pages/about.emojis.vue
+++ b/packages/frontend/src/pages/about.emojis.vue
@@ -53,7 +53,15 @@ function search() {
 	}
 
 	if (selectedTags.size === 0) {
-		searchEmojis = customEmojis.value.filter(emoji => emoji.name.includes(q) || emoji.aliases.includes(q));
+		const queryarry = q.match(/\:([a-z0-9_]*)\:/g);
+
+		if (queryarry) {
+			searchEmojis = customEmojis.value.filter(emoji => 
+				queryarry.includes(`:${emoji.name}:`)
+			);
+		} else {
+			searchEmojis = customEmojis.value.filter(emoji => emoji.name.includes(q) || emoji.aliases.includes(q));
+		}
 	} else {
 		searchEmojis = customEmojis.value.filter(emoji => (emoji.name.includes(q) || emoji.aliases.includes(q)) && [...selectedTags].every(t => emoji.aliases.includes(t)));
 	}