diff options
Diffstat (limited to 'server/lib/activitypub/process-add.ts')
-rw-r--r-- | server/lib/activitypub/process-add.ts | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/server/lib/activitypub/process-add.ts b/server/lib/activitypub/process-add.ts index df7139d46..72c5b1932 100644 --- a/server/lib/activitypub/process-add.ts +++ b/server/lib/activitypub/process-add.ts | |||
@@ -1,12 +1,12 @@ | |||
1 | import * as Bluebird from 'bluebird' | ||
1 | import { VideoTorrentObject } from '../../../shared' | 2 | import { VideoTorrentObject } from '../../../shared' |
2 | import { ActivityAdd } from '../../../shared/models/activitypub/activity' | 3 | import { ActivityAdd } from '../../../shared/models/activitypub/activity' |
3 | import { generateThumbnailFromUrl, logger, retryTransactionWrapper, getOrCreateAccount } from '../../helpers' | 4 | import { generateThumbnailFromUrl, getOrCreateAccount, logger, retryTransactionWrapper } from '../../helpers' |
5 | import { getOrCreateVideoChannel } from '../../helpers/activitypub' | ||
4 | import { database as db } from '../../initializers' | 6 | import { database as db } from '../../initializers' |
5 | import { AccountInstance } from '../../models/account/account-interface' | 7 | import { AccountInstance } from '../../models/account/account-interface' |
6 | import { videoActivityObjectToDBAttributes, videoFileActivityUrlToDBAttributes } from './misc' | ||
7 | import Bluebird = require('bluebird') | ||
8 | import { getOrCreateVideoChannel } from '../../helpers/activitypub' | ||
9 | import { VideoChannelInstance } from '../../models/video/video-channel-interface' | 8 | import { VideoChannelInstance } from '../../models/video/video-channel-interface' |
9 | import { videoActivityObjectToDBAttributes, videoFileActivityUrlToDBAttributes } from './misc' | ||
10 | 10 | ||
11 | async function processAddActivity (activity: ActivityAdd) { | 11 | async function processAddActivity (activity: ActivityAdd) { |
12 | const activityObject = activity.object | 12 | const activityObject = activity.object |
@@ -51,7 +51,10 @@ function addRemoteVideo (account: AccountInstance, videoChannel: VideoChannelIns | |||
51 | 51 | ||
52 | if (videoChannel.Account.id !== account.id) throw new Error('Video channel is not owned by this account.') | 52 | if (videoChannel.Account.id !== account.id) throw new Error('Video channel is not owned by this account.') |
53 | 53 | ||
54 | const videoData = await videoActivityObjectToDBAttributes(videoChannel, videoToCreateData, t) | 54 | const videoFromDatabase = await db.Video.loadByUUIDOrURL(videoToCreateData.uuid, videoToCreateData.id, t) |
55 | if (videoFromDatabase) throw new Error('Video with this UUID/Url already exists.') | ||
56 | |||
57 | const videoData = await videoActivityObjectToDBAttributes(videoChannel, videoToCreateData) | ||
55 | const video = db.Video.build(videoData) | 58 | const video = db.Video.build(videoData) |
56 | 59 | ||
57 | // Don't block on request | 60 | // Don't block on request |