-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Open
Description
Hi!
From extension all works perfectly.
My Java-wrapper around SingleFile and Selenium:
public class SingleFile {
public SingleFileConfiguration configuration;
private String getScript(String name) throws IOException {
File script = new File(name);
if (!script.exists()) {
FileUtils.copyURLToFile(new URL("https://raw.githubusercontent.com/gildas-lormeau/SingleFile/refs/heads/master/lib/" + name), script);
}
return FileUtils.readFileToString(script);
}
public String getSingleFileCallJs() {
return "let result = await singlefile.getPageData(" + this.configuration.toJson() + "); "
+ "return result.content;";
}
public void boostrap(SeleniumAbstract selenium) throws IOException {
HasCdp cdp = (HasCdp) selenium.getDriver();
Map map = new HashMap<String, String>();
map.put("source", "console.log('[SingleFile] ' + document.location.href);"
+ this.getScript("single-file-bootstrap.js")
+ this.getScript("single-file-hooks-frames.js")
+ this.getScript("single-file-frames.js")
);
cdp.executeCdpCommand("Page.addScriptToEvaluateOnNewDocument", map);
}
public void save(SeleniumAbstract selenium, File toFile) throws IOException, InterruptedException {
JavascriptExecutor jse = (JavascriptExecutor) selenium.getDriver();
jse.executeScript(this.getScript("single-file.js"));
String result = (String) jse.executeScript(this.getSingleFileCallJs());
FileUtils.writeStringToFile(toFile, result);
}
}And configuration (get it from extension configuration)
public class SingleFileConfiguration {
public String toJson() {
return """
{
"addProof": false,
"allowedBookmarkFolders": [],
"applySystemTheme": true,
"autoClose": false,
"autoOpenEditor": false,
"autoSaveDelay": 1,
"autoSaveDiscard": false,
"autoSaveExternalSave": false,
"autoSaveLoad": false,
"autoSaveLoadOrUnload": true,
"autoSaveRemove": false,
"autoSaveRepeat": false,
"autoSaveRepeatDelay": 10,
"autoSaveUnload": false,
"backgroundSave": true,
"blockAlternativeImages": true,
"blockAudios": true,
"blockFonts": false,
"blockImages": false,
"blockMixedContent": false,
"blockScripts": true,
"blockStylesheets": false,
"blockVideos": false,
"browserActionMenuEnabled": true,
"compressCSS": false,
"compressContent": false,
"compressHTML": true,
"confirmFilename": false,
"confirmInfobarContent": false,
"contextMenuEnabled": true,
"createRootDirectory": false,
"defaultEditorMode": "normal",
"delayBeforeProcessing": 0,
"displayInfobar": true,
"displayInfobarInEditor": false,
"displayStats": false,
"extractDataFromPage": true,
"forceWebAuthFlow": false,
"groupDuplicateImages": true,
"groupDuplicateStylesheets": false,
"ignoredBookmarkFolders": [],
"includeBOM": false,
"includeInfobar": false,
"infobarPositionAbsolute": false,
"infobarPositionBottom": "",
"infobarPositionLeft": "",
"infobarPositionRight": "16px",
"infobarPositionTop": "16px",
"infobarTemplate": "",
"insertEmbeddedImage": false,
"insertEmbeddedScreenshotImage": false,
"insertMetaCSP": true,
"insertMetaNoIndex": false,
"insertSingleFileComment": true,
"insertTextBody": false,
"loadDeferredImages": true,
"loadDeferredImagesBeforeFrames": false,
"loadDeferredImagesBlockCookies": false,
"loadDeferredImagesBlockStorage": false,
"loadDeferredImagesDispatchScrollEvent": false,
"loadDeferredImagesKeepZoomLevel": false,
"loadDeferredImagesMaxIdleTime": 1500,
"logsEnabled": true,
"maxResourceSize": 10,
"maxResourceSizeEnabled": false,
"maxSizeDuplicateImages": 524288,
"moveStylesInHead": false,
"networkTimeout": 0,
"openEditor": false,
"openInfobar": false,
"openSavedPage": false,
"passReferrerOnError": false,
"password": "",
"preventAppendedData": false,
"progressBarEnabled": true,
"removeAlternativeFonts": true,
"removeAlternativeImages": true,
"removeAlternativeMedias": true,
"removeFrames": false,
"removeHiddenElements": true,
"removeSavedDate": false,
"removeUnusedFonts": true,
"removeUnusedStyles": true,
"replaceBookmarkURL": true,
"replaceEmojisInFilename": false,
"resolveFragmentIdentifierURLs": false,
"resolveLinks": true,
"saveCreatedBookmarks": false,
"saveFavicon": true,
"saveFilenameTemplateData": false,
"saveOriginalURLs": false,
"saveRawPage": false,
"saveToClipboard": false,
"saveToDropbox": false,
"saveToGDrive": false,
"saveToGitHub": false,
"saveToRestFormApi": false,
"saveToRestFormApiFileFieldName": "",
"saveToRestFormApiToken": "",
"saveToRestFormApiUrl": "",
"saveToRestFormApiUrlFieldName": "",
"saveToS3": false,
"saveWithCompanion": false,
"saveWithWebDAV": false,
"selfExtractingArchive": true,
"shadowEnabled": true,
"sharePage": false,
"tabMenuEnabled": true,
"userScriptEnabled": false,
"warnUnsavedPage": true,
"woleetKey": ""
}""";
}
}Run it:
this.singleFile.boostrap(this.selenium);
this.selenium.driver.get("https://habr.com/ru/companies/ruvds/articles/848526/");
this.singleFile.save(selenium, pageLocal);Please, help!
Metadata
Metadata
Assignees
Labels
No labels
