From 49af5ac8c2653cb0ef23479c9d3256c5b724d49d Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 3 Jun 2021 14:30:09 +0200 Subject: Refactor AP playlists --- server/lib/activitypub/share.ts | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) (limited to 'server/lib/activitypub/share.ts') diff --git a/server/lib/activitypub/share.ts b/server/lib/activitypub/share.ts index c22fa0893..327955dd2 100644 --- a/server/lib/activitypub/share.ts +++ b/server/lib/activitypub/share.ts @@ -40,23 +40,7 @@ async function changeVideoChannelShare ( async function addVideoShares (shareUrls: string[], video: MVideoId) { await Bluebird.map(shareUrls, async shareUrl => { try { - const { body } = await doJSONRequest(shareUrl, { activityPub: true }) - if (!body || !body.actor) throw new Error('Body or body actor is invalid') - - const actorUrl = getAPId(body.actor) - if (checkUrlsSameHost(shareUrl, actorUrl) !== true) { - throw new Error(`Actor url ${actorUrl} has not the same host than the share url ${shareUrl}`) - } - - const actor = await getOrCreateActorAndServerAndModel(actorUrl) - - const entry = { - actorId: actor.id, - videoId: video.id, - url: shareUrl - } - - await VideoShareModel.upsert(entry) + await addVideoShare(shareUrl, video) } catch (err) { logger.warn('Cannot add share %s.', shareUrl, { err }) } @@ -71,6 +55,26 @@ export { // --------------------------------------------------------------------------- +async function addVideoShare (shareUrl: string, video: MVideoId) { + const { body } = await doJSONRequest(shareUrl, { activityPub: true }) + if (!body || !body.actor) throw new Error('Body or body actor is invalid') + + const actorUrl = getAPId(body.actor) + if (checkUrlsSameHost(shareUrl, actorUrl) !== true) { + throw new Error(`Actor url ${actorUrl} has not the same host than the share url ${shareUrl}`) + } + + const actor = await getOrCreateActorAndServerAndModel(actorUrl) + + const entry = { + actorId: actor.id, + videoId: video.id, + url: shareUrl + } + + await VideoShareModel.upsert(entry) +} + async function shareByServer (video: MVideo, t: Transaction) { const serverActor = await getServerActor() -- cgit v1.2.3