Comparing version 1.0.6 to 2.0.0
72
app.js
@@ -5,21 +5,26 @@ /** | ||
const Parser = require('rss-parser'); | ||
const _ = require('lodash'); | ||
const parser = new Parser(); | ||
var request = require('request'); | ||
var jar = request.jar(); | ||
const cheerio = require('cheerio'); | ||
const _ = require('lodash'); | ||
var request = request.defaults({ | ||
jar: jar, | ||
followAllRedirects: true | ||
}); | ||
const Q = require('q'); | ||
exports.searchTorrentz2 = function(searchStr){ | ||
const deferred = Q.defer(); | ||
const option_q = {url: `https://tortorrentz.com/search?q=${searchStr}`}; | ||
request.get(option_q, function (err, resp, html) { | ||
exports.searchTorrentz2 = async function(searchStr){ | ||
const feed = await parser.parseURL(`https://torrentz2.eu/feed?f=${searchStr}`); | ||
const items = feed.items.map(item => { | ||
//content: 'Size: 5109 MB Seeds: 2 Peers: 0 Hash: e22b06e6a75cb1d3d2e74713420a51cc3bb579f1', | ||
const contents = item.content.split(" "); | ||
const size = contents[1]+" "+contents[2]; | ||
const peers = contents[6]; | ||
const seeds = contents[4]; | ||
const hash = item.link.replace("https://torrentz2.eu/","") | ||
const magnet = toMagnet(hash,item.title); | ||
const name = item.title | ||
deferred.resolve(parseHtmlResponse(html)); | ||
return { | ||
magnet,name,size, seeds,peers | ||
} | ||
}); | ||
return deferred.promise; | ||
return items; | ||
}; | ||
@@ -29,34 +34,15 @@ | ||
function getTrackerStr(){ | ||
function toMagnet(hash, name){ | ||
const trackers = [ | ||
'udp://tracker.coppersurfer.tk:6969/announce', | ||
'udp://tracker.leechers-paradise.org:6969/announce', | ||
'udp://tracker.zer0day.to:1337/announce', | ||
'udp://explodie.org:6969/announce', | ||
'udp://tracker1.wasabii.com.tw:6969/announce', | ||
'http://173.254.204.71:1096/announce' | ||
'udp://open.demonii.si:1337/announce', | ||
'udp://denis.stalker.upeer.me:6969/announce', | ||
'udp://tracker.coppersurfer.tk:6969/announce', | ||
'udp://torrentclub.tech:6969/announce', | ||
'udp://retracker.lanta-net.ru:2710/announce', | ||
'udp://retracker.akado-ural.ru:80/announce', | ||
]; | ||
return '&tr='+_.join(_(trackers).map(encodeURIComponent).value(),'&tr='); | ||
return `magnet:?xt=urn:btih:${hash}&dn=${encodeURI(name)}&tr=+${_.join(_(trackers).map(encodeURIComponent).value(),'&tr=')}`; | ||
} | ||
function parseHtmlResponse(html){ | ||
var $ = cheerio.load(html); | ||
const values = _($('dl')).filter(tag => $($(tag).find('a[href]')).attr('href') && $($(tag).find('a[href]')).attr('href').indexOf('?') == -1) | ||
.map(extractHtmlData).filter(magnetObj => magnetObj.peers && magnetObj.seeds).sortBy(magnetObj => parseInt(magnetObj.seeds)).reverse() | ||
.value(); | ||
function extractHtmlData(obj){ | ||
const hash = $($(obj).find('a[href]')).attr('href').substring(1); | ||
const name = $($(obj).find('a[href]')).text(); | ||
const size = $($(obj).find('dd span')[2]).text(); | ||
const peers = $($(obj).find('dd span')[3]).text(); | ||
const seeds = $($(obj).find('dd span')[4]).text(); | ||
const magnet = `magnet:?xt=urn:btih:${hash}&dn=${encodeURI(name)}${getTrackerStr()}`; | ||
return {magnet,name,size,peers,seeds}; | ||
} | ||
return values; | ||
} |
{ | ||
"name": "torrentz2", | ||
"version": "1.0.6", | ||
"version": "2.0.0", | ||
"description": "", | ||
@@ -24,7 +24,5 @@ "main": "app.js", | ||
"dependencies": { | ||
"cheerio": "^0.22.0", | ||
"lodash": "^4.17.4", | ||
"q": "^1.4.1", | ||
"request": "^2.81.0" | ||
"lodash": "^4.17.15", | ||
"rss-parser": "^3.7.3" | ||
} | ||
} |
## TORRENTZ2 API | ||
Html scraper of [Torrentz2](http://torrentz2.eu). Lets find a list of magnets links by query string. Return ArrayJson as result. | ||
Html scraper of [~~Torrentz2~~](http://torrentz2.eu) [Tortorrentz](http//tortorrentz.com). Lets find a list of magnets links by query string. Return ArrayJson as result. | ||
@@ -36,2 +36,2 @@ ### Install | ||
*/ | ||
``` | ||
``` |
@@ -6,2 +6,2 @@ /** | ||
torrentz.searchTorrentz2('Game of thrones s07e04').then(console.log); | ||
torrentz.searchTorrentz2('Ubuntu').then(console.log); |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Deprecated
MaintenanceThe maintainer of the package marked it as deprecated. This could indicate that a single version should not be used, or that the package is no longer maintained and any new vulnerabilities will not be fixed.
Found 1 instance in 1 package
2
0
37
4154
5
53
+ Addedrss-parser@^3.7.3
+ Addedentities@2.2.0(transitive)
+ Addedrss-parser@3.13.0(transitive)
+ Addedsax@1.4.1(transitive)
+ Addedxml2js@0.5.0(transitive)
+ Addedxmlbuilder@11.0.1(transitive)
- Removedcheerio@^0.22.0
- Removedq@^1.4.1
- Removedrequest@^2.81.0
- Removedajv@6.12.6(transitive)
- Removedasn1@0.2.6(transitive)
- Removedassert-plus@1.0.0(transitive)
- Removedasynckit@0.4.0(transitive)
- Removedaws-sign2@0.7.0(transitive)
- Removedaws4@1.13.2(transitive)
- Removedbcrypt-pbkdf@1.0.2(transitive)
- Removedboolbase@1.0.0(transitive)
- Removedcaseless@0.12.0(transitive)
- Removedcheerio@0.22.0(transitive)
- Removedcombined-stream@1.0.8(transitive)
- Removedcore-util-is@1.0.2(transitive)
- Removedcss-select@1.2.0(transitive)
- Removedcss-what@2.1.3(transitive)
- Removeddashdash@1.14.1(transitive)
- Removeddelayed-stream@1.0.0(transitive)
- Removeddom-serializer@0.1.1(transitive)
- Removeddomelementtype@1.3.1(transitive)
- Removeddomhandler@2.4.2(transitive)
- Removeddomutils@1.5.1(transitive)
- Removedecc-jsbn@0.1.2(transitive)
- Removedentities@1.1.2(transitive)
- Removedextend@3.0.2(transitive)
- Removedextsprintf@1.3.0(transitive)
- Removedfast-deep-equal@3.1.3(transitive)
- Removedfast-json-stable-stringify@2.1.0(transitive)
- Removedforever-agent@0.6.1(transitive)
- Removedform-data@2.3.3(transitive)
- Removedgetpass@0.1.7(transitive)
- Removedhar-schema@2.0.0(transitive)
- Removedhar-validator@5.1.5(transitive)
- Removedhtmlparser2@3.10.1(transitive)
- Removedhttp-signature@1.2.0(transitive)
- Removedinherits@2.0.4(transitive)
- Removedis-typedarray@1.0.0(transitive)
- Removedisstream@0.1.2(transitive)
- Removedjsbn@0.1.1(transitive)
- Removedjson-schema@0.4.0(transitive)
- Removedjson-schema-traverse@0.4.1(transitive)
- Removedjson-stringify-safe@5.0.1(transitive)
- Removedjsprim@1.4.2(transitive)
- Removedlodash.assignin@4.2.0(transitive)
- Removedlodash.bind@4.2.1(transitive)
- Removedlodash.defaults@4.2.0(transitive)
- Removedlodash.filter@4.6.0(transitive)
- Removedlodash.flatten@4.4.0(transitive)
- Removedlodash.foreach@4.5.0(transitive)
- Removedlodash.map@4.6.0(transitive)
- Removedlodash.merge@4.6.2(transitive)
- Removedlodash.pick@4.4.0(transitive)
- Removedlodash.reduce@4.6.0(transitive)
- Removedlodash.reject@4.6.0(transitive)
- Removedlodash.some@4.6.0(transitive)
- Removedmime-db@1.52.0(transitive)
- Removedmime-types@2.1.35(transitive)
- Removednth-check@1.0.2(transitive)
- Removedoauth-sign@0.9.0(transitive)
- Removedperformance-now@2.1.0(transitive)
- Removedpsl@1.9.0(transitive)
- Removedpunycode@2.3.1(transitive)
- Removedq@1.5.1(transitive)
- Removedqs@6.5.3(transitive)
- Removedreadable-stream@3.6.2(transitive)
- Removedrequest@2.88.2(transitive)
- Removedsafe-buffer@5.2.1(transitive)
- Removedsafer-buffer@2.1.2(transitive)
- Removedsshpk@1.18.0(transitive)
- Removedstring_decoder@1.3.0(transitive)
- Removedtough-cookie@2.5.0(transitive)
- Removedtunnel-agent@0.6.0(transitive)
- Removedtweetnacl@0.14.5(transitive)
- Removeduri-js@4.4.1(transitive)
- Removedutil-deprecate@1.0.2(transitive)
- Removeduuid@3.4.0(transitive)
- Removedverror@1.10.0(transitive)
Updatedlodash@^4.17.15