// ==UserScript==
// @name 轻小说文库下载
// @namespace wenku8Haoa
// @version 1.2
// @description 在书籍目录页添加下载链接,并优化部分小说的在线阅读功能(插图章节的单独处理)
// @author HaoaW
// @match https://www.wenku8.net/*
// @match http://www.wenku8.net/*
// @connect dl.wenku8.com
// @require http://code.jquery.com/jquery-3.5.1.min.js
// @grant GM_xmlhttpRequest
// @downloadURL none
// ==/UserScript==
(function() {
'use strict';
//替换所有
String.prototype.replaceAll= function(exp,newStr){
return this.replace(new RegExp(exp,"gm"),newStr);
};
//标记含有html代码的行
var htmlLine = function(txt){
return 'c1ef6520'+ txt +'1a5219e9b2b0';
};
//格式化内容
var contentFormat = function(txt){
//设置章节名样式
let txtTmp = txt.replaceAll(/^ {2}\S+.*$/,
function(match){
return htmlLine('
'+ match.trim() +'
');
}
);
txtTmp = $('').text(txtTmp).html();
txtTmp = txtTmp.replaceAll(/ /,' ');
txtTmp = txtTmp.replaceAll(/(c1ef6520).*(1a5219e9b2b0)/,
function(match){
return $('').html(match.replaceAll(/( )/,' ').replace('c1ef6520','').replace('1a5219e9b2b0','')).text();
}
);
txtTmp = txtTmp.replaceAll(/[\r\n]+/,'
');
return txtTmp;
};
//格式化图片
var imgFormat = function(txt){
let imgResultRoot = $('');
let imgRoot = $('').html(txt);
$('.divimage',imgRoot).each(function(){
let jqthis = $(this);
let imgURL = jqthis.attr('title');//取得图片url
let itemEle = $('');
$('a',itemEle).attr('href',imgURL);
$('img',itemEle).attr('src',imgURL);
imgResultRoot.append(itemEle);
});
return imgResultRoot.html();
}
//格式化从pack.php下载的带有Html的内容
var htmlFormat = function(htmlStr){
let resultRoot = $('');
let strRoot = $('').html(htmlStr);
$('.chaptertitle',strRoot).each(function(){
let jqthis = $(this);
let cTitle = jqthis.text();//取得章节名
let itemEle = $('');
itemEle.text(cTitle);
resultRoot.append(itemEle);
resultRoot.append('
');
let nextHtml = jqthis.next().html();
if(-1 != cTitle.indexOf('插图')){
nextHtml = imgFormat(nextHtml);
}
resultRoot.append(nextHtml);
resultRoot.append('
');
});
return resultRoot.html();
}
//目录或内容页面会声明章节变量。
if('undefined' == typeof chapter_id || undefined===chapter_id) return;
//本书编号 article_id
//目录页面章节id定义为 '0'
if('0' == chapter_id){//在章节名之后添加下载链接
//书名
let aname = $('#title').text();
//添加全本下载链接
let allDLink = 'http://dl.wenku8.com/down.php?type=utf8&id='+article_id+'&fname='+aname;
let allaEle = ' 全本下载(utf-8)';
$('#title').append(allaEle);
$('.vcss').each(function(){
let jqthis = $(this);
let vname = jqthis.text();
let nextChapter = jqthis.parent().next().children().first();
let vid = $('a',nextChapter).attr('href').split('.')[0];
//vid = (Number(vid)-1).toString();//部分文章无法使用章节减1来下载,直接使用章节可以下载(下载内容使用-1时章节名包含小说名,不-1不包含小说名)
let dlink = 'http://dl.wenku8.com/packtxt.php?aid='+article_id+
'&vid='+vid+'&aname='+aname+'&vname='+vname+'&charset=utf-8';
let aEle = ' 下载(utf-8)'
jqthis.append(aEle);
});
return;
}
if('0' != chapter_id){//内容页面
//如果包含一个内容为 'null'的span则判定为版权限制
if($('#contentmain span').first().text().trim() == 'null'){
//设置下一页和上一页快捷键到目录页
preview_page = next_page = index_page;
$('#content').text('正在下载,请稍候...');
//下载带有Html标记的内容
let dlink = 'http://dl.wenku8.com/pack.php?aid='+article_id+
'&vid='+chapter_id;
GM_xmlhttpRequest({
method :'GET',
url :dlink,
onload :function(response){
if(response.statusText == "OK"){
var formatHtml = htmlFormat(response.responseText);
$('#content').html(formatHtml);
}else{//html下载可能会失败,使用下载文本的方法来下载
if(-1 != $('#title').text().indexOf('插图')){
$('#content').text('无法获取插图');
}else{
dlink = 'http://dl.wenku8.com/packtxt.php?aid='+article_id+
'&vid='+chapter_id;
GM_xmlhttpRequest({
method :'GET',
url :dlink,
onload :function(response){
if(response.statusText == "OK"){
let formatTxt = contentFormat(response.responseText);
$('#content').html(formatTxt);
}else{
$('#content').text('下载失败');
}
},
});
}
}
},
});
}
}
// Your code here...
})();