[scraper] uses bittorrent-tracker for force update seeders

This commit is contained in:
TheBeastLT
2020-04-25 10:28:22 +02:00
parent dc35b4e982
commit 43c2e737f8
4 changed files with 255 additions and 227 deletions

455
package-lock.json generated
View File

@@ -153,49 +153,55 @@
} }
} }
}, },
"bittorrent-peerid": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/bittorrent-peerid/-/bittorrent-peerid-1.3.2.tgz",
"integrity": "sha512-3xPhNfklf4xzxFVw9Y7W5dnGNhubVF0r8BK3imIsB6E3aDA4d6WhsceK1Yusos0TiiB9QZrdCsVXVqs26sFMxw=="
},
"bittorrent-tracker": { "bittorrent-tracker": {
"version": "7.7.0", "version": "9.14.5",
"resolved": "https://registry.npmjs.org/bittorrent-tracker/-/bittorrent-tracker-7.7.0.tgz", "resolved": "https://registry.npmjs.org/bittorrent-tracker/-/bittorrent-tracker-9.14.5.tgz",
"integrity": "sha1-/9LqvBQdNu1cGBfffpkvkf1/xlw=", "integrity": "sha512-Y1ng5r2qGCgDldjd9eYL8Mv1DjCo6eljqC+T6IMcwmYx0h20KNPKTxJkyNT5gaeJkAhM+p+jmhlV7/ty535Txg==",
"requires": { "requires": {
"bencode": "^0.8.0", "bencode": "^2.0.0",
"bn.js": "^4.4.0", "bittorrent-peerid": "^1.0.2",
"bn.js": "^5.0.0",
"bufferutil": "^4.0.0",
"chrome-dgram": "^3.0.2",
"compact2string": "^1.2.0", "compact2string": "^1.2.0",
"debug": "^2.0.0", "debug": "^4.0.1",
"hat": "0.0.3",
"inherits": "^2.0.1",
"ip": "^1.0.1", "ip": "^1.0.1",
"lru": "^3.0.0",
"minimist": "^1.1.1", "minimist": "^1.1.1",
"once": "^1.3.0", "once": "^1.3.0",
"random-iterate": "^1.0.1", "random-iterate": "^1.0.1",
"randombytes": "^2.0.3",
"run-parallel": "^1.1.2", "run-parallel": "^1.1.2",
"run-series": "^1.0.2", "run-series": "^1.0.2",
"simple-get": "^2.0.0", "simple-get": "^3.0.0",
"simple-peer": "^6.0.0", "simple-peer": "^9.0.0",
"simple-websocket": "^4.0.0", "simple-websocket": "^8.0.0",
"string2compact": "^1.1.1", "string2compact": "^1.1.1",
"uniq": "^1.0.1", "unordered-array-remove": "^1.0.2",
"ws": "^1.0.0", "utf-8-validate": "^5.0.1",
"xtend": "^4.0.0" "ws": "^7.0.0"
}, },
"dependencies": { "dependencies": {
"bencode": { "bencode": {
"version": "0.8.0", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/bencode/-/bencode-0.8.0.tgz", "resolved": "https://registry.npmjs.org/bencode/-/bencode-2.0.1.tgz",
"integrity": "sha1-MUNEjoKw+tx0VjPswqX4+oeTLxk=" "integrity": "sha512-2uhEl8FdjSBUyb69qDTgOEeeqDTa+n3yMQzLW0cOzNf1Ow5bwcg3idf+qsWisIKRH8Bk8oC7UXL8irRcPA8ZEQ==",
},
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": { "requires": {
"ms": "2.0.0" "safe-buffer": "^5.1.1"
} }
}, },
"ms": { "lru": {
"version": "2.0.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "resolved": "https://registry.npmjs.org/lru/-/lru-3.1.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" "integrity": "sha1-6n+4VG2DczOWoTCR12z+tMBoN9U=",
"requires": {
"inherits": "^2.0.1"
}
} }
} }
}, },
@@ -210,9 +216,9 @@
"integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==" "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw=="
}, },
"bn.js": { "bn.js": {
"version": "4.11.8", "version": "5.1.1",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.1.tgz",
"integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" "integrity": "sha512-IUTD/REb78Z2eodka1QZyyEk66pciRcP6Sroka0aI3tG/iwIdYLrBD62RsubR7vqdt3WyX8p4jxeatzmRSphtA=="
}, },
"bncode": { "bncode": {
"version": "0.5.3", "version": "0.5.3",
@@ -322,10 +328,14 @@
"resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz",
"integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==" "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw=="
}, },
"byline": { "bufferutil": {
"version": "3.1.2", "version": "4.0.1",
"resolved": "https://registry.npmjs.org/byline/-/byline-3.1.2.tgz", "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.1.tgz",
"integrity": "sha1-hqY5TLGz8PwzT7F2sI5hrwxvHFk=" "integrity": "sha512-xowrxvpxojqkagPcWRQVXZl0YXhRhAtBEIq3VoER1NH5Mw1n1o0ojdspp+GS2J//2gCVyrzQDApQ4unGF+QOoA==",
"optional": true,
"requires": {
"node-gyp-build": "~3.7.0"
}
}, },
"bytes": { "bytes": {
"version": "3.0.0", "version": "3.0.0",
@@ -669,11 +679,6 @@
"underscore-keypath": "~0.0.22" "underscore-keypath": "~0.0.22"
} }
}, },
"dotenv": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz",
"integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw=="
},
"dottie": { "dottie": {
"version": "2.0.2", "version": "2.0.2",
"resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.2.tgz", "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.2.tgz",
@@ -1539,6 +1544,12 @@
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.3.0.tgz", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.3.0.tgz",
"integrity": "sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA==" "integrity": "sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA=="
}, },
"node-gyp-build": {
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-3.7.0.tgz",
"integrity": "sha512-L/Eg02Epx6Si2NXmedx+Okg+4UHqmaf3TNcxd50SF9NQGcJaON3AtU++kax69XV7YWz4tUspqZSAsVofhFKG2w==",
"optional": true
},
"node-gzip": { "node-gzip": {
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/node-gzip/-/node-gzip-1.1.2.tgz", "resolved": "https://registry.npmjs.org/node-gzip/-/node-gzip-1.1.2.tgz",
@@ -1676,8 +1687,8 @@
} }
}, },
"parse-torrent-title": { "parse-torrent-title": {
"version": "git://github.com/TheBeastLT/parse-torrent-title.git#9e751ef6e0b4adb31d306d618c92f9feb84963bb", "version": "git://github.com/TheBeastLT/parse-torrent-title.git#a151662b960b6c826b34245663db12ee4ccc75e6",
"from": "git://github.com/TheBeastLT/parse-torrent-title.git#9e751ef6e0b4adb31d306d618c92f9feb84963bb", "from": "git://github.com/TheBeastLT/parse-torrent-title.git#a151662b960b6c826b34245663db12ee4ccc75e6",
"requires": { "requires": {
"moment": "^2.24.0" "moment": "^2.24.0"
} }
@@ -1705,52 +1716,6 @@
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
}, },
"peer-search": {
"version": "0.6.11",
"resolved": "https://registry.npmjs.org/peer-search/-/peer-search-0.6.11.tgz",
"integrity": "sha1-Nfqs2lj5+YeDNOmj2A06PRzz7ag=",
"requires": {
"async": "0.9.x",
"bncode": "~0.2.3",
"byline": "3.1.2",
"compact2string": "~1.0.0",
"hat": "0.0.3",
"needle": "github:Ivshti/needle"
},
"dependencies": {
"bncode": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/bncode/-/bncode-0.2.3.tgz",
"integrity": "sha1-N/hR3I5HGIqD+8D2+kd1ysyaMpY="
},
"compact2string": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/compact2string/-/compact2string-1.0.0.tgz",
"integrity": "sha1-S8jc7XudYKX0NFSWp6vO8hpgzvU="
},
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
}
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"needle": {
"version": "github:Ivshti/needle#16cceb74e24babd9c474071be1a15a09beac300d",
"from": "github:Ivshti/needle",
"requires": {
"debug": "^2.1.2",
"iconv-lite": "^0.4.4"
}
}
}
},
"peer-wire-protocol": { "peer-wire-protocol": {
"version": "0.7.1", "version": "0.7.1",
"resolved": "https://registry.npmjs.org/peer-wire-protocol/-/peer-wire-protocol-0.7.1.tgz", "resolved": "https://registry.npmjs.org/peer-wire-protocol/-/peer-wire-protocol-0.7.1.tgz",
@@ -1944,6 +1909,11 @@
"resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
"integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA="
}, },
"queue-microtask": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.1.2.tgz",
"integrity": "sha512-F9wwNePtXrzZenAB3ax0Y8TSKGvuB7Qw16J30hspEUTbfUM+H827XyN3rlpwhVmtm5wuZtbKIHjOnwDn7MUxWQ=="
},
"random-access-file": { "random-access-file": {
"version": "2.1.4", "version": "2.1.4",
"resolved": "https://registry.npmjs.org/random-access-file/-/random-access-file-2.1.4.tgz", "resolved": "https://registry.npmjs.org/random-access-file/-/random-access-file-2.1.4.tgz",
@@ -2369,65 +2339,50 @@
"integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY="
}, },
"simple-get": { "simple-get": {
"version": "2.8.1", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz",
"integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==",
"requires": { "requires": {
"decompress-response": "^3.3.0", "decompress-response": "^4.2.0",
"once": "^1.3.1", "once": "^1.3.1",
"simple-concat": "^1.0.0" "simple-concat": "^1.0.0"
},
"dependencies": {
"decompress-response": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz",
"integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==",
"requires": {
"mimic-response": "^2.0.0"
}
},
"mimic-response": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz",
"integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA=="
}
} }
}, },
"simple-peer": { "simple-peer": {
"version": "6.4.4", "version": "9.7.0",
"resolved": "https://registry.npmjs.org/simple-peer/-/simple-peer-6.4.4.tgz", "resolved": "https://registry.npmjs.org/simple-peer/-/simple-peer-9.7.0.tgz",
"integrity": "sha1-TkIfSFrHsTsIB3pEdpNNUsW6O7M=", "integrity": "sha512-lZL/H/Znx7kai1kTrbxntVfbstGTnPF+w+hvnq2euBXoBg8m32mgEOpPmH9hS7ZOx0CMXcpgth/nNjZKp7aeow==",
"requires": { "requires": {
"debug": "^2.1.0", "debug": "^4.0.1",
"get-browser-rtc": "^1.0.0", "get-browser-rtc": "^1.0.0",
"inherits": "^2.0.1", "queue-microtask": "^1.1.0",
"randombytes": "^2.0.3", "randombytes": "^2.0.3",
"readable-stream": "^2.0.5" "readable-stream": "^3.4.0"
}, },
"dependencies": { "dependencies": {
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
}
},
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"readable-stream": { "readable-stream": {
"version": "2.3.7", "version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
"integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
"requires": { "requires": {
"core-util-is": "~1.0.0", "inherits": "^2.0.3",
"inherits": "~2.0.3", "string_decoder": "^1.1.1",
"isarray": "~1.0.0", "util-deprecate": "^1.0.1"
"process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
}
},
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"requires": {
"safe-buffer": "~5.1.0"
} }
} }
} }
@@ -2441,74 +2396,15 @@
} }
}, },
"simple-websocket": { "simple-websocket": {
"version": "4.3.1", "version": "8.1.1",
"resolved": "https://registry.npmjs.org/simple-websocket/-/simple-websocket-4.3.1.tgz", "resolved": "https://registry.npmjs.org/simple-websocket/-/simple-websocket-8.1.1.tgz",
"integrity": "sha1-XT1XUbs5rrovcQ2O7Hh2jfgh840=", "integrity": "sha512-06I3cwOD5Q3LdVd6qfyDGp1U9eau9x9qniSL3b/aDgM5bsJX4nZfCuii2UCFcTfrDq0jCXF4NQ/38qeC8CJZTg==",
"requires": { "requires": {
"debug": "^2.1.3", "debug": "^4.1.1",
"inherits": "^2.0.1", "queue-microtask": "^1.1.0",
"randombytes": "^2.0.3", "randombytes": "^2.0.3",
"readable-stream": "^2.0.5", "readable-stream": "^3.1.1",
"ws": "^2.0.0", "ws": "^7.0.0"
"xtend": "^4.0.1"
},
"dependencies": {
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
}
},
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"readable-stream": {
"version": "2.3.7",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
"integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
"process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
}
},
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"requires": {
"safe-buffer": "~5.1.0"
}
},
"ws": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/ws/-/ws-2.3.1.tgz",
"integrity": "sha1-a5Sz5EfLajY/eF6vlK9jWejoHIA=",
"requires": {
"safe-buffer": "~5.0.1",
"ultron": "~1.1.0"
},
"dependencies": {
"safe-buffer": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz",
"integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c="
}
}
}
} }
}, },
"sorted-array-functions": { "sorted-array-functions": {
@@ -2644,6 +2540,42 @@
"xtend": "^4.0.0" "xtend": "^4.0.0"
}, },
"dependencies": { "dependencies": {
"bencode": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/bencode/-/bencode-0.8.0.tgz",
"integrity": "sha1-MUNEjoKw+tx0VjPswqX4+oeTLxk="
},
"bittorrent-tracker": {
"version": "7.7.0",
"resolved": "https://registry.npmjs.org/bittorrent-tracker/-/bittorrent-tracker-7.7.0.tgz",
"integrity": "sha1-/9LqvBQdNu1cGBfffpkvkf1/xlw=",
"requires": {
"bencode": "^0.8.0",
"bn.js": "^4.4.0",
"compact2string": "^1.2.0",
"debug": "^2.0.0",
"hat": "0.0.3",
"inherits": "^2.0.1",
"ip": "^1.0.1",
"minimist": "^1.1.1",
"once": "^1.3.0",
"random-iterate": "^1.0.1",
"run-parallel": "^1.1.2",
"run-series": "^1.0.2",
"simple-get": "^2.0.0",
"simple-peer": "^6.0.0",
"simple-websocket": "^4.0.0",
"string2compact": "^1.1.1",
"uniq": "^1.0.1",
"ws": "^1.0.0",
"xtend": "^4.0.0"
}
},
"bn.js": {
"version": "4.11.8",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
"integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA=="
},
"debug": { "debug": {
"version": "2.6.9", "version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@@ -2652,10 +2584,104 @@
"ms": "2.0.0" "ms": "2.0.0"
} }
}, },
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
"ms": { "ms": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"readable-stream": {
"version": "2.3.7",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
"integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
"process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
}
},
"simple-get": {
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz",
"integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==",
"requires": {
"decompress-response": "^3.3.0",
"once": "^1.3.1",
"simple-concat": "^1.0.0"
}
},
"simple-peer": {
"version": "6.4.4",
"resolved": "https://registry.npmjs.org/simple-peer/-/simple-peer-6.4.4.tgz",
"integrity": "sha1-TkIfSFrHsTsIB3pEdpNNUsW6O7M=",
"requires": {
"debug": "^2.1.0",
"get-browser-rtc": "^1.0.0",
"inherits": "^2.0.1",
"randombytes": "^2.0.3",
"readable-stream": "^2.0.5"
}
},
"simple-websocket": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/simple-websocket/-/simple-websocket-4.3.1.tgz",
"integrity": "sha1-XT1XUbs5rrovcQ2O7Hh2jfgh840=",
"requires": {
"debug": "^2.1.3",
"inherits": "^2.0.1",
"randombytes": "^2.0.3",
"readable-stream": "^2.0.5",
"ws": "^2.0.0",
"xtend": "^4.0.1"
},
"dependencies": {
"safe-buffer": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz",
"integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c="
},
"ws": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/ws/-/ws-2.3.1.tgz",
"integrity": "sha1-a5Sz5EfLajY/eF6vlK9jWejoHIA=",
"requires": {
"safe-buffer": "~5.0.1",
"ultron": "~1.1.0"
}
}
}
},
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"requires": {
"safe-buffer": "~5.1.0"
}
},
"ws": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz",
"integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==",
"requires": {
"options": ">=0.0.5",
"ultron": "1.0.x"
},
"dependencies": {
"ultron": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz",
"integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po="
}
}
} }
} }
}, },
@@ -2777,6 +2803,11 @@
"resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
"integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8="
}, },
"unordered-array-remove": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz",
"integrity": "sha1-xUbo+I4xegzyZEyX7LV9umbSUO8="
},
"unpipe": { "unpipe": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
@@ -2807,6 +2838,15 @@
"lodash.clonedeep": "^4.5.0" "lodash.clonedeep": "^4.5.0"
} }
}, },
"utf-8-validate": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.2.tgz",
"integrity": "sha512-SwV++i2gTD5qh2XqaPzBnNX88N6HdyhQrNNRykvcS0QKvItV9u3vPEJr+X5Hhfb1JC0r0e1alL0iB09rY8+nmw==",
"optional": true,
"requires": {
"node-gyp-build": "~3.7.0"
}
},
"util-deprecate": { "util-deprecate": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@@ -2877,20 +2917,9 @@
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
}, },
"ws": { "ws": {
"version": "1.1.5", "version": "7.2.3",
"resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz",
"integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", "integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ=="
"requires": {
"options": ">=0.0.5",
"ultron": "1.0.x"
},
"dependencies": {
"ultron": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz",
"integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po="
}
}
}, },
"xtend": { "xtend": {
"version": "4.0.1", "version": "4.0.1",

View File

@@ -13,6 +13,7 @@
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"async": "0.9.2", "async": "0.9.2",
"bittorrent-tracker": "^9.14.5",
"bottleneck": "^2.16.2", "bottleneck": "^2.16.2",
"cache-manager": "^2.9.0", "cache-manager": "^2.9.0",
"cache-manager-mongodb": "^0.2.1", "cache-manager-mongodb": "^0.2.1",
@@ -30,8 +31,7 @@
"node-schedule": "^1.3.2", "node-schedule": "^1.3.2",
"nodejs-bing": "^0.1.0", "nodejs-bing": "^0.1.0",
"parse-torrent": "^6.1.2", "parse-torrent": "^6.1.2",
"parse-torrent-title": "git://github.com/TheBeastLT/parse-torrent-title.git#9e751ef6e0b4adb31d306d618c92f9feb84963bb", "parse-torrent-title": "git://github.com/TheBeastLT/parse-torrent-title.git#a151662b960b6c826b34245663db12ee4ccc75e6",
"peer-search": "^0.6.x",
"pg": "^7.8.2", "pg": "^7.8.2",
"pg-hstore": "^2.3.2", "pg-hstore": "^2.3.2",
"rarbg-api": "^1.1.3", "rarbg-api": "^1.1.3",

View File

@@ -1,6 +1,7 @@
const torrentStream = require('torrent-stream'); const torrentStream = require('torrent-stream');
const needle = require('needle'); const needle = require('needle');
const parseTorrent = require('parse-torrent'); const parseTorrent = require('parse-torrent');
const BTClient = require('bittorrent-tracker')
const async = require('async'); const async = require('async');
const decode = require('magnet-uri'); const decode = require('magnet-uri');
const isVideo = require('./video'); const isVideo = require('./video');
@@ -15,7 +16,6 @@ module.exports.updateCurrentSeeders = function (torrent) {
if (!torrent.magnetLink && !torrent.infoHash) { if (!torrent.magnetLink && !torrent.infoHash) {
return resolve(0); return resolve(0);
} }
const Tracker = require("peer-search/tracker");
const seeders = {}; const seeders = {};
const magnetTrackers = torrent.magnetLink && decode(torrent.magnetLink).tr; const magnetTrackers = torrent.magnetLink && decode(torrent.magnetLink).tr;
@@ -25,13 +25,12 @@ module.exports.updateCurrentSeeders = function (torrent) {
setTimeout(callback, SEEDS_CHECK_TIMEOUT); setTimeout(callback, SEEDS_CHECK_TIMEOUT);
async.each(trackers, function (tracker, ready) { async.each(trackers, function (tracker, ready) {
const t = new Tracker(tracker, {}, torrent.infoHash); BTClient.scrape({ infoHash: torrent.infoHash, announce: tracker }, (_, results) => {
console.error = () => 0; // do nothing if (results) {
t.run(); seeders[tracker] = [results.complete, results.incomplete];
t.on("info", function (inf) { }
seeders[tracker] = [inf.seeders, inf.leechers];
ready(); ready();
}); })
}, callback); }, callback);
}).then(seeders => { }).then(seeders => {
torrent.seeders = seeders; torrent.seeders = seeders;
@@ -125,7 +124,7 @@ function filterVideos(files) {
function filterSamples(files) { function filterSamples(files) {
const maxSize = Math.max(...files.map(file => file.size)); const maxSize = Math.max(...files.map(file => file.size));
const isSample = file => file.name.match(/sample/i) && maxSize / file.size < 10; const isSample = file => file.name.match(/sample/i) && maxSize / parseInt(file.size) > 10;
return files.filter(file => !isSample(file)); return files.filter(file => !isSample(file));
} }

View File

@@ -33,10 +33,10 @@ async function _updateSeeders(torrent) {
return [] return []
}); });
// if (!updatedTorrents.find(updated => updated.infoHash === torrent.infoHash)) { if (!updatedTorrents.find(updated => updated.infoHash === torrent.infoHash)) {
// await forceSeedersLimiter.schedule(() => updateCurrentSeeders(torrent)) await forceSeedersLimiter.schedule(() => updateCurrentSeeders(torrent))
// .then(updated => updatedTorrents.push(updated)); .then(updated => updatedTorrents.push(updated));
// } }
return Promise.all(updatedTorrents.map(updated => updateLimiter.schedule(() => updateTorrentSeeders(updated)))); return Promise.all(updatedTorrents.map(updated => updateLimiter.schedule(() => updateTorrentSeeders(updated))));
} }