summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints/i/update.ts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-11-15 16:17:21 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-11-15 16:17:21 +0900
commitca81f0ddbbeea1e5ebd95ae81a6016c7a57612fc (patch)
treedbdb10b354584a8bb358e896c69de7a1c5f3a0e4 /packages/backend/src/server/api/endpoints/i/update.ts
parentchore(backend): improve performance (diff)
downloadsharkey-ca81f0ddbbeea1e5ebd95ae81a6016c7a57612fc.tar.gz
sharkey-ca81f0ddbbeea1e5ebd95ae81a6016c7a57612fc.tar.bz2
sharkey-ca81f0ddbbeea1e5ebd95ae81a6016c7a57612fc.zip
fix(backend): 追加情報のカスタム絵文字がユーザー情報のtagに含まれない問題を修正
Fix #12316
Diffstat (limited to 'packages/backend/src/server/api/endpoints/i/update.ts')
-rw-r--r--packages/backend/src/server/api/endpoints/i/update.ts16
1 files changed, 13 insertions, 3 deletions
diff --git a/packages/backend/src/server/api/endpoints/i/update.ts b/packages/backend/src/server/api/endpoints/i/update.ts
index 0e6a4d2e36..b00aa87bee 100644
--- a/packages/backend/src/server/api/endpoints/i/update.ts
+++ b/packages/backend/src/server/api/endpoints/i/update.ts
@@ -379,16 +379,26 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
const newName = updates.name === undefined ? user.name : updates.name;
const newDescription = profileUpdates.description === undefined ? profile.description : profileUpdates.description;
+ const newFields = profileUpdates.fields === undefined ? profile.fields : profileUpdates.fields;
if (newName != null) {
const tokens = mfm.parseSimple(newName);
- emojis = emojis.concat(extractCustomEmojisFromMfm(tokens!));
+ emojis = emojis.concat(extractCustomEmojisFromMfm(tokens));
}
if (newDescription != null) {
const tokens = mfm.parse(newDescription);
- emojis = emojis.concat(extractCustomEmojisFromMfm(tokens!));
- tags = extractHashtags(tokens!).map(tag => normalizeForSearch(tag)).splice(0, 32);
+ emojis = emojis.concat(extractCustomEmojisFromMfm(tokens));
+ tags = extractHashtags(tokens).map(tag => normalizeForSearch(tag)).splice(0, 32);
+ }
+
+ for (const field of newFields) {
+ const nameTokens = mfm.parseSimple(field.name);
+ const valueTokens = mfm.parseSimple(field.value);
+ emojis = emojis.concat([
+ ...extractCustomEmojisFromMfm(nameTokens),
+ ...extractCustomEmojisFromMfm(valueTokens),
+ ]);
}
updates.emojis = emojis;