소스 검색

added singlefile.lib.getPageData method

Former-commit-id: 5eb5477f1140100e6b376c310312cf914f0539bd
Gildas 6 년 전
부모
커밋
f0e022fb2c
6개의 변경된 파일16개의 추가작업 그리고 34개의 파일을 삭제
  1. 1 6
      cli/back-ends/jsdom.js
  2. 1 6
      cli/back-ends/puppeteer.js
  3. 2 7
      cli/back-ends/webdriver-chromium.js
  4. 2 7
      cli/back-ends/webdriver-gecko.js
  5. 1 7
      extension/core/bg/autosave.js
  6. 9 1
      lib/index.js

+ 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();
+		}
 	}
 };