diff options
| author | MeiMei <30769358+mei23@users.noreply.github.com> | 2019-09-09 22:46:45 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2019-09-09 22:46:45 +0900 |
| commit | 827c378ac15f52427c6c7eb589fe115891002658 (patch) | |
| tree | b61f33bfc0430baf3688a6af659e0c1a6c988731 /src/remote/activitypub/kernel/create | |
| parent | Merge branch 'develop' of https://github.com/syuilo/misskey into develop (diff) | |
| download | sharkey-827c378ac15f52427c6c7eb589fe115891002658.tar.gz sharkey-827c378ac15f52427c6c7eb589fe115891002658.tar.bz2 sharkey-827c378ac15f52427c6c7eb589fe115891002658.zip | |
AP Lock (#5410)
Diffstat (limited to 'src/remote/activitypub/kernel/create')
| -rw-r--r-- | src/remote/activitypub/kernel/create/note.ts | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/remote/activitypub/kernel/create/note.ts b/src/remote/activitypub/kernel/create/note.ts index 70e61bdf1b..a28eaa11fb 100644 --- a/src/remote/activitypub/kernel/create/note.ts +++ b/src/remote/activitypub/kernel/create/note.ts @@ -1,13 +1,23 @@ import Resolver from '../../resolver'; import { IRemoteUser } from '../../../../models/entities/user'; import { createNote, fetchNote } from '../../models/note'; +import { getApId } from '../../type'; +import { getApLock } from '../../../../misc/app-lock'; /** * 投稿作成アクティビティを捌きます */ export default async function(resolver: Resolver, actor: IRemoteUser, note: any, silent = false): Promise<void> { - const exist = await fetchNote(note); - if (exist == null) { - await createNote(note); + const uri = getApId(note); + + const unlock = await getApLock(uri); + + try { + const exist = await fetchNote(note); + if (exist == null) { + await createNote(note); + } + } finally { + unlock(); } } |