轻小说文库下载

在书籍目录页添加下载链接,并优化部分小说的在线阅读功能(插图章节的单独处理)

目前為 2020-07-23 提交的版本,檢視 最新版本

// ==UserScript==
// @name         轻小说文库下载
// @namespace    wenku8Haoa
// @version      1.1
// @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
// ==/UserScript==

(function() {
    'use strict';
    //格式化图片
    var imgFormat = function(txt){
        let imgResultRoot = $('<div></div>');

        let imgRoot = $('<div></div>').html(txt);
        $('.divimage',imgRoot).each(function(){
                let jqthis = $(this);
                let imgURL = jqthis.attr('title');//取得图片url
                let itemEle = $('<div class="divimage"><a target="_blank"><img border="0" class="imagecontent" /></a></div>');
                $('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 = $('<div></div>');
        
        let strRoot = $('<div></div>').html(htmlStr);
        $('.chaptertitle',strRoot).each(function(){
                let jqthis = $(this);
                let cTitle = jqthis.text();//取得章节名
                let itemEle = $('<div style="background-color:silver" id="title"></div>');
                itemEle.text(cTitle);
                resultRoot.append(itemEle);
                resultRoot.append('<br />');
                let nextHtml = jqthis.next().html();
                if(-1 != cTitle.indexOf('插图')){
                    nextHtml = imgFormat(nextHtml);
                }
                resultRoot.append(nextHtml);
                resultRoot.append('<br /><br />');
        });
        
        
        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 = '<a href="'+allDLink+'">&nbsp;&nbsp;全本下载(utf-8)</a>';
        $('#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 = '<a href="'+dlink+'">&nbsp;&nbsp;下载(utf-8)</a>'
            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{
                            $('#content').text('下载失败');
                        }
                    },
            });
        }
    }
    // Your code here...
})();