Ver Fonte

added singlefile.lib.getPageData method

Former-commit-id: 5eb5477f1140100e6b376c310312cf914f0539bd
Gildas há 6 anos atrás
pai
commit
f0e022fb2c

+ 1 - 6
cli/back-ends/jsdom.js

@@ -57,8 +57,6 @@ exports.getPageData = async options => {
 	const win = dom.window;
 	const doc = win.document;
 	try {
-		options.insertSingleFileComment = true;
-		options.insertFaviconLink = true;
 		const scripts = await require("./common/scripts.js").get(options);
 		win.TextDecoder = class {
 			constructor(utfLabel) {
@@ -90,10 +88,7 @@ exports.getPageData = async options => {
 		options.win = win;
 		options.doc = doc;
 		options.removeHiddenElements = false;
-		const SingleFile = win.singlefile.lib.SingleFile.getClass({ fetch: url => fetchResource(url, options) });
-		const singleFile = new SingleFile(options);
-		await singleFile.run();
-		const pageData = await singleFile.getPageData();
+		const pageData = await win.singlefile.lib.getPageData(options, { fetch: url => fetchResource(url, options) });
 		if (options.includeInfobar) {
 			await win.singlefile.common.ui.content.infobar.includeScript(pageData);
 		}

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

@@ -72,8 +72,6 @@ exports.getPageData = async options => {
 		try {
 			return await page.evaluate(async options => {
 				singlefile.lib.helper.initDoc(document);
-				options.insertSingleFileComment = true;
-				options.insertFaviconLink = true;
 				const preInitializationPromises = [];
 				if (!options.saveRawPage) {
 					if (!options.removeFrames) {
@@ -86,10 +84,7 @@ exports.getPageData = async options => {
 				[options.frames] = await Promise.all(preInitializationPromises);
 				options.doc = document;
 				options.win = window;
-				const SingleFile = singlefile.lib.SingleFile.getClass();
-				const singleFile = new SingleFile(options);
-				await singleFile.run();
-				const pageData = await singleFile.getPageData();
+				const pageData = await singlefile.lib.getPageData(options);
 				if (options.includeInfobar) {
 					await singlefile.common.ui.content.infobar.includeScript(pageData);
 				}

+ 2 - 7
cli/back-ends/webdriver-chromium.js

@@ -138,8 +138,6 @@ function getPageDataScript() {
 
 	async function getPageData() {
 		singlefile.lib.helper.initDoc(document);
-		options.insertSingleFileComment = true;
-		options.insertFaviconLink = true;
 		const preInitializationPromises = [];
 		if (!options.saveRawPage) {
 			if (!options.removeFrames) {
@@ -151,11 +149,8 @@ function getPageDataScript() {
 		}
 		[options.frames] = await Promise.all(preInitializationPromises);
 		options.doc = document;
-		options.win = window;
-		const SingleFile = singlefile.lib.SingleFile.getClass();
-		const singleFile = new SingleFile(options);
-		await singleFile.run();
-		const pageData = await singleFile.getPageData();
+		options.win = window;		
+		const pageData = await singlefile.lib.getPageData(options);
 		if (options.includeInfobar) {
 			await singlefile.common.ui.content.infobar.includeScript(pageData);
 		}

+ 2 - 7
cli/back-ends/webdriver-gecko.js

@@ -145,8 +145,6 @@ function getPageDataScript() {
 
 	async function getPageData() {
 		singlefile.lib.helper.initDoc(document);
-		options.insertSingleFileComment = true;
-		options.insertFaviconLink = true;
 		const preInitializationPromises = [];
 		if (!options.saveRawPage) {
 			if (!options.removeFrames) {
@@ -158,11 +156,8 @@ function getPageDataScript() {
 		}
 		[options.frames] = await Promise.all(preInitializationPromises);
 		options.doc = document;
-		options.win = window;
-		const SingleFile = singlefile.lib.SingleFile.getClass();
-		const singleFile = new SingleFile(options);
-		await singleFile.run();
-		const pageData = await singleFile.getPageData();
+		options.win = window;		
+		const pageData = await singlefile.lib.getPageData(options);
 		if (options.includeInfobar) {
 			await singlefile.common.ui.content.infobar.includeScript(pageData);
 		}

+ 1 - 7
extension/core/bg/autosave.js

@@ -113,18 +113,12 @@ singlefile.extension.core.bg.autosave = (() => {
 		options.imports = message.imports;
 		options.referrer = message.referrer;
 		options.updatedResources = message.updatedResources;
-		options.insertSingleFileComment = true;
-		options.insertFaviconLink = true;
 		options.backgroundTab = true;
 		options.autoSave = true;
 		options.incognito = tab.incognito;
 		options.tabId = tabId;
 		options.tabIndex = tab.index;
-		const processor = new (singlefile.lib.SingleFile.getClass({
-			fetch: singlefile.extension.lib.fetch.content.resources.fetch
-		}))(options);
-		await processor.run();
-		const pageData = await processor.getPageData();
+		const pageData = await singlefile.lib.getPageData(options, { fetch: singlefile.extension.lib.fetch.content.resources.fetch });
 		if (options.includeInfobar) {
 			await singlefile.common.ui.content.infobar.includeScript(pageData);
 		}

+ 9 - 1
lib/index.js

@@ -33,6 +33,14 @@ this.singlefile = this.singlefile || {
 			content: {}
 		},
 		vendor: {},
-		modules: {}
+		modules: {},
+		getPageData: async function (options = {}, classOptions) {
+			options.insertSingleFileComment = true;
+			options.insertFaviconLink = true;
+			const SingleFile = this.SingleFile.getClass(classOptions);
+			const singleFile = new SingleFile(options);
+			await singleFile.run();
+			return await singleFile.getPageData();
+		}
 	}
 };