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/remote/activitypub/kernel/undo/like.ts | |
| parent | Add Unicode 12.1 Emojis (#5825) (diff) | |
| download | sharkey-b7a4f286b02c8ebb376779569e5564f52496913e.tar.gz sharkey-b7a4f286b02c8ebb376779569e5564f52496913e.tar.bz2 sharkey-b7a4f286b02c8ebb376779569e5564f52496913e.zip | |
リモート投稿にリモートでされたリアクションが表示されるように (#5817)
* 第3インスタンスへのLikeも受け入れるように
* リアクション済みだったらエラーにせずに置き換えるように
* Likeを第3インスタンスにdeliverするように
* fix
* fix
* 同じリアクションがすでにされていたら何もしない
* リモートから自身の投稿へリアクションした場合にエラーにならないように
Diffstat (limited to 'src/remote/activitypub/kernel/undo/like.ts')
| -rw-r--r-- | src/remote/activitypub/kernel/undo/like.ts | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/src/remote/activitypub/kernel/undo/like.ts b/src/remote/activitypub/kernel/undo/like.ts index 2678828a9a..bd6930c66b 100644 --- a/src/remote/activitypub/kernel/undo/like.ts +++ b/src/remote/activitypub/kernel/undo/like.ts @@ -1,21 +1,17 @@ import { IRemoteUser } from '../../../../models/entities/user'; -import { ILike } from '../../type'; +import { ILike, getApId } from '../../type'; import deleteReaction from '../../../../services/note/reaction/delete'; -import { Notes } from '../../../../models'; +import { fetchNote } from '../../models/note'; /** * Process Undo.Like activity */ -export default async (actor: IRemoteUser, activity: ILike): Promise<void> => { - const id = typeof activity.object == 'string' ? activity.object : activity.object.id; - if (id == null) throw new Error('missing id'); +export default async (actor: IRemoteUser, activity: ILike) => { + const targetUri = getApId(activity.object); - const noteId = id.split('/').pop(); - - const note = await Notes.findOne(noteId); - if (note == null) { - throw new Error('note not found'); - } + const note = await fetchNote(targetUri); + if (!note) return `skip: target note not found ${targetUri}`; await deleteReaction(actor, note); + return `ok`; }; |