-;(function () {
- 'use strict'
+'use strict'
- function webtorrent (args) {
- var WebTorrent = require('webtorrent')
- var ipc = require('node-ipc')
+function webtorrent (args) {
+ var WebTorrent = require('webtorrent')
+ var ipc = require('node-ipc')
- if (args.length !== 3) {
- console.log('Wrong arguments number: ' + args.length + '/3')
- process.exit(-1)
- }
-
- var host = args[1]
- var port = args[2]
- var nodeKey = 'webtorrentnode' + port
- var processKey = 'webtorrentprocess' + port
+ if (args.length !== 3) {
+ console.log('Wrong arguments number: ' + args.length + '/3')
+ process.exit(-1)
+ }
- ipc.config.silent = true
- ipc.config.id = processKey
+ var host = args[1]
+ var port = args[2]
+ var nodeKey = 'webtorrentnode' + port
+ var processKey = 'webtorrentprocess' + port
- if (host === 'client' && port === '1') global.WEBTORRENT_ANNOUNCE = []
- else global.WEBTORRENT_ANNOUNCE = 'ws://' + host + ':' + port + '/tracker/socket'
- var wt = new WebTorrent({ dht: false })
+ ipc.config.silent = true
+ ipc.config.id = processKey
- function seed (data) {
- var args = data.args
- var path = args.path
- var _id = data._id
+ if (host === 'client' && port === '1') global.WEBTORRENT_ANNOUNCE = []
+ else global.WEBTORRENT_ANNOUNCE = 'ws://' + host + ':' + port + '/tracker/socket'
+ var wt = new WebTorrent({ dht: false })
- wt.seed(path, { announceList: '' }, function (torrent) {
- var to_send = {
- magnetUri: torrent.magnetURI
- }
+ function seed (data) {
+ var args = data.args
+ var path = args.path
+ var _id = data._id
- ipc.of[nodeKey].emit(nodeKey + '.seedDone.' + _id, to_send)
- })
- }
+ wt.seed(path, { announceList: '' }, function (torrent) {
+ var to_send = {
+ magnetUri: torrent.magnetURI
+ }
- function add (data) {
- var args = data.args
- var magnetUri = args.magnetUri
- var _id = data._id
+ ipc.of[nodeKey].emit(nodeKey + '.seedDone.' + _id, to_send)
+ })
+ }
- wt.add(magnetUri, function (torrent) {
- var to_send = {
- files: []
- }
+ function add (data) {
+ var args = data.args
+ var magnetUri = args.magnetUri
+ var _id = data._id
- torrent.files.forEach(function (file) {
- to_send.files.push({ path: file.path })
- })
+ wt.add(magnetUri, function (torrent) {
+ var to_send = {
+ files: []
+ }
- ipc.of[nodeKey].emit(nodeKey + '.addDone.' + _id, to_send)
+ torrent.files.forEach(function (file) {
+ to_send.files.push({ path: file.path })
})
- }
- function remove (data) {
- var args = data.args
- var magnetUri = args.magnetUri
- var _id = data._id
+ ipc.of[nodeKey].emit(nodeKey + '.addDone.' + _id, to_send)
+ })
+ }
- try {
- wt.remove(magnetUri, callback)
- } catch (err) {
- console.log('Cannot remove the torrent from WebTorrent.')
- return callback(null)
- }
+ function remove (data) {
+ var args = data.args
+ var magnetUri = args.magnetUri
+ var _id = data._id
- function callback () {
- var to_send = {}
- ipc.of[nodeKey].emit(nodeKey + '.removeDone.' + _id, to_send)
- }
+ try {
+ wt.remove(magnetUri, callback)
+ } catch (err) {
+ console.log('Cannot remove the torrent from WebTorrent.')
+ return callback(null)
+ }
+
+ function callback () {
+ var to_send = {}
+ ipc.of[nodeKey].emit(nodeKey + '.removeDone.' + _id, to_send)
}
+ }
- console.log('Configuration: ' + host + ':' + port)
- console.log('Connecting to IPC...')
+ console.log('Configuration: ' + host + ':' + port)
+ console.log('Connecting to IPC...')
- ipc.connectTo(nodeKey, function () {
- ipc.of[nodeKey].on(processKey + '.seed', seed)
- ipc.of[nodeKey].on(processKey + '.add', add)
- ipc.of[nodeKey].on(processKey + '.remove', remove)
+ ipc.connectTo(nodeKey, function () {
+ ipc.of[nodeKey].on(processKey + '.seed', seed)
+ ipc.of[nodeKey].on(processKey + '.add', add)
+ ipc.of[nodeKey].on(processKey + '.remove', remove)
- ipc.of[nodeKey].emit(processKey + '.ready')
- console.log('Ready.')
- })
+ ipc.of[nodeKey].emit(processKey + '.ready')
+ console.log('Ready.')
+ })
- process.on('uncaughtException', function (e) {
- ipc.of[nodeKey].emit(processKey + '.exception', { exception: e })
- })
- }
+ process.on('uncaughtException', function (e) {
+ ipc.of[nodeKey].emit(processKey + '.exception', { exception: e })
+ })
+}
- // ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
- module.exports = webtorrent
-})()
+module.exports = webtorrent