From 536277122d6c8f951114df6f7867095639343991 Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 9 Apr 2018 05:02:52 +0900 Subject: wip --- src/remote/activitypub/kernel/create/index.ts | 44 +++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/remote/activitypub/kernel/create/index.ts (limited to 'src/remote/activitypub/kernel/create/index.ts') diff --git a/src/remote/activitypub/kernel/create/index.ts b/src/remote/activitypub/kernel/create/index.ts new file mode 100644 index 0000000000..7cb9b08449 --- /dev/null +++ b/src/remote/activitypub/kernel/create/index.ts @@ -0,0 +1,44 @@ +import * as debug from 'debug'; + +import Resolver from '../../resolver'; +import { IRemoteUser } from '../../../../models/user'; +import createNote from './note'; +import createImage from './image'; +import { ICreate } from '../../type'; + +const log = debug('misskey:activitypub'); + +export default async (actor: IRemoteUser, activity: ICreate): Promise => { + if ('actor' in activity && actor.uri !== activity.actor) { + throw new Error('invalid actor'); + } + + const uri = activity.id || activity; + + log(`Create: ${uri}`); + + const resolver = new Resolver(); + + let object; + + try { + object = await resolver.resolve(activity.object); + } catch (e) { + log(`Resolution failed: ${e}`); + throw e; + } + + switch (object.type) { + case 'Image': + createImage(actor, object); + break; + + case 'Note': + createNote(resolver, actor, object); + break; + + default: + console.warn(`Unknown type: ${object.type}`); + break; + } +}; -- cgit v1.3.1-freya From cf5b6791177767816708e9e96bbd91d1c8e2a8bb Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 9 Apr 2018 05:23:35 +0900 Subject: :v: --- src/remote/activitypub/kernel/create/index.ts | 4 ---- 1 file changed, 4 deletions(-) (limited to 'src/remote/activitypub/kernel/create/index.ts') diff --git a/src/remote/activitypub/kernel/create/index.ts b/src/remote/activitypub/kernel/create/index.ts index 7cb9b08449..e11bcac811 100644 --- a/src/remote/activitypub/kernel/create/index.ts +++ b/src/remote/activitypub/kernel/create/index.ts @@ -9,10 +9,6 @@ import { ICreate } from '../../type'; const log = debug('misskey:activitypub'); export default async (actor: IRemoteUser, activity: ICreate): Promise => { - if ('actor' in activity && actor.uri !== activity.actor) { - throw new Error('invalid actor'); - } - const uri = activity.id || activity; log(`Create: ${uri}`); -- cgit v1.3.1-freya