const reqFiles = multer({ storage: storage }).fields([{ name: 'videofile', maxCount: 1 }])
+router.get('/categories', listVideoCategories)
+router.get('/licences', listVideoLicences)
+router.get('/languages', listVideoLanguages)
+
router.get('/abuse',
oAuth.authenticate,
admin.ensureIsAdmin,
validatorsVideos.videosGet,
getVideo
)
+
router.delete('/:id',
oAuth.authenticate,
validatorsVideos.videosRemove,
removeVideo
)
+
router.get('/search/:value',
validatorsVideos.videosSearch,
validatorsPagination.pagination,
searchVideos
)
+router.post('/:id/blacklist',
+ oAuth.authenticate,
+ admin.ensureIsAdmin,
+ validatorsVideos.videosBlacklist,
+ addVideoToBlacklist
+)
+
// ---------------------------------------------------------------------------
module.exports = router
// ---------------------------------------------------------------------------
+function listVideoCategories (req, res, next) {
+ res.json(constants.VIDEO_CATEGORIES)
+}
+
+function listVideoLicences (req, res, next) {
+ res.json(constants.VIDEO_LICENCES)
+}
+
+function listVideoLanguages (req, res, next) {
+ res.json(constants.VIDEO_LANGUAGES)
+}
+
function rateVideoRetryWrapper (req, res, next) {
const options = {
arguments: [ req, res ],
name: videoInfos.name,
remoteId: null,
extname: path.extname(videoFile.filename),
+ category: videoInfos.category,
+ licence: videoInfos.licence,
+ language: videoInfos.language,
+ nsfw: videoInfos.nsfw,
description: videoInfos.description,
duration: videoFile.duration,
authorId: author.id
},
function sendToFriends (t, video, callback) {
+ // Let transcoding job send the video to friends because the videofile extension might change
+ if (constants.CONFIG.TRANSCODING.ENABLED === true) return callback(null, t)
+
video.toAddRemoteJSON(function (err, remoteVideo) {
if (err) return callback(err)
}
if (videoInfosToUpdate.name) videoInstance.set('name', videoInfosToUpdate.name)
+ if (videoInfosToUpdate.category) videoInstance.set('category', videoInfosToUpdate.category)
+ if (videoInfosToUpdate.licence) videoInstance.set('licence', videoInfosToUpdate.licence)
+ if (videoInfosToUpdate.language) videoInstance.set('language', videoInfosToUpdate.language)
+ if (videoInfosToUpdate.nsfw) videoInstance.set('nsfw', videoInfosToUpdate.nsfw)
if (videoInfosToUpdate.description) videoInstance.set('description', videoInfosToUpdate.description)
videoInstance.save(options).asCallback(function (err) {
return finalCallback(null)
})
}
+
+function addVideoToBlacklist (req, res, next) {
+ const videoInstance = res.locals.video
+
+ const toCreate = {
+ videoId: videoInstance.id
+ }
+
+ db.BlacklistedVideo.create(toCreate).asCallback(function (err) {
+ if (err) {
+ logger.error('Errors when blacklisting video ', { error: err })
+ return next(err)
+ }
+
+ return res.type('json').status(204).end()
+ })
+}