NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name 新御书屋 // @namespace http://tampermonkey.net/ // @version 0.1 // @license MIT // @description try to take over the world! // @author You // @match http://www.xinyushuwu.com/* // @grant none // ==/UserScript== (function() { 'use strict'; var script = document.createElement("script"); script.type = "text/javascript"; script.src = "http://libs.baidu.com/jquery/2.0.0/jquery.min.js"; script.onload = function(){ var $ = window.$; var chapters = $('.ml_list a[href]'); window.passage = $('<div id="ppppp"></div>'); window.errs = $('<div style="color:red"></div>'); window.loadInterval = $('<input type="text" value="0"></input>'); window.loadPassage = $('<button style="margin-right:20px">读取全文</button>'); window.download = $('<button disabled>下载</button>'); window.copy = $('<button disabled>复制</button>'); window.copy.click(function(){ selectText(window.passage[0]); document.execCommand("copy"); }); window.loadPassage.click(async function(){ window.output = new Array(chapters.length); let promises = [] function one(i, o){ let p = new Promise((resolver)=>{ console.log($(o).attr('href')) $.ajax({ type: "get", url:$(o).attr('href'), beforeSend: function(xhr){ xhr.overrideMimeType("text/csv;charset=gb2312"); }, success: function(xmlDoc, textStatus){ if(textStatus == 'success') { var title = "<br/>第"+(i+1)+"章:"+$(o).html()+"<br/>"; window.output[i] = title + $(xmlDoc).find('#articlecontent').html(); window.passage.html(window.output.join('').trim()); resolver() } }, error: function(){ var title = "章节:"+$(o).html(); window.errs.html(title + " 加载错误!<br/>" + window.errs.html() ); resolver() }, timeout: i*window.loadInterval.val() }); }) return p //promises.push(p) } let i = 0 for(let c of chapters.toArray()){ await one(i, c) i++ } //await Promise.all(promises) window.copy[0].disabled = false window.download[0].disabled = false var audio = new Audio('http://fjdx.sc.chinaz.net/Files/DownLoad/sound1/201903/11250.wav'); audio.play(); }); window.download.click(function(){ function download(filename, data) { var blob = new Blob([data.replace(/([^\r])\n/g, "$1\r\n")], {type: 'text/plain'}); if(window.navigator.msSaveOrOpenBlob) { window.navigator.msSaveBlob(blob, filename); } else{ var elem = window.document.createElement('a'); elem.href = window.URL.createObjectURL(blob); elem.download = filename; document.body.appendChild(elem); elem.click(); document.body.removeChild(elem); } } let title = $('.introduce h1').text() download(title+'____.txt',window.passage[0].innerText) }) function selectText(divid) { var div; if (document.selection) { div = document.body.createTextRange(); div.moveToElementText(divid); div.select(); } else { div = document.createRange(); div.setStartBefore(divid); div.setEndAfter(divid) ; window.getSelection().removeAllRanges(); window.getSelection().addRange(div); } } $('.main').append(window.loadInterval); $('.main').append(window.loadPassage); $('.main').append(window.download); $('.main').append(window.copy); $('.main').append(window.errs); $('.main').append(window.passage); }; document.body.appendChild(script); })();