Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/webtorrent/webtorrent.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorFeross Aboukhadijeh <feross@feross.org>2014-10-22 10:20:28 +0400
committerFeross Aboukhadijeh <feross@feross.org>2014-10-22 10:20:28 +0400
commit4c1bbb6b1d91757071f253ad0ece6186c4bc7333 (patch)
tree58b0ef1ab152776a56373188b216eb6f925975e0 /bin
parentf5e70ef4ef248149298c6498c48cb0dfad34cd9b (diff)
add torrent.createServer() method
Diffstat (limited to 'bin')
-rwxr-xr-xbin/cmd.js35
1 files changed, 20 insertions, 15 deletions
diff --git a/bin/cmd.js b/bin/cmd.js
index 20c9f96..18aa89a 100755
--- a/bin/cmd.js
+++ b/bin/cmd.js
@@ -9,6 +9,7 @@ var minimist = require('minimist')
var moment = require('moment')
var networkAddress = require('network-address')
var path = require('path')
+var portfinder = require('portfinder')
var prettysize = require('prettysize')
var WebTorrent = require('../')
var xbmc = require('nodebmc')
@@ -142,8 +143,7 @@ function getRuntime () {
}
var client = new WebTorrent({
- blocklist: argv.blocklist,
- port: !argv.list && argv.port
+ blocklist: argv.blocklist
})
.on('error', errorAndExit)
@@ -176,14 +176,21 @@ torrent.on('infoHash', function () {
}
})
-torrent.on('ready', function () {
- if (client.listening || argv.list) onTorrent(torrent)
- else client.on('listening', onTorrent)
-})
+var filename, swarm, wires, server
-var filename, swarm, wires
+if (argv.list) torrent.once('ready', onReady)
+else {
+ server = torrent.createServer()
+ portfinder.getPort(function (err, port) {
+ if (err) return errorAndExit('Unable to find free port')
+ server.listen(port, function () {
+ if (torrent.ready) onReady()
+ else torrent.once('ready', onReady)
+ })
+ })
+}
-function onTorrent (torrent) {
+function onReady () {
client.torrent = torrent
filename = torrent.name
@@ -196,7 +203,6 @@ function onTorrent (torrent) {
: torrent.files.indexOf(torrent.files.reduce(function (a, b) {
return a.length > b.length ? a : b
}))
- client.index = index
torrent.files[index].select()
if (argv.list) {
@@ -231,16 +237,15 @@ function onTorrent (torrent) {
}
function maybeExit () {
- if (!client.server) {
+ if (!server) {
process.exit(0)
}
}
})
- var href
- if (client.server) {
- href = 'http://' + networkAddress() + ':' + client.server.address().port + '/'
- }
+
+ if (server)
+ var href = 'http://' + networkAddress() + ':' + server.address().port + '/' + index
var cmd, player
var playerName = argv.airplay ? 'Airplay'
@@ -349,7 +354,7 @@ function onTorrent (torrent) {
if (playerName)
clivas.line('{green:Streaming to} {bold:' + playerName + '}')
- if (client.server)
+ if (server)
clivas.line('{green:server running at} {bold:' + href + '}')
clivas.line('')