activityPubClientRouter.get('/videos/watch/:id',
executeIfActivityPub,
- asyncMiddleware(cacheRoute(ROUTE_CACHE_LIFETIME.ACTIVITY_PUB.VIDEOS)),
+ asyncMiddleware(cacheRoute()(ROUTE_CACHE_LIFETIME.ACTIVITY_PUB.VIDEOS)),
asyncMiddleware(videosCustomGetValidator('only-video-with-rights')),
asyncMiddleware(videoController)
)
// We need captions to render AP object
const captions = await VideoCaptionModel.listVideoCaptions(video.id)
- const videoWithCaptions: MVideoAPWithoutCaption = Object.assign(video, { VideoCaptions: captions })
+ const videoWithCaptions = Object.assign(video, { VideoCaptions: captions })
const audience = getAudience(videoWithCaptions.VideoChannel.Account.Actor, videoWithCaptions.privacy === VideoPrivacy.PUBLIC)
const videoObject = audiencify(videoWithCaptions.toActivityPubObject(), audience)
const threadParentComments = await VideoCommentModel.listThreadParentComments(videoComment, undefined)
const isPublic = true // Comments are always public
- const audience = getAudience(videoComment.Account.Actor, isPublic)
+ let videoCommentObject = videoComment.toActivityPubObject(threadParentComments)
- const videoCommentObject = audiencify(videoComment.toActivityPubObject(threadParentComments), audience)
+ if (videoComment.Account) {
+ const audience = getAudience(videoComment.Account.Actor, isPublic)
+ videoCommentObject = audiencify(videoCommentObject, audience)
- if (req.path.endsWith('/activity')) {
- const data = buildCreateActivity(videoComment.url, videoComment.Account.Actor, videoCommentObject, audience)
- return activityPubResponse(activityPubContextify(data), res)
+ if (req.path.endsWith('/activity')) {
+ const data = buildCreateActivity(videoComment.url, videoComment.Account.Actor, videoCommentObject, audience)
+ return activityPubResponse(activityPubContextify(data), res)
+ }
}
return activityPubResponse(activityPubContextify(videoCommentObject), res)
}
async function videoPlaylistElementController (req: express.Request, res: express.Response) {
- const videoPlaylistElement = res.locals.videoPlaylistElement
+ const videoPlaylistElement = res.locals.videoPlaylistElementAP
const json = videoPlaylistElement.toActivityPubObject()
return activityPubResponse(activityPubContextify(json), res)