diff options
| author | MeiMei <30769358+mei23@users.noreply.github.com> | 2020-02-04 08:26:00 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-02-04 08:26:00 +0900 |
| commit | b7a4f286b02c8ebb376779569e5564f52496913e (patch) | |
| tree | e113d71516c362eabd7034b3503769d343ec3249 /src/services/note/reaction/delete.ts | |
| parent | Add Unicode 12.1 Emojis (#5825) (diff) | |
| download | misskey-b7a4f286b02c8ebb376779569e5564f52496913e.tar.gz misskey-b7a4f286b02c8ebb376779569e5564f52496913e.tar.bz2 misskey-b7a4f286b02c8ebb376779569e5564f52496913e.zip | |
リモート投稿にリモートでされたリアクションが表示されるように (#5817)
* 第3インスタンスへのLikeも受け入れるように
* リアクション済みだったらエラーにせずに置き換えるように
* Likeを第3インスタンスにdeliverするように
* fix
* fix
* 同じリアクションがすでにされていたら何もしない
* リモートから自身の投稿へリアクションした場合にエラーにならないように
Diffstat (limited to 'src/services/note/reaction/delete.ts')
| -rw-r--r-- | src/services/note/reaction/delete.ts | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/services/note/reaction/delete.ts b/src/services/note/reaction/delete.ts index 6e9611ca5a..533c3b4062 100644 --- a/src/services/note/reaction/delete.ts +++ b/src/services/note/reaction/delete.ts @@ -2,9 +2,9 @@ import { publishNoteStream } from '../../stream'; import renderLike from '../../../remote/activitypub/renderer/like'; import renderUndo from '../../../remote/activitypub/renderer/undo'; import { renderActivity } from '../../../remote/activitypub/renderer'; -import { deliver } from '../../../queue'; +import DeliverManager from '../../../remote/activitypub/deliver-manager'; import { IdentifiableError } from '../../../misc/identifiable-error'; -import { User } from '../../../models/entities/user'; +import { User, IRemoteUser } from '../../../models/entities/user'; import { Note } from '../../../models/entities/note'; import { NoteReactions, Users, Notes } from '../../../models'; @@ -39,12 +39,15 @@ export default async (user: User, note: Note) => { }); //#region 配信 - // リアクターがローカルユーザーかつリアクション対象がリモートユーザーの投稿なら配送 - if (Users.isLocalUser(user) && (note.userHost !== null)) { + if (Users.isLocalUser(user) && !note.localOnly) { const content = renderActivity(renderUndo(renderLike(user, note, exist.reaction), user)); - Users.findOne(note.userId).then(u => { - deliver(user, content, u!.inbox); - }); + const dm = new DeliverManager(user, content); + if (note.userHost !== null) { + const reactee = await Users.findOne(note.userId) + dm.addDirectRecipe(reactee as IRemoteUser); + } + dm.addFollowersRecipe(); + dm.execute(); } //#endregion }; |