X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Factivitypub%2Fprocess%2Fprocess-create.ts;h=b9f584aa572572f36b81606aa21789ef5cc7f705;hb=6691c52280363fc42f7865230ebb3741f02fff23;hp=e882669ceea30cb6954e99ce9d286ebc2c9cf43e;hpb=418d092afa81e2c8fe8ac6838fc4b5eb0af6a782;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/activitypub/process/process-create.ts b/server/lib/activitypub/process/process-create.ts index e882669ce..b9f584aa5 100644 --- a/server/lib/activitypub/process/process-create.ts +++ b/server/lib/activitypub/process/process-create.ts @@ -9,28 +9,14 @@ import { getOrCreateVideoAndAccountAndChannel } from '../videos' import { forwardVideoRelatedActivity } from '../send/utils' import { createOrUpdateCacheFile } from '../cache-file' import { Notifier } from '../../notifier' -import { processViewActivity } from './process-view' -import { processDislikeActivity } from './process-dislike' -import { processFlagActivity } from './process-flag' import { PlaylistObject } from '../../../../shared/models/activitypub/objects/playlist-object' import { createOrUpdateVideoPlaylist } from '../playlist' +import { VideoModel } from '../../../models/video/video' async function processCreateActivity (activity: ActivityCreate, byActor: ActorModel) { const activityObject = activity.object const activityType = activityObject.type - if (activityType === 'View') { - return processViewActivity(activity, byActor) - } - - if (activityType === 'Dislike') { - return retryTransactionWrapper(processDislikeActivity, activity, byActor) - } - - if (activityType === 'Flag') { - return retryTransactionWrapper(processFlagActivity, activity, byActor) - } - if (activityType === 'Video') { return processCreateVideo(activity) } @@ -62,9 +48,9 @@ export { async function processCreateVideo (activity: ActivityCreate) { const videoToCreateData = activity.object as VideoTorrentObject - const { video, created } = await getOrCreateVideoAndAccountAndChannel({ videoObject: videoToCreateData }) + const { video, created, autoBlacklisted } = await getOrCreateVideoAndAccountAndChannel({ videoObject: videoToCreateData }) - if (created) Notifier.Instance.notifyOnNewVideo(video) + if (created && !autoBlacklisted) Notifier.Instance.notifyOnNewVideo(video) return video } @@ -91,7 +77,18 @@ async function processCreateVideoComment (activity: ActivityCreate, byActor: Act if (!byAccount) throw new Error('Cannot create video comment with the non account actor ' + byActor.url) - const { video } = await resolveThread(commentObject.inReplyTo) + let video: VideoModel + try { + const resolveThreadResult = await resolveThread(commentObject.inReplyTo) + video = resolveThreadResult.video + } catch (err) { + logger.debug( + 'Cannot process video comment because we could not resolve thread %s. Maybe it was not a video thread, so skip it.', + commentObject.inReplyTo, + { err } + ) + return + } const { comment, created } = await addVideoComment(video, commentObject.id)