X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Fwebtorrent.js;h=fe2ee357f35349347a1d6ff74e925b578a919865;hb=69b0a27cbbd69ca019eb7db5f917b1dd06dc82cd;hp=cb641feada355df5958aaa33b7bd59f89f8b91d6;hpb=b9a3e09ad5a7673f64556d1dba122ed4c4fac980;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/webtorrent.js b/server/lib/webtorrent.js index cb641fead..fe2ee357f 100644 --- a/server/lib/webtorrent.js +++ b/server/lib/webtorrent.js @@ -1,20 +1,21 @@ 'use strict' -var config = require('config') -var ipc = require('node-ipc') -var pathUtils = require('path') -var spawn = require('electron-spawn') - -var logger = require('../helpers/logger') - -var host = config.get('webserver.host') -var port = config.get('webserver.port') -var nodeKey = 'webtorrentnode' + port -var processKey = 'webtorrentprocess' + port +const config = require('config') +const ipc = require('node-ipc') +const pathUtils = require('path') +const spawn = require('electron-spawn') + +const logger = require('../helpers/logger') + +const electronDebug = config.get('electron.debug') +let host = config.get('webserver.host') +let port = config.get('webserver.port') +let nodeKey = 'webtorrentnode' + port +let processKey = 'webtorrentprocess' + port ipc.config.silent = true ipc.config.id = nodeKey -var webtorrent = { +const webtorrent = { add: add, app: null, // Pid of the app create: create, @@ -42,39 +43,42 @@ function create (options, callback) { if (!webtorrent.silent) logger.info('IPC server ready.') // Run a timeout of 30s after which we exit the process - var timeout_webtorrent_process = setTimeout(function () { + const timeoutWebtorrentProcess = setTimeout(function () { throw new Error('Timeout : cannot run the webtorrent process. Please ensure you have electron-prebuilt npm package installed with xvfb-run.') }, 30000) ipc.server.on(processKey + '.ready', function () { if (!webtorrent.silent) logger.info('Webtorrent process ready.') - clearTimeout(timeout_webtorrent_process) + clearTimeout(timeoutWebtorrentProcess) callback() }) ipc.server.on(processKey + '.exception', function (data) { - throw new Error('Received exception error from webtorrent process.' + data.exception) + throw new Error('Received exception error from webtorrent process : ' + data.exception) }) - var webtorrent_process = spawn(pathUtils.join(__dirname, 'webtorrentProcess.js'), host, port, { detached: true }) - webtorrent_process.stderr.on('data', function (data) { - // logger.debug('Webtorrent process stderr: ', data.toString()) - }) + const webtorrentProcess = spawn(pathUtils.join(__dirname, 'webtorrentProcess.js'), host, port, { detached: true }) - webtorrent_process.stdout.on('data', function (data) { - // logger.debug('Webtorrent process:', data.toString()) - }) + if (electronDebug === true) { + webtorrentProcess.stderr.on('data', function (data) { + logger.debug('Webtorrent process stderr: ', data.toString()) + }) + + webtorrentProcess.stdout.on('data', function (data) { + logger.debug('Webtorrent process:', data.toString()) + }) + } - webtorrent.app = webtorrent_process + webtorrent.app = webtorrentProcess }) ipc.server.start() } function seed (path, callback) { - var extension = pathUtils.extname(path) - var basename = pathUtils.basename(path, extension) - var data = { + const extension = pathUtils.extname(path) + const basename = pathUtils.basename(path, extension) + const data = { _id: basename, args: { path: path @@ -84,16 +88,16 @@ function seed (path, callback) { if (!webtorrent.silent) logger.debug('Node wants to seed %s.', data._id) // Finish signal - var event_key = nodeKey + '.seedDone.' + data._id - ipc.server.on(event_key, function listener (received) { + const eventKey = nodeKey + '.seedDone.' + data._id + ipc.server.on(eventKey, function listener (received) { if (!webtorrent.silent) logger.debug('Process seeded torrent %s.', received.magnetUri) // This is a fake object, we just use the magnetUri in this project - var torrent = { + const torrent = { magnetURI: received.magnetUri } - ipc.server.off(event_key) + ipc.server.off(eventKey) callback(torrent) }) @@ -101,7 +105,7 @@ function seed (path, callback) { } function add (magnetUri, callback) { - var data = { + const data = { _id: magnetUri, args: { magnetUri: magnetUri @@ -111,16 +115,16 @@ function add (magnetUri, callback) { if (!webtorrent.silent) logger.debug('Node wants to add ' + data._id) // Finish signal - var event_key = nodeKey + '.addDone.' + data._id - ipc.server.on(event_key, function (received) { + const eventKey = nodeKey + '.addDone.' + data._id + ipc.server.on(eventKey, function (received) { if (!webtorrent.silent) logger.debug('Process added torrent.') // This is a fake object, we just use the magnetUri in this project - var torrent = { + const torrent = { files: received.files } - ipc.server.off(event_key) + ipc.server.off(eventKey) callback(torrent) }) @@ -128,7 +132,7 @@ function add (magnetUri, callback) { } function remove (magnetUri, callback) { - var data = { + const data = { _id: magnetUri, args: { magnetUri: magnetUri @@ -138,14 +142,14 @@ function remove (magnetUri, callback) { if (!webtorrent.silent) logger.debug('Node wants to stop seeding %s.', data._id) // Finish signal - var event_key = nodeKey + '.removeDone.' + data._id - ipc.server.on(event_key, function (received) { + const eventKey = nodeKey + '.removeDone.' + data._id + ipc.server.on(eventKey, function (received) { if (!webtorrent.silent) logger.debug('Process removed torrent %s.', data._id) - var err = null + let err = null if (received.err) err = received.err - ipc.server.off(event_key) + ipc.server.off(eventKey) callback(err) })