|
1 |
| -"use strict"; |
2 |
| - |
3 | 1 | var q = require("q");
|
4 | 2 | var isCss = require("is-css");
|
5 | 3 | var isPresent = require("is-present");
|
6 | 4 | var isBlank = require("is-blank");
|
7 | 5 | var isUrl = require("is-url-superb");
|
8 |
| -var request = require("request"); |
| 6 | +var request = require("requestretry"); |
9 | 7 | var cheerio = require("cheerio");
|
10 | 8 | var normalizeUrl = require("normalize-url");
|
11 | 9 | var stripHtmlComments = require("strip-html-comments");
|
| 10 | +var stripWaybackToolbar = require("strip-wayback-toolbar") |
12 | 11 | var resolveCssImportUrls = require("resolve-css-import-urls");
|
13 | 12 | var ua = require("ua-string");
|
14 | 13 |
|
15 | 14 | var getLinkContents = require("./utils/get-link-contents");
|
16 | 15 | var createLink = require("./utils/create-link");
|
17 | 16 |
|
18 |
| -module.exports = function(url, options, html) { |
| 17 | +module.exports = function(url, options, html){ |
19 | 18 | var deferred = q.defer();
|
20 | 19 | var options = options || {};
|
21 | 20 | options.headers = options.headers || {};
|
22 | 21 | options.headers["User-Agent"] = options.headers["User-Agent"] || ua;
|
23 | 22 | options.timeout = options.timeout || 5000;
|
| 23 | + options.stripWayback = options.stripWayback || false; |
24 | 24 | options.gzip = true;
|
25 | 25 |
|
26 | 26 | if (typeof url !== "string" || isBlank(url) || !isUrl(url)) {
|
@@ -52,16 +52,20 @@ module.exports = function(url, options, html) {
|
52 | 52 | }
|
53 | 53 |
|
54 | 54 | function parseHtml(html) {
|
| 55 | + if (options.stripWayback) { |
| 56 | + html = stripWaybackToolbar(html); |
| 57 | + } |
55 | 58 | var $ = cheerio.load(html);
|
56 | 59 | result.pageTitle = $("head > title").text();
|
| 60 | + result.html = html; |
57 | 61 |
|
58 | 62 | $("[rel=stylesheet]").each(function() {
|
59 |
| - var link = $(this).attr("href"); |
60 |
| - if (isPresent(link)) { |
61 |
| - result.links.push(createLink(link, url)); |
62 |
| - } else { |
63 |
| - result.styles.push(stripHtmlComments($(this).text())); |
64 |
| - } |
| 63 | + var link = $(this).attr("href"); |
| 64 | + if (isPresent(link)) { |
| 65 | + result.links.push(createLink(link, url)); |
| 66 | + } else{ |
| 67 | + result.styles.push(stripHtmlComments($(this).text())); |
| 68 | + } |
65 | 69 | });
|
66 | 70 |
|
67 | 71 | $("style").each(function() {
|
|
0 commit comments