summaryrefslogtreecommitdiff
path: root/src/services/note/reaction/delete.ts
diff options
context:
space:
mode:
authorMeiMei <30769358+mei23@users.noreply.github.com>2020-02-04 08:26:00 +0900
committerGitHub <noreply@github.com>2020-02-04 08:26:00 +0900
commitb7a4f286b02c8ebb376779569e5564f52496913e (patch)
treee113d71516c362eabd7034b3503769d343ec3249 /src/services/note/reaction/delete.ts
parentAdd Unicode 12.1 Emojis (#5825) (diff)
downloadmisskey-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.ts17
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
};