summaryrefslogtreecommitdiff
path: root/src/remote/activitypub/kernel/create/note.ts
diff options
context:
space:
mode:
authorMeiMei <30769358+mei23@users.noreply.github.com>2019-09-09 22:46:45 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2019-09-09 22:46:45 +0900
commit827c378ac15f52427c6c7eb589fe115891002658 (patch)
treeb61f33bfc0430baf3688a6af659e0c1a6c988731 /src/remote/activitypub/kernel/create/note.ts
parentMerge branch 'develop' of https://github.com/syuilo/misskey into develop (diff)
downloadsharkey-827c378ac15f52427c6c7eb589fe115891002658.tar.gz
sharkey-827c378ac15f52427c6c7eb589fe115891002658.tar.bz2
sharkey-827c378ac15f52427c6c7eb589fe115891002658.zip
AP Lock (#5410)
Diffstat (limited to 'src/remote/activitypub/kernel/create/note.ts')
-rw-r--r--src/remote/activitypub/kernel/create/note.ts16
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();
}
}