'use strict'
-var async = require('async')
-var config = require('config')
-// TODO
-var path = require('path')
-var webtorrent = require('../lib/webtorrent')
+const async = require('async')
+const config = require('config')
+const ffmpeg = require('fluent-ffmpeg')
+const pathUtils = require('path')
+const webtorrent = require('../lib/webtorrent')
-var logger = require('../helpers/logger')
-var Videos = require('../models/videos')
+const logger = require('../helpers/logger')
+const Videos = require('../models/videos')
-var uploadDir = path.join(__dirname, '..', '..', config.get('storage.uploads'))
+const uploadDir = pathUtils.join(__dirname, '..', '..', config.get('storage.uploads'))
-var videos = {
+const videos = {
+ getVideoDuration: getVideoDuration,
+ getVideoState: getVideoState,
seed: seed,
seedAllExisting: seedAllExisting
}
+function getVideoDuration (video_path, callback) {
+ ffmpeg.ffprobe(video_path, function (err, metadata) {
+ if (err) return callback(err)
+
+ return callback(null, Math.floor(metadata.format.duration))
+ })
+}
+
+function getVideoState (video) {
+ const exist = (video !== null)
+ let owned = false
+ if (exist === true) {
+ owned = (video.namePath !== null)
+ }
+
+ return { exist: exist, owned: owned }
+}
+
function seed (path, callback) {
logger.info('Seeding %s...', path)