diff options
Diffstat (limited to 'server/lib/videos.js')
-rw-r--r-- | server/lib/videos.js | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/server/lib/videos.js b/server/lib/videos.js new file mode 100644 index 000000000..2d7d9500d --- /dev/null +++ b/server/lib/videos.js | |||
@@ -0,0 +1,50 @@ | |||
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 | ||