| WIP: adding download torrents functions - seedlinux - Torrent indexing tool ope… | |
| Log | |
| Files | |
| Refs | |
| README | |
| --- | |
| commit 36400b3f1e690ea4f8c7c29f26fd309d97c6ad17 | |
| parent 17883aa7ec852387e78d5c0231d1bdd0ec9c6c5a | |
| Author: Jay Scott <[email protected]> | |
| Date: Tue, 5 Sep 2017 15:40:38 +0100 | |
| WIP: adding download torrents functions | |
| Diffstat: | |
| A bin/download | 93 +++++++++++++++++++++++++++++… | |
| M models/torrent_model.js | 3 ++- | |
| M package-lock.json | 524 +++++++++++++++++++++++++++++… | |
| M package.json | 5 +++++ | |
| M views/details.pug | 5 +++++ | |
| 5 files changed, 626 insertions(+), 4 deletions(-) | |
| --- | |
| diff --git a/bin/download b/bin/download | |
| @@ -0,0 +1,93 @@ | |
| +#!/usr/bin/env node | |
| +'use strict'; | |
| + | |
| +const request = require('request'); | |
| +const cheerio = require('cheerio'); | |
| +const download = require('download-to-file') | |
| +const S = require('string'); | |
| + | |
| +const torrent_data = "./data/torrents/" | |
| + | |
| +console.log('Downloading torrents'); | |
| + | |
| +function distrowatch_torrents() { | |
| + const baseurl = "http://distrowatch.com/" | |
| + | |
| + request(baseurl + 'dwres.php?resource=bittorrent', function (error, response… | |
| + if (!error && response.statusCode == 200) { | |
| + var $ = cheerio.load(html); | |
| + $('td.torrent').each(function(i, element){ | |
| + var href = $('a', this).attr('href'); | |
| + | |
| + if (typeof href !== 'undefined' && href !== null){ | |
| + let torrent_name = href.split('dwres/torrents/'); | |
| + | |
| + download(baseurl + href, torrent_data + torrent_name[1], function(er… | |
| + if (err) throw err | |
| + console.log("Downloaded - " + torrent_name[1]) | |
| + }) | |
| + } | |
| + }); | |
| + } | |
| + }); | |
| +} | |
| + | |
| +function fedora_torrents() { | |
| + const baseurl = "https://torrent.fedoraproject.org/" | |
| + | |
| + request(baseurl, function (error, response, html) { | |
| + if (!error && response.statusCode == 200) { | |
| + var $ = cheerio.load(html); | |
| + $('td').each(function(i, element){ | |
| + var href = $('a', this).attr('href'); | |
| + | |
| + if (typeof href !== 'undefined' && href !== null){ | |
| + let torrent_name = href.split('/torrents/'); | |
| + | |
| + download(href, torrent_data + torrent_name[1], function(err){ | |
| + if (err) throw err | |
| + console.log("Downloaded - " + torrent_name[1]) | |
| + }) | |
| + } | |
| + }); | |
| + } | |
| + }); | |
| +} | |
| + | |
| +function antergos_torrents() { | |
| + const baseurl = "http://mirrors.antergos.com/iso/release/" | |
| + const mirrorurl = "http://mirrorservice.org/sites/repo.antergos.com/iso/rele… | |
| + | |
| + console.log('Downloading torrents from Antergos'); | |
| + request(baseurl, function (error, response, html) { | |
| + if (!error && response.statusCode == 200) { | |
| + var $ = cheerio.load(html); | |
| + $('td').each(function(i, element){ | |
| + var href = $('a', this).attr('href'); | |
| + | |
| + if (typeof href !== 'undefined' && href !== null){ | |
| + if ( S(href).endsWith('.torrent') ) { | |
| + download(mirrorurl + href, torrent_data + href, function(err){ | |
| + if (err) throw err | |
| + console.log("Downloaded - " + href) | |
| + }) | |
| + } | |
| + } | |
| + // if (typeof href !== 'undefined' && href !== null){ | |
| + // let torrent_name = href.split('/torrents/'); | |
| + | |
| + // download(href, torrent_data + torrent_name[1], function(err){ | |
| + // if (err) throw err | |
| + // console.log("Downloaded - " + torrent_name[1]) | |
| + // }) | |
| + // } | |
| + }); | |
| + } | |
| + }); | |
| +} | |
| + | |
| + | |
| +// using the following list for torrent sources https://www.reddit.com/r/linux… | |
| +//distrowatch_torrents(); | |
| +//fedora_torrents(); | |
| +antergos_torrents(); | |
| diff --git a/models/torrent_model.js b/models/torrent_model.js | |
| @@ -22,7 +22,8 @@ const TorrentSchema = Schema( | |
| }], | |
| magneturi: {type: String}, | |
| leechers: {type: Number}, | |
| - seeders: {type: Number}, | |
| + seeders: {type: Number} | |
| + | |
| } | |
| ); | |
| diff --git a/package-lock.json b/package-lock.json | |
| @@ -4,11 +4,25 @@ | |
| "lockfileVersion": 1, | |
| "requires": true, | |
| "dependencies": { | |
| + "@types/node": { | |
| + "version": "6.0.88", | |
| + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.88.tgz", | |
| + "integrity": "sha512-bYDPZTX0/s1aihdjLuAgogUAT5M+TpoWChEMea2p0yOcfn5bu3k… | |
| + }, | |
| "abbrev": { | |
| "version": "1.1.0", | |
| "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", | |
| "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=" | |
| }, | |
| + "ajv": { | |
| + "version": "4.11.8", | |
| + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", | |
| + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", | |
| + "requires": { | |
| + "co": "4.6.0", | |
| + "json-stable-stringify": "1.0.1" | |
| + } | |
| + }, | |
| "ansi-regex": { | |
| "version": "2.1.1", | |
| "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tg… | |
| @@ -46,6 +60,16 @@ | |
| "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.… | |
| "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" | |
| }, | |
| + "asn1": { | |
| + "version": "0.2.3", | |
| + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", | |
| + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" | |
| + }, | |
| + "assert-plus": { | |
| + "version": "0.2.0", | |
| + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.… | |
| + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" | |
| + }, | |
| "async": { | |
| "version": "2.5.0", | |
| "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", | |
| @@ -66,11 +90,35 @@ | |
| "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tg… | |
| "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=" | |
| }, | |
| + "asynckit": { | |
| + "version": "0.4.0", | |
| + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", | |
| + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" | |
| + }, | |
| + "aws-sign2": { | |
| + "version": "0.6.0", | |
| + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", | |
| + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" | |
| + }, | |
| + "aws4": { | |
| + "version": "1.6.0", | |
| + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", | |
| + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" | |
| + }, | |
| "balanced-match": { | |
| "version": "1.0.0", | |
| "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-… | |
| "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" | |
| }, | |
| + "bcrypt-pbkdf": { | |
| + "version": "1.0.1", | |
| + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.… | |
| + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", | |
| + "optional": true, | |
| + "requires": { | |
| + "tweetnacl": "0.14.5" | |
| + } | |
| + }, | |
| "binary-extensions": { | |
| "version": "1.10.0", | |
| "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-exten… | |
| @@ -214,6 +262,19 @@ | |
| } | |
| } | |
| }, | |
| + "boolbase": { | |
| + "version": "1.0.0", | |
| + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", | |
| + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" | |
| + }, | |
| + "boom": { | |
| + "version": "2.10.1", | |
| + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", | |
| + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", | |
| + "requires": { | |
| + "hoek": "2.16.3" | |
| + } | |
| + }, | |
| "brace-expansion": { | |
| "version": "1.1.8", | |
| "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansio… | |
| @@ -283,6 +344,11 @@ | |
| "tape": "2.3.3" | |
| } | |
| }, | |
| + "caseless": { | |
| + "version": "0.12.0", | |
| + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", | |
| + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" | |
| + }, | |
| "chai": { | |
| "version": "4.1.1", | |
| "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.1.tgz", | |
| @@ -358,6 +424,19 @@ | |
| "supports-color": "2.0.0" | |
| } | |
| }, | |
| + "cheerio": { | |
| + "version": "1.0.0-rc.2", | |
| + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz… | |
| + "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=", | |
| + "requires": { | |
| + "css-select": "1.2.0", | |
| + "dom-serializer": "0.1.0", | |
| + "entities": "1.1.1", | |
| + "htmlparser2": "3.9.2", | |
| + "lodash": "4.17.4", | |
| + "parse5": "3.0.2" | |
| + } | |
| + }, | |
| "chokidar": { | |
| "version": "1.7.0", | |
| "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", | |
| @@ -395,6 +474,11 @@ | |
| "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", | |
| "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=" | |
| }, | |
| + "co": { | |
| + "version": "4.6.0", | |
| + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", | |
| + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" | |
| + }, | |
| "colors": { | |
| "version": "0.6.2", | |
| "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", | |
| @@ -404,7 +488,6 @@ | |
| "version": "1.0.5", | |
| "resolved": "https://registry.npmjs.org/combined-stream/-/combined-strea… | |
| "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", | |
| - "dev": true, | |
| "requires": { | |
| "delayed-stream": "1.0.0" | |
| } | |
| @@ -527,11 +610,50 @@ | |
| "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.… | |
| "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" | |
| }, | |
| + "cryptiles": { | |
| + "version": "2.0.5", | |
| + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", | |
| + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", | |
| + "requires": { | |
| + "boom": "2.10.1" | |
| + } | |
| + }, | |
| + "css-select": { | |
| + "version": "1.2.0", | |
| + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tg… | |
| + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", | |
| + "requires": { | |
| + "boolbase": "1.0.0", | |
| + "css-what": "2.1.0", | |
| + "domutils": "1.5.1", | |
| + "nth-check": "1.0.1" | |
| + } | |
| + }, | |
| + "css-what": { | |
| + "version": "2.1.0", | |
| + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", | |
| + "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=" | |
| + }, | |
| "cycle": { | |
| "version": "1.0.3", | |
| "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", | |
| "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=" | |
| }, | |
| + "dashdash": { | |
| + "version": "1.14.1", | |
| + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", | |
| + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", | |
| + "requires": { | |
| + "assert-plus": "1.0.0" | |
| + }, | |
| + "dependencies": { | |
| + "assert-plus": { | |
| + "version": "1.0.0", | |
| + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.… | |
| + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" | |
| + } | |
| + } | |
| + }, | |
| "debug": { | |
| "version": "2.6.8", | |
| "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", | |
| @@ -565,14 +687,68 @@ | |
| "delayed-stream": { | |
| "version": "1.0.0", | |
| "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-… | |
| - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", | |
| - "dev": true | |
| + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" | |
| }, | |
| "director": { | |
| "version": "1.2.7", | |
| "resolved": "https://registry.npmjs.org/director/-/director-1.2.7.tgz", | |
| "integrity": "sha1-v9N0EHX9f7GlsuE2WMX0vsd3NvM=" | |
| }, | |
| + "dom-serializer": { | |
| + "version": "0.1.0", | |
| + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-… | |
| + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", | |
| + "requires": { | |
| + "domelementtype": "1.1.3", | |
| + "entities": "1.1.1" | |
| + }, | |
| + "dependencies": { | |
| + "domelementtype": { | |
| + "version": "1.1.3", | |
| + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementt… | |
| + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" | |
| + } | |
| + } | |
| + }, | |
| + "domelementtype": { | |
| + "version": "1.3.0", | |
| + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-… | |
| + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=" | |
| + }, | |
| + "domhandler": { | |
| + "version": "2.4.1", | |
| + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tg… | |
| + "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=", | |
| + "requires": { | |
| + "domelementtype": "1.3.0" | |
| + } | |
| + }, | |
| + "domutils": { | |
| + "version": "1.5.1", | |
| + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", | |
| + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", | |
| + "requires": { | |
| + "dom-serializer": "0.1.0", | |
| + "domelementtype": "1.3.0" | |
| + } | |
| + }, | |
| + "download-file": { | |
| + "version": "0.1.5", | |
| + "resolved": "https://registry.npmjs.org/download-file/-/download-file-0.… | |
| + "integrity": "sha1-ylC6ZNkJSwyHAu+f/5LSGJ4UERc=", | |
| + "requires": { | |
| + "mkdirp": "0.5.1" | |
| + } | |
| + }, | |
| + "download-to-file": { | |
| + "version": "2.0.0", | |
| + "resolved": "https://registry.npmjs.org/download-to-file/-/download-to-f… | |
| + "integrity": "sha1-Bsgz8q28+fmSNGhC9iB7VKJGC8w=", | |
| + "requires": { | |
| + "mkdirp": "0.5.1", | |
| + "pump": "1.0.2" | |
| + } | |
| + }, | |
| "duplexer": { | |
| "version": "0.1.1", | |
| "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", | |
| @@ -589,6 +765,15 @@ | |
| "stream-shift": "1.0.0" | |
| } | |
| }, | |
| + "ecc-jsbn": { | |
| + "version": "0.1.1", | |
| + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", | |
| + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", | |
| + "optional": true, | |
| + "requires": { | |
| + "jsbn": "0.1.1" | |
| + } | |
| + }, | |
| "end-of-stream": { | |
| "version": "1.0.0", | |
| "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.… | |
| @@ -607,6 +792,11 @@ | |
| } | |
| } | |
| }, | |
| + "entities": { | |
| + "version": "1.1.1", | |
| + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", | |
| + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" | |
| + }, | |
| "es6-promise": { | |
| "version": "3.3.1", | |
| "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.… | |
| @@ -943,6 +1133,11 @@ | |
| } | |
| } | |
| }, | |
| + "extend": { | |
| + "version": "3.0.1", | |
| + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", | |
| + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" | |
| + }, | |
| "extglob": { | |
| "version": "0.3.2", | |
| "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", | |
| @@ -951,6 +1146,11 @@ | |
| "is-extglob": "1.0.0" | |
| } | |
| }, | |
| + "extsprintf": { | |
| + "version": "1.3.0", | |
| + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tg… | |
| + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" | |
| + }, | |
| "eyes": { | |
| "version": "0.1.8", | |
| "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", | |
| @@ -1045,6 +1245,11 @@ | |
| "winston": "0.8.3" | |
| } | |
| }, | |
| + "forever-agent": { | |
| + "version": "0.6.1", | |
| + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.… | |
| + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" | |
| + }, | |
| "forever-monitor": { | |
| "version": "1.7.1", | |
| "resolved": "https://registry.npmjs.org/forever-monitor/-/forever-monito… | |
| @@ -1127,6 +1332,21 @@ | |
| "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.… | |
| "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" | |
| }, | |
| + "getpass": { | |
| + "version": "0.1.7", | |
| + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", | |
| + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", | |
| + "requires": { | |
| + "assert-plus": "1.0.0" | |
| + }, | |
| + "dependencies": { | |
| + "assert-plus": { | |
| + "version": "1.0.0", | |
| + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.… | |
| + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" | |
| + } | |
| + } | |
| + }, | |
| "glob": { | |
| "version": "7.1.2", | |
| "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", | |
| @@ -1186,6 +1406,20 @@ | |
| "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11… | |
| "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" | |
| }, | |
| + "har-schema": { | |
| + "version": "1.0.5", | |
| + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tg… | |
| + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=" | |
| + }, | |
| + "har-validator": { | |
| + "version": "4.2.1", | |
| + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.… | |
| + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", | |
| + "requires": { | |
| + "ajv": "4.11.8", | |
| + "har-schema": "1.0.5" | |
| + } | |
| + }, | |
| "has-ansi": { | |
| "version": "2.0.0", | |
| "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", | |
| @@ -1194,6 +1428,17 @@ | |
| "ansi-regex": "2.1.1" | |
| } | |
| }, | |
| + "hawk": { | |
| + "version": "3.1.3", | |
| + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", | |
| + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", | |
| + "requires": { | |
| + "boom": "2.10.1", | |
| + "cryptiles": "2.0.5", | |
| + "hoek": "2.16.3", | |
| + "sntp": "1.0.9" | |
| + } | |
| + }, | |
| "helmet": { | |
| "version": "3.8.1", | |
| "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.8.1.tgz", | |
| @@ -1397,6 +1642,34 @@ | |
| } | |
| } | |
| }, | |
| + "hoek": { | |
| + "version": "2.16.3", | |
| + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", | |
| + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" | |
| + }, | |
| + "htmlparser2": { | |
| + "version": "3.9.2", | |
| + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.… | |
| + "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", | |
| + "requires": { | |
| + "domelementtype": "1.3.0", | |
| + "domhandler": "2.4.1", | |
| + "domutils": "1.5.1", | |
| + "entities": "1.1.1", | |
| + "inherits": "2.0.3", | |
| + "readable-stream": "2.3.3" | |
| + } | |
| + }, | |
| + "http-signature": { | |
| + "version": "1.1.1", | |
| + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-… | |
| + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", | |
| + "requires": { | |
| + "assert-plus": "0.2.0", | |
| + "jsprim": "1.4.1", | |
| + "sshpk": "1.13.1" | |
| + } | |
| + }, | |
| "i": { | |
| "version": "0.3.5", | |
| "resolved": "https://registry.npmjs.org/i/-/i-0.3.5.tgz", | |
| @@ -1521,6 +1794,11 @@ | |
| "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", | |
| "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" | |
| }, | |
| + "is-typedarray": { | |
| + "version": "1.0.0", | |
| + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.… | |
| + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" | |
| + }, | |
| "isarray": { | |
| "version": "1.0.0", | |
| "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", | |
| @@ -1539,6 +1817,12 @@ | |
| "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", | |
| "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" | |
| }, | |
| + "jsbn": { | |
| + "version": "0.1.1", | |
| + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", | |
| + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", | |
| + "optional": true | |
| + }, | |
| "jshint": { | |
| "version": "2.9.5", | |
| "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.5.tgz", | |
| @@ -1792,11 +2076,47 @@ | |
| } | |
| } | |
| }, | |
| + "json-schema": { | |
| + "version": "0.2.3", | |
| + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.… | |
| + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" | |
| + }, | |
| + "json-stable-stringify": { | |
| + "version": "1.0.1", | |
| + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-sta… | |
| + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", | |
| + "requires": { | |
| + "jsonify": "0.0.0" | |
| + } | |
| + }, | |
| + "json-stringify-safe": { | |
| + "version": "5.0.1", | |
| + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-strin… | |
| + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" | |
| + }, | |
| "jsonify": { | |
| "version": "0.0.0", | |
| "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", | |
| "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" | |
| }, | |
| + "jsprim": { | |
| + "version": "1.4.1", | |
| + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", | |
| + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", | |
| + "requires": { | |
| + "assert-plus": "1.0.0", | |
| + "extsprintf": "1.3.0", | |
| + "json-schema": "0.2.3", | |
| + "verror": "1.10.0" | |
| + }, | |
| + "dependencies": { | |
| + "assert-plus": { | |
| + "version": "1.0.0", | |
| + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.… | |
| + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" | |
| + } | |
| + } | |
| + }, | |
| "kind-of": { | |
| "version": "3.2.2", | |
| "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", | |
| @@ -1818,6 +2138,11 @@ | |
| "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz", | |
| "integrity": "sha1-2qBoIGKCVCwIgojpdcKXwa53tpA=" | |
| }, | |
| + "lodash": { | |
| + "version": "4.17.4", | |
| + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", | |
| + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" | |
| + }, | |
| "lodash._baseassign": { | |
| "version": "3.2.0", | |
| "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._bas… | |
| @@ -1931,6 +2256,19 @@ | |
| "regex-cache": "0.4.3" | |
| } | |
| }, | |
| + "mime-db": { | |
| + "version": "1.30.0", | |
| + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", | |
| + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" | |
| + }, | |
| + "mime-types": { | |
| + "version": "2.1.17", | |
| + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.t… | |
| + "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", | |
| + "requires": { | |
| + "mime-db": "1.30.0" | |
| + } | |
| + }, | |
| "minimatch": { | |
| "version": "3.0.4", | |
| "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", | |
| @@ -3053,11 +3391,24 @@ | |
| "lazy": "1.0.11" | |
| } | |
| }, | |
| + "nth-check": { | |
| + "version": "1.0.1", | |
| + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", | |
| + "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", | |
| + "requires": { | |
| + "boolbase": "1.0.0" | |
| + } | |
| + }, | |
| "number-is-nan": { | |
| "version": "1.0.1", | |
| "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.… | |
| "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" | |
| }, | |
| + "oauth-sign": { | |
| + "version": "0.8.2", | |
| + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tg… | |
| + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" | |
| + }, | |
| "object-assign": { | |
| "version": "3.0.0", | |
| "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.… | |
| @@ -3247,6 +3598,14 @@ | |
| } | |
| } | |
| }, | |
| + "parse5": { | |
| + "version": "3.0.2", | |
| + "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.2.tgz", | |
| + "integrity": "sha1-Be/1fw70V3+xRKefi5qWemzERRA=", | |
| + "requires": { | |
| + "@types/node": "6.0.88" | |
| + } | |
| + }, | |
| "path-is-absolute": { | |
| "version": "1.0.1", | |
| "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absol… | |
| @@ -3260,6 +3619,11 @@ | |
| "through": "2.3.8" | |
| } | |
| }, | |
| + "performance-now": { | |
| + "version": "0.2.0", | |
| + "resolved": "https://registry.npmjs.org/performance-now/-/performance-no… | |
| + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" | |
| + }, | |
| "pinkie": { | |
| "version": "2.0.4", | |
| "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", | |
| @@ -3748,6 +4112,35 @@ | |
| } | |
| } | |
| }, | |
| + "pump": { | |
| + "version": "1.0.2", | |
| + "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.2.tgz", | |
| + "integrity": "sha1-Oz7mUS+U8OV1U4wXmV+fFpkKXVE=", | |
| + "requires": { | |
| + "end-of-stream": "1.4.0", | |
| + "once": "1.4.0" | |
| + }, | |
| + "dependencies": { | |
| + "end-of-stream": { | |
| + "version": "1.4.0", | |
| + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-strea… | |
| + "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=", | |
| + "requires": { | |
| + "once": "1.4.0" | |
| + } | |
| + } | |
| + } | |
| + }, | |
| + "punycode": { | |
| + "version": "1.4.1", | |
| + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", | |
| + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" | |
| + }, | |
| + "qs": { | |
| + "version": "6.4.0", | |
| + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", | |
| + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" | |
| + }, | |
| "randomatic": { | |
| "version": "1.1.7", | |
| "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tg… | |
| @@ -3890,6 +4283,52 @@ | |
| "is-finite": "1.0.2" | |
| } | |
| }, | |
| + "request": { | |
| + "version": "2.81.0", | |
| + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", | |
| + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", | |
| + "requires": { | |
| + "aws-sign2": "0.6.0", | |
| + "aws4": "1.6.0", | |
| + "caseless": "0.12.0", | |
| + "combined-stream": "1.0.5", | |
| + "extend": "3.0.1", | |
| + "forever-agent": "0.6.1", | |
| + "form-data": "2.1.4", | |
| + "har-validator": "4.2.1", | |
| + "hawk": "3.1.3", | |
| + "http-signature": "1.1.1", | |
| + "is-typedarray": "1.0.0", | |
| + "isstream": "0.1.2", | |
| + "json-stringify-safe": "5.0.1", | |
| + "mime-types": "2.1.17", | |
| + "oauth-sign": "0.8.2", | |
| + "performance-now": "0.2.0", | |
| + "qs": "6.4.0", | |
| + "safe-buffer": "5.1.1", | |
| + "stringstream": "0.0.5", | |
| + "tough-cookie": "2.3.2", | |
| + "tunnel-agent": "0.6.0", | |
| + "uuid": "3.1.0" | |
| + }, | |
| + "dependencies": { | |
| + "form-data": { | |
| + "version": "2.1.4", | |
| + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.… | |
| + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", | |
| + "requires": { | |
| + "asynckit": "0.4.0", | |
| + "combined-stream": "1.0.5", | |
| + "mime-types": "2.1.17" | |
| + } | |
| + }, | |
| + "uuid": { | |
| + "version": "3.1.0", | |
| + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", | |
| + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2h… | |
| + } | |
| + } | |
| + }, | |
| "resumer": { | |
| "version": "0.0.0", | |
| "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", | |
| @@ -3948,6 +4387,14 @@ | |
| "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", | |
| "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" | |
| }, | |
| + "sntp": { | |
| + "version": "1.0.9", | |
| + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", | |
| + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", | |
| + "requires": { | |
| + "hoek": "2.16.3" | |
| + } | |
| + }, | |
| "split": { | |
| "version": "0.3.3", | |
| "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", | |
| @@ -3956,6 +4403,28 @@ | |
| "through": "2.3.8" | |
| } | |
| }, | |
| + "sshpk": { | |
| + "version": "1.13.1", | |
| + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", | |
| + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", | |
| + "requires": { | |
| + "asn1": "0.2.3", | |
| + "assert-plus": "1.0.0", | |
| + "bcrypt-pbkdf": "1.0.1", | |
| + "dashdash": "1.14.1", | |
| + "ecc-jsbn": "0.1.1", | |
| + "getpass": "0.1.7", | |
| + "jsbn": "0.1.1", | |
| + "tweetnacl": "0.14.5" | |
| + }, | |
| + "dependencies": { | |
| + "assert-plus": { | |
| + "version": "1.0.0", | |
| + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.… | |
| + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" | |
| + } | |
| + } | |
| + }, | |
| "stack-trace": { | |
| "version": "0.0.10", | |
| "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10… | |
| @@ -3974,6 +4443,11 @@ | |
| "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.… | |
| "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" | |
| }, | |
| + "string": { | |
| + "version": "3.3.3", | |
| + "resolved": "https://registry.npmjs.org/string/-/string-3.3.3.tgz", | |
| + "integrity": "sha1-XqIRzZLSKOGEKUmQpsyXs2anfLA=" | |
| + }, | |
| "string_decoder": { | |
| "version": "1.0.3", | |
| "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-… | |
| @@ -3990,6 +4464,11 @@ | |
| "strip-ansi": "3.0.1" | |
| } | |
| }, | |
| + "stringstream": { | |
| + "version": "0.0.5", | |
| + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.… | |
| + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" | |
| + }, | |
| "strip-ansi": { | |
| "version": "3.0.1", | |
| "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tg… | |
| @@ -4183,6 +4662,28 @@ | |
| "nopt": "1.0.10" | |
| } | |
| }, | |
| + "tough-cookie": { | |
| + "version": "2.3.2", | |
| + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.… | |
| + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", | |
| + "requires": { | |
| + "punycode": "1.4.1" | |
| + } | |
| + }, | |
| + "tunnel-agent": { | |
| + "version": "0.6.0", | |
| + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.… | |
| + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", | |
| + "requires": { | |
| + "safe-buffer": "5.1.1" | |
| + } | |
| + }, | |
| + "tweetnacl": { | |
| + "version": "0.14.5", | |
| + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz… | |
| + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", | |
| + "optional": true | |
| + }, | |
| "undefsafe": { | |
| "version": "0.0.3", | |
| "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-0.0.3.tgz", | |
| @@ -4232,6 +4733,23 @@ | |
| "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", | |
| "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=" | |
| }, | |
| + "verror": { | |
| + "version": "1.10.0", | |
| + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", | |
| + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", | |
| + "requires": { | |
| + "assert-plus": "1.0.0", | |
| + "core-util-is": "1.0.2", | |
| + "extsprintf": "1.3.0" | |
| + }, | |
| + "dependencies": { | |
| + "assert-plus": { | |
| + "version": "1.0.0", | |
| + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.… | |
| + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" | |
| + } | |
| + } | |
| + }, | |
| "webtorrent-health": { | |
| "version": "1.1.1", | |
| "resolved": "https://registry.npmjs.org/webtorrent-health/-/webtorrent-h… | |
| diff --git a/package.json b/package.json | |
| @@ -11,8 +11,11 @@ | |
| "dependencies": { | |
| "async": "^2.5.0", | |
| "body-parser": "^1.17.2", | |
| + "cheerio": "^1.0.0-rc.2", | |
| "compression": "^1.6.2", | |
| "debug": "^2.6.8", | |
| + "download-file": "^0.1.5", | |
| + "download-to-file": "^2.0.0", | |
| "express": "^4.15.3", | |
| "flat": "^2.0.1", | |
| "forever": "^0.15.3", | |
| @@ -23,6 +26,8 @@ | |
| "nodemon": "^1.11.0", | |
| "parse-torrent": "^5.8.3", | |
| "pug": "^2.0.0-rc.2", | |
| + "request": "^2.81.0", | |
| + "string": "^3.3.3", | |
| "webtorrent-health": "^1.1.1" | |
| }, | |
| "devDependencies": { | |
| diff --git a/views/details.pug b/views/details.pug | |
| @@ -43,6 +43,11 @@ block content | |
| td= i.created | |
| tr | |
| td | |
| + i.hourglass.full.olive.icon | |
| + = 'Last Checked' | |
| + td= i.updated | |
| + tr | |
| + td | |
| i.comment.outline.olive.icon | |
| = 'Comment' | |
| td= i.comment |