Sfoglia il codice sorgente

implemented a max. number of JS redirects

Former-commit-id: b8902ee266442dcf57ade2c296f4e4c2b4f6100e
Gildas 6 anni fa
parent
commit
e0a7babcfc
1 ha cambiato i file con 9 aggiunte e 1 eliminazioni
  1. 9 1
      cli/back-ends/puppeteer.js

+ 9 - 1
cli/back-ends/puppeteer.js

@@ -52,6 +52,10 @@ const SCRIPTS = [
 	"../../lib/single-file/single-file.js"
 ];
 
+const MAX_JS_REDIRECTS = 100;
+
+let jsRedirects = 0;
+
 exports.getPageData = async options => {
 	const browserOptions = {};
 	if (options.browserHeadless !== undefined) {
@@ -128,11 +132,15 @@ exports.getPageData = async options => {
 				const pages = await browser.pages();
 				const page = pages[1] || pages[0];
 				const url = page.url();
+				await browser.close();
 				if (url != options.url) {
-					await browser.close();
 					options.url = url;
 					return exports.getPageData(options);
 				} else {
+					jsRedirects++;
+					if (jsRedirects < MAX_JS_REDIRECTS) {
+						return exports.getPageData(options);
+					}
 					throw error;
 				}
 			} else {