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
diff options
context:
space:
mode:
authorFeross Aboukhadijeh <feross@feross.org>2014-08-17 14:25:07 +0400
committerFeross Aboukhadijeh <feross@feross.org>2014-08-17 14:25:07 +0400
commit9a029d1466b2e070dc002a8de0317d8b1ce32a9e (patch)
treeb796ceabe320812e9a76789969ee85e3fb7df499 /index.js
parent94407dea2450360608585ac7aa9aa7552fbd35b9 (diff)
support --blocklist option
cc @fisch0920
Diffstat (limited to 'index.js')
-rw-r--r--index.js18
1 files changed, 13 insertions, 5 deletions
diff --git a/index.js b/index.js
index a73500b..52b760c 100644
--- a/index.js
+++ b/index.js
@@ -11,7 +11,6 @@ var FSStorage = require('./lib/fs-storage')
var http = require('http')
var inherits = require('inherits')
var mime = require('mime')
-var once = require('once')
var parallel = require('run-parallel')
var pump = require('pump')
var rangeParser = require('range-parser')
@@ -23,14 +22,12 @@ function WebTorrent (opts) {
var self = this
opts = opts || {}
debug('new webtorrent')
+ if (opts.blocklist) opts.blocklist = parseBlocklist(opts.blocklist)
Client.call(self, opts)
-
self.listening = false
- if (opts.list) {
- return
- }
+ if (opts.list) return
if (opts.port !== false) {
// start http server
@@ -205,5 +202,16 @@ WebTorrent.prototype._onRequest = function (req, res) {
if (req.method === 'HEAD') res.end()
pump(file.createReadStream(range), res)
}
+}
+// TODO: support gzipped files
+var blocklistRe = /^\s*[^#].*?\s*:\s*([a-f0-9.:]+?)\s*-\s*([a-f0-9.:]+?)\s*$/
+function parseBlocklist (filename) {
+ var blocklistData = fs.readFileSync(filename, 'utf8')
+ var blocklist = []
+ blocklistData.split('\n').forEach(function (line) {
+ var match = blocklistRe.exec(line)
+ if (match) blocklist.push({ start: match[1], end: match[2] })
+ })
+ return blocklist
}