51 lines
1.3 KiB
JavaScript
51 lines
1.3 KiB
JavaScript
;(function () {
|
|
'use strict'
|
|
|
|
var async = require('async')
|
|
var config = require('config')
|
|
var webtorrent = require('../lib/webTorrentNode')
|
|
|
|
var logger = require('../helpers/logger')
|
|
var Videos = require('../models/videos')
|
|
|
|
var uploadDir = __dirname + '/../' + config.get('storage.uploads')
|
|
|
|
var videos = {
|
|
seed: seed,
|
|
seedAllExisting: seedAllExisting
|
|
}
|
|
|
|
function seed (path, callback) {
|
|
logger.info('Seeding %s...', path)
|
|
|
|
webtorrent.seed(path, function (torrent) {
|
|
logger.info('%s seeded (%s).', path, torrent.magnetURI)
|
|
|
|
return callback(null, torrent)
|
|
})
|
|
}
|
|
|
|
function seedAllExisting (callback) {
|
|
Videos.listOwned(function (err, videos_list) {
|
|
if (err) {
|
|
logger.error('Cannot get list of the videos to seed.', { error: err })
|
|
return callback(err)
|
|
}
|
|
|
|
async.each(videos_list, function (video, each_callback) {
|
|
seed(uploadDir + video.namePath, function (err) {
|
|
if (err) {
|
|
logger.error('Cannot seed this video.', { error: err })
|
|
return callback(err)
|
|
}
|
|
|
|
each_callback(null)
|
|
})
|
|
}, callback)
|
|
})
|
|
}
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
module.exports = videos
|
|
})()
|