// ==UserScript== // @name DownloadAllContent // @name:zh-CN 懒人小说下载器 // @name:zh-TW 懶人小説下載器 // @name:ja 怠惰者小説ダウンロードツール // @namespace hoothin // @version 0.6 // @description Fetch and download main content on current page // @description:zh-CN 通用网站内容抓取工具,可批量抓取小说、论坛内容等并保存为TXT文档 // @description:zh-TW 通用網站內容抓取工具,可批量抓取小說、論壇內容等並保存為TXT文檔 // @description:ja ユニバーサルサイトコンテンツクロールツール、クロール、フォーラム内容など // @author hoothin // @include * // @grant GM_xmlhttpRequest // @grant GM_registerMenuCommand // @require https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.3/FileSaver.min.js // @license MIT License // @compatible chrome // @compatible firefox // @compatible opera 未测试 // @compatible safari 未测试 // @contributionURL https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=rixixi@sina.com&item_name=Greasy+Fork+donation // @contributionAmount 1 // @downloadURL none // ==/UserScript== (function() { 'use strict'; var lang = navigator.appName=="Netscape"?navigator.language:navigator.userLanguage; var i18n={}; switch (lang){ case "zh-CN": i18n={ fetch:"开始下载小说或其他", info:"本文使用DownloadAllContent脚本下载" }; break; default: i18n={ fetch:"Download All Content", info:"The TXT is downloaded with 'DownloadAllContent'" }; break; } function indexDownload(aEles){ var rocketContent=document.createElement("div"); document.body.appendChild(rocketContent); rocketContent.outerHTML=`
`; var txtDownContent=document.querySelector("#txtDownContent"); var txtDownWords=document.querySelector("#txtDownWords"); var txtDownQuit=document.querySelector("#txtDownQuit"); txtDownQuit.onclick=function(){ txtDownContent.style.display="none"; txtDownContent.parentNode.removeChild(txtDownContent); }; var j=0,rCats=[]; function getDocEle(str){ var doc = null; try { doc = document.implementation.createHTMLDocument(''); doc.documentElement.innerHTML = str; } catch (e) { console.log('parse error'); } return doc; } function processDoc(i, aTag, doc){ j++; rCats[i]=(aTag.textContent+"\r\n"+getPageContent(doc)); txtDownContent.style.display="block"; txtDownWords.innerHTML="已下载完成 "+j+" 段,剩余 "+(aEles.length-j)+" 段"; if(j==aEles.length){ txtDownWords.innerHTML="已全部下载完成,共 "+j+" 段"; var blob = new Blob([i18n.info+"\r\n"+document.title+"\r\n\r\n"+rCats.join("\r\n\r\n")], {type: "text/plain;charset=utf-8"}); saveAs(blob, document.title+".txt"); } } for(let i=0;i