// ==UserScript==
// @name 轻小说文库下载
// @namespace wenku8Haoa
// @version 1.0
// @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();
}
//目录页面或内容会声明章节变量。
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('正在下载,请稍候...');
let chapterTitle = $('#title').text();
//标题含有"插图"则判定为插图章节
if(-1 != chapterTitle.indexOf('插图')){
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"){
let formatImg = imgFormat(response.responseText);
$('#content').html(formatImg);
}else{
$('#content').text('下载失败');
}
},
});
}else{
let 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);
//$('#content').text(response.responseText);
}else{
$('#content').text('下载失败');
}
},
});
}
}
}
// Your code here...
})();