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