summaryrefslogtreecommitdiff
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
parentchore(backend): improve performance (diff)
downloadsharkey-ca81f0ddbbeea1e5ebd95ae81a6016c7a57612fc.tar.gz
sharkey-ca81f0ddbbeea1e5ebd95ae81a6016c7a57612fc.tar.bz2
sharkey-ca81f0ddbbeea1e5ebd95ae81a6016c7a57612fc.zip
fix(backend): 追加情報のカスタム絵文字がユーザー情報のtagに含まれない問題を修正
Fix #12316
-rw-r--r--CHANGELOG.md1
-rw-r--r--packages/backend/src/server/api/endpoints/i/update.ts16
2 files changed, 14 insertions, 3 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index fc6c8ce711..d872ff153b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -34,6 +34,7 @@
- Fix: トークンのないプラグインをアンインストールするときにエラーが出ないように
- Fix: 投稿通知がオンでもダイレクト投稿はユーザーに通知されないようにされました
- Fix: ユーザタイムラインの「ノート」選択時にリノートが混ざり込んでしまうことがある問題の修正 #12306
+- Fix: ActivityPub: 追加情報のカスタム絵文字がユーザー情報のtagに含まれない問題を修正
- Fix: ActivityPubに関するセキュリティの向上
- Fix: 非公開の投稿に対して返信できないように
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;