X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Fvideos.js;h=a74c77dc4c98b8bdf37cb80c7d67a4b03275030f;hb=528a9efa8272532bbd0dafc35c3e05e57c50f61e;hp=b3497743abcaba741db6cee8e137c88fc93c120b;hpb=cbe2f7c34822b1bd3b1f8c691f79f0c29cf21f07;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/videos.js b/server/lib/videos.js index b3497743a..a74c77dc4 100644 --- a/server/lib/videos.js +++ b/server/lib/videos.js @@ -17,27 +17,51 @@ const uploadDir = pathUtils.join(__dirname, '..', '..', config.get('storage.uplo const thumbnailsDir = pathUtils.join(__dirname, '..', '..', config.get('storage.thumbnails')) const videos = { + convertVideoToRemote: convertVideoToRemote, createRemoteVideos: createRemoteVideos, getVideoDuration: getVideoDuration, getVideoState: getVideoState, - getVideoThumbnail: getVideoThumbnail, + createVideoThumbnail: createVideoThumbnail, removeVideosDataFromDisk: removeVideosDataFromDisk, removeRemoteVideos: removeRemoteVideos, seed: seed, seedAllExisting: seedAllExisting } +function convertVideoToRemote (video, callback) { + fs.readFile(thumbnailsDir + video.thumbnail, function (err, thumbnailData) { + if (err) { + logger.error('Cannot read the thumbnail of the video') + return callback(err) + } + + const remoteVideo = { + name: video.name, + description: video.description, + magnetUri: video.magnetUri, + author: video.author, + duration: video.duration, + thumbnailBase64: new Buffer(thumbnailData).toString('base64'), + tags: video.tags, + createdDate: video.createdDate, + podUrl: video.podUrl + } + + return callback(null, remoteVideo) + }) +} + function createRemoteVideos (videos, callback) { // Create the remote videos from the new pod - createRemoteVideoObjects(videos, function (err, remote_videos) { + createRemoteVideoObjects(videos, function (err, remoteVideos) { if (err) return callback(err) - Videos.addRemotes(remote_videos, callback) + Videos.addRemotes(remoteVideos, callback) }) } -function getVideoDuration (video_path, callback) { - ffmpeg.ffprobe(video_path, function (err, metadata) { +function getVideoDuration (videoPath, callback) { + ffmpeg.ffprobe(videoPath, function (err, metadata) { if (err) return callback(err) return callback(null, Math.floor(metadata.format.duration)) @@ -54,9 +78,9 @@ function getVideoState (video) { return { exist: exist, owned: owned } } -function getVideoThumbnail (video_path, callback) { - const filename = pathUtils.basename(video_path) + '.jpg' - ffmpeg(video_path) +function createVideoThumbnail (videoPath, callback) { + const filename = pathUtils.basename(videoPath) + '.jpg' + ffmpeg(videoPath) .on('error', callback) .on('end', function () { callback(null, filename) @@ -71,7 +95,7 @@ function getVideoThumbnail (video_path, callback) { // Remove video datas from disk (video file, thumbnail...) function removeVideosDataFromDisk (videos, callback) { - async.each(videos, function (video, callback_each) { + async.each(videos, function (video, callbackEach) { fs.unlink(thumbnailsDir + video.thumbnail, function (err) { if (err) logger.error('Cannot remove the video thumbnail') @@ -79,13 +103,13 @@ function removeVideosDataFromDisk (videos, callback) { fs.unlink(uploadDir + video.namePath, function (err) { if (err) { logger.error('Cannot remove this video file.') - return callback_each(err) + return callbackEach(err) } - callback_each(null) + callbackEach(null) }) } else { - callback_each(null) + callbackEach(null) } }) }, callback) @@ -110,20 +134,20 @@ function seed (path, callback) { } function seedAllExisting (callback) { - Videos.listOwned(function (err, videos_list) { + Videos.listOwned(function (err, videosList) { if (err) { logger.error('Cannot get list of the videos to seed.') return callback(err) } - async.each(videos_list, function (video, each_callback) { + async.each(videosList, function (video, callbackEach) { seed(uploadDir + video.namePath, function (err) { if (err) { logger.error('Cannot seed this video.') return callback(err) } - each_callback(null) + callbackEach(null) }) }, callback) }) @@ -136,16 +160,16 @@ module.exports = videos // --------------------------------------------------------------------------- function createRemoteVideoObjects (videos, callback) { - const remote_videos = [] + const remoteVideos = [] - async.each(videos, function (video, callback_each) { + async.each(videos, function (video, callbackEach) { // Creating the thumbnail for this remote video - utils.generateRandomString(16, function (err, random_string) { - if (err) return callback_each(err) + utils.generateRandomString(16, function (err, randomString) { + if (err) return callbackEach(err) - const thumbnail_name = random_string + '.jpg' - createThumbnailFromBase64(thumbnail_name, video.thumbnail_base64, function (err) { - if (err) return callback_each(err) + const thumbnailName = randomString + '.jpg' + createThumbnailFromBase64(thumbnailName, video.thumbnailBase64, function (err) { + if (err) return callbackEach(err) const params = { name: video.name, @@ -153,21 +177,23 @@ function createRemoteVideoObjects (videos, callback) { magnetUri: video.magnetUri, podUrl: video.podUrl, duration: video.duration, - thumbnail: thumbnail_name + thumbnail: thumbnailName, + tags: video.tags, + author: video.author } - remote_videos.push(params) + remoteVideos.push(params) - callback_each(null) + callbackEach(null) }) }) }, function (err) { if (err) return callback(err) - callback(null, remote_videos) + callback(null, remoteVideos) }) } -function createThumbnailFromBase64 (thumbnail_name, data, callback) { - fs.writeFile(thumbnailsDir + thumbnail_name, data, { encoding: 'base64' }, callback) +function createThumbnailFromBase64 (thumbnailName, data, callback) { + fs.writeFile(thumbnailsDir + thumbnailName, data, { encoding: 'base64' }, callback) }