3 var async = require('async')
4 var config = require('config')
6 var path = require('path')
7 var webtorrent = require('../lib/webtorrent')
9 var logger = require('../helpers/logger')
10 var Videos = require('../models/videos')
12 var uploadDir = path.join(__dirname, '..', '..', config.get('storage.uploads'))
15 getVideoState: getVideoState,
17 seedAllExisting: seedAllExisting
20 function getVideoState (video, callback) {
21 var exist = (video !== null)
24 owned = (video.namePath !== null)
27 return callback({ exist: exist, owned: owned })
30 function seed (path, callback) {
31 logger.info('Seeding %s...', path)
33 webtorrent.seed(path, function (torrent) {
34 logger.info('%s seeded (%s).', path, torrent.magnetURI)
36 return callback(null, torrent)
40 function seedAllExisting (callback) {
41 Videos.listOwned(function (err, videos_list) {
43 logger.error('Cannot get list of the videos to seed.')
47 async.each(videos_list, function (video, each_callback) {
48 seed(uploadDir + video.namePath, function (err) {
50 logger.error('Cannot seed this video.')
60 // ---------------------------------------------------------------------------
62 module.exports = videos