Prepare folders structure for angular app
[oweals/peertube.git] / server / lib / videos.js
1 'use strict'
2
3 var async = require('async')
4 var config = require('config')
5 var path = require('path')
6 var webtorrent = require('../lib/webtorrent')
7
8 var logger = require('../helpers/logger')
9 var Videos = require('../models/videos')
10
11 var uploadDir = path.join(__dirname, '..', config.get('storage.uploads'))
12
13 var videos = {
14   seed: seed,
15   seedAllExisting: seedAllExisting
16 }
17
18 function seed (path, callback) {
19   logger.info('Seeding %s...', path)
20
21   webtorrent.seed(path, function (torrent) {
22     logger.info('%s seeded (%s).', path, torrent.magnetURI)
23
24     return callback(null, torrent)
25   })
26 }
27
28 function seedAllExisting (callback) {
29   Videos.listOwned(function (err, videos_list) {
30     if (err) {
31       logger.error('Cannot get list of the videos to seed.')
32       return callback(err)
33     }
34
35     async.each(videos_list, function (video, each_callback) {
36       seed(uploadDir + video.namePath, function (err) {
37         if (err) {
38           logger.error('Cannot seed this video.')
39           return callback(err)
40         }
41
42         each_callback(null)
43       })
44     }, callback)
45   })
46 }
47
48 // ---------------------------------------------------------------------------
49
50 module.exports = videos