summaryrefslogtreecommitdiff
path: root/packages/backend/src/services/note
diff options
context:
space:
mode:
authorJohann150 <johann.galle@protonmail.com>2022-03-27 04:57:04 +0000
committerGitHub <noreply@github.com>2022-03-27 13:57:04 +0900
commita6f6ddc34e46b9d9754544fb5ec840aa019474be (patch)
tree2dd86b1742b51b3f46bd432ee934f5b32555be16 /packages/backend/src/services/note
parentrefactor (diff)
downloadmisskey-a6f6ddc34e46b9d9754544fb5ec840aa019474be.tar.gz
misskey-a6f6ddc34e46b9d9754544fb5ec840aa019474be.tar.bz2
misskey-a6f6ddc34e46b9d9754544fb5ec840aa019474be.zip
limit federation of reactions on direct notes (#8448)
Diffstat (limited to 'packages/backend/src/services/note')
-rw-r--r--packages/backend/src/services/note/reaction/create.ts11
1 files changed, 10 insertions, 1 deletions
diff --git a/packages/backend/src/services/note/reaction/create.ts b/packages/backend/src/services/note/reaction/create.ts
index 77de29d794..5a0948bca9 100644
--- a/packages/backend/src/services/note/reaction/create.ts
+++ b/packages/backend/src/services/note/reaction/create.ts
@@ -124,7 +124,16 @@ export default async (user: { id: User['id']; host: User['host']; }, note: Note,
const reactee = await Users.findOneBy({ id: note.userId });
dm.addDirectRecipe(reactee as IRemoteUser);
}
- dm.addFollowersRecipe();
+
+ if (['public', 'home', 'followers'].includes(note.visibility)) {
+ dm.addFollowersRecipe();
+ } else if (note.visibility === 'specified') {
+ const visibleUsers = await Promise.all(note.visibleUserIds.map(id => Users.findOneBy({ id })));
+ for (const u of visibleUsers.filter(u => u && Users.isRemoteUser(u))) {
+ dm.addDirectRecipe(u as IRemoteUser);
+ }
+ }
+
dm.execute();
}
//#endregion