diff options
| author | Johann150 <johann.galle@protonmail.com> | 2022-03-27 04:57:04 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-03-27 13:57:04 +0900 |
| commit | a6f6ddc34e46b9d9754544fb5ec840aa019474be (patch) | |
| tree | 2dd86b1742b51b3f46bd432ee934f5b32555be16 /packages/backend/src/services/note | |
| parent | refactor (diff) | |
| download | misskey-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.ts | 11 |
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 |