番茄小说阅读辅助器

可以下载番茄小说内容,记录阅读位置(滚动位置),可以自动滚动,超好用!

目前为 2025-01-04 提交的版本。查看 最新版本

// ==UserScript==
// @name         番茄小说阅读辅助器
// @namespace    http://tampermonkey.net/
// @version      1.510
// @description  可以下载番茄小说内容,记录阅读位置(滚动位置),可以自动滚动,超好用!
// @author       twjx
// @match        *://fanqienovel.com/*
// @require      https://cdn.jsdelivr.net/npm/[email protected]
// @license GNU AGPLv3
// @resource       swalStyle https://unpkg.com/[email protected]/dist/sweetalert2.min.css
// @icon         data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE4Ljg3MjcgMEg1LjEyNzI3QzIuMjkwOTEgMCAwIDIuMjkwOTEgMCA1LjEyNzI3VjE4Ljg3MjdDMCAyMS43MDkxIDIuMjkwOTEgMjQgNS4xMjcyNyAyNEgxOC44NzI3QzIxLjcwOTEgMjQgMjQgMjEuNzA5MSAyNCAxOC44NzI3VjUuMTI3MjdDMjQgMi4yOTA5MSAyMS43MDkxIDAgMTguODcyNyAwWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjEyNzI3IDBIMTguODcyN0MyMS43MDkxIDAgMjQgMi4yOTA5MSAyNCA1LjEyNzI3VjE4Ljg3MjdDMjQgMjEuNzA5MSAyMS43MDkxIDI0IDE4Ljg3MjcgMjRINS4xMjcyN0MyLjI5MDkxIDI0IDAgMjEuNzA5MSAwIDE4Ljg3MjdWNS4xMjcyN0MwIDIuMjkwOTEgMi4yOTA5MSAwIDUuMTI3MjcgMFpNMjMuNDc1NyA1LjEyNzI3QzIzLjQ3NTcgMi41OTYzNiAyMS40MDMgMC41MjM2MzYgMTguODcyIDAuNTIzNjM2SDUuMTI2NTlDMi41OTU2OCAwLjUyMzYzNiAwLjUyMjk0OSAyLjU5NjM2IDAuNTIyOTQ5IDUuMTI3MjdWMTguODcyN0MwLjUyMjk0OSAyMS40MDM2IDIuNTk1NjggMjMuNDc2NCA1LjEyNjU5IDIzLjQ3NjRIMTguODcyQzIxLjQwMyAyMy40NzY0IDIzLjQ3NTcgMjEuNDAzNiAyMy40NzU3IDE4Ljg3MjdWNS4xMjcyN1oiIGZpbGw9IiNFNkU2RTYiLz4KPHBhdGggZD0iTTE1LjA3NjIgMFY1LjA0TDE3LjAxOCAzLjkyNzI3TDE4Ljk1OTggNS4wNFYwSDE1LjA3NjJaIiBmaWxsPSIjRUU1NTI4Ii8+CjxwYXRoIGQ9Ik0yNCAxMy45NjM2QzIxLjI1MDkgMTAuNjkwOCAxNi45MDkxIDguNTc0NDYgMTIuMDIxOCA4LjU3NDQ2QzcuMDkwOTEgOC41NzQ0NiAyLjcyNzI3IDEwLjcxMjYgMCAxNC4wMjlWMTguODcyNkMwIDIxLjcwOSAyLjI5MDkxIDIzLjk5OTkgNS4xMjcyNyAyMy45OTk5SDE4Ljg3MjdDMjEuNzA5MSAyMy45OTk5IDI0IDIxLjcwOSAyNCAxOC44NzI2VjEzLjk2MzZaIiBmaWxsPSJ1cmwoI3BhaW50MF9yYWRpYWxfNjA3XzEyNTA1KSIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEyLjc4NTYgMTMuODk4MkMxMi43NjM4IDEzLjAwMzcgMTIuNDE0NyAxMi41ODkxIDEyLjAwMDIgMTIuNTg5MUMxMS41NjM4IDEyLjYxMDkgMTEuMjM2NSAxMy4wMjU1IDExLjI1ODQgMTMuODk4MkMxMS4yNTg0IDE0LjgxNDYgMTIuMDQzOCAxNS44NjE4IDEyLjA0MzggMTUuODYxOEMxMi4wNDM4IDE1Ljg2MTggMTIuNzg1NiAxNC44MTQ2IDEyLjc4NTYgMTMuODk4MlpNNi4zNDk0NiAxOC42NzYzQzcuMjY1ODMgMTguNjc2MyA4LjMxMzEgMTkuNDE4MSA4LjMxMzEgMTkuNDE4MUM4LjMxMzEgMTkuNDE4MSA3LjI2NTgzIDIwLjIwMzUgNi4zNDk0NiAyMC4yMDM1QzUuNDMzMSAyMC4yMDM1IDUuMDE4NTUgMTkuODc2MyA1LjAxODU1IDE5LjQzOTlDNS4wNDAzNyAxOS4wNDcyIDUuNDU0OTIgMTguNjk4MSA2LjM0OTQ2IDE4LjY3NjNaTTE4Ljk2MSAxOS40NjE5QzE4Ljk2MSAxOS44NzY0IDE4LjU0NjUgMjAuMjI1NSAxNy42MzAxIDIwLjIyNTVDMTYuNzEzOCAyMC4yMjU1IDE1LjY2NjUgMTkuNDQwMSAxNS42NjY1IDE5LjQ0MDFDMTUuNjY2NSAxOS40NDAxIDE2LjczNTYgMTguNjc2NCAxNy42MzAxIDE4LjY5ODJDMTguNTQ2NSAxOC42OTgyIDE4Ljk2MSAxOS4wMjU1IDE4Ljk2MSAxOS40NjE5Wk0xNy4zMDIyIDE0Ljg1ODFDMTcuNjA3NiAxNS4xNjM1IDE3LjU0MjIgMTUuNjg3MiAxNi44ODc2IDE2LjM0MTdDMTYuMjMzMSAxNi45NzQ1IDE0Ljk0NTggMTcuMTcwOCAxNC45NDU4IDE3LjE3MDhDMTQuOTQ1OCAxNy4xNzA4IDE1LjE2NCAxNS44ODM1IDE1LjgxODUgMTUuMjUwOEMxNi40NzMxIDE0LjU5NjMgMTcuMDE4NSAxNC41NTI2IDE3LjMwMjIgMTQuODU4MVpNOS4wNTU2NCAxNy4xNDkyQzkuMDU1NjQgMTcuMTQ5MiA4LjgzNzQ2IDE1Ljg2MiA4LjE4MjkxIDE1LjIyOTJDNy41MjgzNiAxNC41OTY1IDYuOTgyOTEgMTQuNTUyOSA2LjY5OTI3IDE0LjgzNjVDNi40MTU2NCAxNS4xNDIgNi40NTkyNyAxNS42ODc0IDcuMTEzODIgMTYuMzIwMUM3Ljc2ODM2IDE2Ljk1MjkgOS4wNTU2NCAxNy4xNDkyIDkuMDU1NjQgMTcuMTQ5MloiIGZpbGw9IndoaXRlIi8+CjxkZWZzPgo8cmFkaWFsR3JhZGllbnQgaWQ9InBhaW50MF9yYWRpYWxfNjA3XzEyNTA1IiBjeD0iMCIgY3k9IjAiIHI9IjEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDEyLjA5ODkgMjQuMjEyKSBzY2FsZSgxNC41OTg0IDkuMzgyNzcpIj4KPHN0b3Agc3RvcC1jb2xvcj0iI0NDMDUwMCIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNGRjVGMDAiLz4KPC9yYWRpYWxHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    window.data=''
    window.num=0
    window.alldata=[]
    window.onstop=false
    window.movep=[]
    window.img=[]
    window.thedata
    window.unicode_data = { '58670':'0', '58413':'1', '58678':'2', '58371':'3', '58353':'4', '58480':'5', '58359':'6', '58449':'7', '58540':'8',
 '58692':'9', '58712':'a', '58542':'b', '58575':'c', '58626':'d', '58691':'e', '58561':'f', '58362':'g', '58619':'h', '58430':'i', '58531':'j', '58588':'k',
 '58440':'l', '58681':'m', '58631':'n', '58376':'o', '58429':'p', '58555':'q', '58498':'r', '58518':'s', '58453':'t', '58397':'u', '58356':'v', '58435':'w',
 '58514':'x', '58482':'y', '58529':'z', '58515':'A', '58688':'B', '58709':'C', '58344':'D', '58656':'E', '58381':'F', '58576':'G', '58516':'H', '58463':'I',
 '58649':'J', '58571':'K', '58558':'L', '58433':'M', '58517':'N', '58387':'O', '58687':'P', '58537':'Q', '58541':'R', '58458':'S', '58390':'T', '58466':'U',
 '58386':'V', '58697':'W', '58519':'X', '58511':'Y', '58634':'Z', '58611':'的', '58590':'一', '58398':'是', '58422':'了', '58657':'我', '58666':'不', '58562':'人',
 '58345':'在', '58510':'他', '58496':'有', '58654':'这', '58441':'个', '58493':'上', '58714':'们', '58618':'来', '58528':'到', '58403':'大', '58461':'地', '58481':'为',
 '58700':'子', '58708':'中', '58503':'你', '58442':'说', '58639':'生', '58506':'国', '58663':'年', '58436':'着', '58563':'就', '58391':'那', '58357':'和', '58354':'要',
 '58695':'她', '58372':'出', '58696':'也', '58551':'得', '58445':'里', '58408':'后', '58599':'自', '58424':'以', '58394':'会', '58348':'家', '58426':'可', '58673':'下',
 '58417':'而', '58556':'过', '58603':'天', '58565':'去', '58604':'能', '58522':'对', '58632':'小', '58622':'多', '58350':'然', '58605':'于', '58617':'心', '58401':'学',
 '58637':'么', '58684':'之', '58382':'都', '58464':'好', '58487':'看', '58693':'起', '58608':'发', '58392':'当', '58474':'没', '58601':'成', '58355':'只', '58573':'如',
 '58499':'事', '58469':'把', '58361':'还', '58698':'用', '58489':'第', '58711':'样', '58457':'道', '58635':'想', '58492':'作', '58647':'种', '58623':'开', '58521':'美',
 '58609':'总', '58530':'从', '58665':'无', '58652':'情', '58676':'己', '58456':'面', '58581':'最', '58509':'女', '58488':'但', '58363':'现', '58685':'前', '58396':'些',
 '58523':'所', '58471':'同', '58485':'日', '58613':'手', '58533':'又', '58589':'行', '58527':'意', '58593':'动', '58699':'方', '58707':'期', '58414':'它', '58596':'头',
 '58570':'经', '58660':'长', '58364':'儿', '58526':'回', '58501':'位', '58638':'分', '58404':'爱', '58677':'老', '58535':'因', '58629':'很', '58577':'给',/*58577原为'绘'*/ '58606':'名',/*58606原为'多'*/
 '58497':'法', '58662':'间', '58479':'斯', '58532':'知', '58380':'世', '58385':'什', '58405':'两', '58644':'次', '58578':'使', '58505':'身', '58564':'者', '58412':'被',
 '58686':'高', '58624':'已', '58667':'亲', '58607':'其', '58616':'进', '58368':'此', '58427':'话', '58423':'常', '58633':'与', '58525':'活', '58543':'正', '58418':'感',
 '58597':'见', '58683':'明', '58507':'问', '58621':'力', '58703':'理', '58438':'尔', '58536':'点'/*58536原为'占'*/, '58384':'文', '58484':'几', '58539':'定', '58554':'木', '58421':'公',
 '58347':'特', '58569':'做', '58710':'外', '58574':'孩', '58375':'相', '58645':'西', '58592':'果', '58572':'走', '58388':'将', '58370':'月', '58399':'十', '58651':'实',
'58546':'向', '58504':'声', '58419':'车', '58407':'全', '58672':'信', '58675':'重', '58538':'三', '58465':'机', '58374':'工', '58579':'物', '58402':'气', '58702':'每',
 '58553':'并', '58360':'别', '58389':'真', '58560':'打', '58690':'太', '58473':'新', '58512':'比', '58653':'才', '58704':'便', '58545':'夫', '58641':'再', '58475':'书',
 '58583':'部', '58472':'水', '58478':'像', '58664':'眼', '58586':'等', '58568':'体', '58674':'却', '58490':'加', '58476':'电', '58346':'主', '58630':'界', '58595':'门',
'58502':'利', '58713':'海', '58587':'受', '58548':'听', '58351':'表', '58547':'德', '58443':'少', '58460':'克', '58636':'代', '58585':'员', '58625':'许', '58694':'稜',
 '58428':'先', '58640':'口', '58628':'由', '58612':'死', '58446':'安', '58468':'写', '58410':'性', '58508':'马', '58594':'光', '58483':'白', '58544':'或', '58495':'住',
 '58450':'难', '58643':'望', '58486':'教', '58406':'命', '58447':'花', '58669':'结', '58415':'乐', '58444':'色', '58549':'更', '58494':'拉', '58409':'东', '58658':'神',
 '58557':'记', '58602':'处', '58559':'让', '58610':'母', '58513':'父', '58500':'应', '58378':'直', '58680':'字', '58352':'场', '58383':'平', '58454':'报', '58671':'友',
'58668':'关', '58452':'放', '58627':'至', '58400':'张', '58455':'认', '58416':'接', '58552':'告', '58614':'入', '58582':'笑', '58534':'内', '58701':'英', '58349':'军',
 '58491':'候', '58467':'民', '58365':'岁', '58598':'往', '58425':'何', '58462':'度', '58420':'山', '58661':'觉', '58615':'路', '58648':'带', '58470':'万', '58377':'男',
 '58520':'边', '58646':'风', '58600':'解', '58431':'叫', '58715':'任', '58524':'金', '58439':'快', '58566':'原', '58477':'吃', '58642':'妈', '58437':'变', '58411':'通',
 '58451':'师', '58395':'立', '58369':'象', '58706':'数', '58705':'四', '58379':'失', '58567':'满', '58373':'战', '58448':'远', '58659':'格', '58434':'士', '58679':'音',
 '58432':'轻', '58689':'目', '58591':'条', '58682':'呢', }
async function sleep(ms){
    return new Promise(resolve => setTimeout(resolve, ms));
}
function xml(type, src,idata,num,num1,aa) {
    const xhr = new XMLHttpRequest();
    xhr.open(type, src);
    xhr.overrideMimeType('text/plain; charset=utf-8');
    xhr.onload = function () {
        if (xhr.status === 200) {
                const responseText = xhr.responseText;
                let content = responseText.split('content noselect"><div>')[1]
                    .split('</div><p></p>')[0]
                    .replaceAll('<p>', '')
                    .replaceAll('</p>', '\n');
                var decoded = decode(content);
                var text=find_img(decoded)
                if(text!==false){
                var f=decoded.split('<div data-fanqie-type="image" ')
                var textd=''
                for(let x of f){
                   if(x.startsWith('source')){
                    textd+='\n此处有一张图片已去除,请于下载配套中查看\n名称:'+x.split('1">')[2].split('\n')[0]+'\n'+x.split('</div>')[1]
                    }else textd+=x
                }
                    for(let x=0;x<text.length;x++){
                       img.push({
                        chapter:responseText.split('<title>')[1].split('在线免费阅读_番茄小说官网<')[0].split(' ')[0].split('第')[1].replace('章',''),
                        chapter1:num1,
                        chapter2:num,
                        name:responseText.split('<title>')[1].split('在线免费阅读_番茄小说官网<')[0].split(' ')[1],
                        src:text[x][1],
                        title:text[x][0],
                    })
                    }
                    decoded=textd
                }
                idata.data.push({
                    chapter:responseText.split('<title>')[1].split('在线免费阅读_番茄小说官网<')[0].split(' ')[0].split('第')[1].replace('章',''),
                    chapter1:num1,
                    chapter2:num,
                    name:responseText.split('<title>')[1].split('在线免费阅读_番茄小说官网<')[0].split(' ')[1],
                    data:decoded,
                })
                if(decoded==undefined){onstop=true;window.d={a:responseText,b:decoded,c:text,d:textd}}
                console.log(aa+' 机改1:'+num1+' 机改2:'+num+'下载完成')
        }
    };
    xhr.send();
}

function decode(content) {
    var newdata = '';
    for (let x of content) {
        if (String(x).charCodeAt(0) in unicode_data == true) {
            newdata += unicode_data[String(x).charCodeAt(0)];
        } else {
            newdata += String(x);
        }
    }
    return newdata;
}
async function dispose(children,type){
    if(onstop==true)return;
    var jdata=children.children[0].innerHTML.split('<span class="volume-dot"></span>')
    var num=1
    alldata.push({
        name:jdata[0],
        volume:jdata[0],
        allchapter:jdata[1],
        data:[]})
        console.log('卷创建完毕')
    for(let x of children.children[1].children){
        if(onstop==true)return;
        xml('GET',x.children[0].href,alldata[alldata.length-1],num,num1,x.innerText.split(' ')[0])
        num+=1
        num1+=1
        await sleep(150)
    }
}
function find_img(text){
    if(text.includes('<div data-fanqie-type="image" ')){
        var returntext=[]
        var texta=text.split('<div data-fanqie-type="image" ')
        for(let x of texta){
            if(x.startsWith('source="')){
            var textb=x.split('Desc" group')
            returntext[texta.indexOf(x)-1]=[textb[1].split('\n')[0].split('>')[1],textb[0].split('<img src="')[1].split('" width="')[0]]
            }
        }
        return returntext
    }else return false
}
    function download(name, text,type) {
        var dld = document.createElement('a');
        dld.setAttribute('href', 'data:text/plain;charset=utf-8,'+encodeURIComponent(text));

        dld.setAttribute('download', name);
        dld.click();
    }
    async function downloadd(type){
        data=''
        console.log('正在排序...')
            window.d=0
            for(let x=0;x<alldata.length;x++){
                data+=alldata[x].name+' '+alldata[x].allchapter+'\n'
                for(let x1=0;x1<alldata[x].data.length;x1++){
                    d+=1
                    for(let x2 of alldata[x].data){
                        if(x2.chapter1==d){
                            data+='第'+[x2.chapter,x2.chapter1,x2.chapter2][type]+'章 '+x2.name+'\n'+x2.data
                        }
                    }
                }
            }
            download(window.__INITIAL_STATE__.page.bookName,window.__INITIAL_STATE__.page.bookName+"\n此文件由番茄小说阅读辅助器下载https://gf.qytechs.cn/zh-CN/scripts/521377-番茄小说阅读辅助器\n请支持正版番茄小说\n作者:"+window.__INITIAL_STATE__.page.author+'\n'+data,'text')
        alert('下载完成')
        /*var imgtext=''
        for(let x of img){
            imgtext+='图片名称'+x.title+' 来自章节 第'+[x.chapter,x.chapter1,x.chapter2][type]+'章 '+x.name+'\n'
            download(x.title,x.src,'img')
        }*/
        await sleep(100)
        //download(window.__INITIAL_STATE__.page.bookName,window.__INITIAL_STATE__.page.bookName+' 图片来源',imgtext,'text')
        gui.domElement.children[1].children[0].children[1].children[2].remove()
        await sleep(1000)
        data=''
        alldata=[]
    }
    function move(){//移动模块
        var guid=gui.domElement
        gui.domElement.children[0].onmousedown=function(e) {
            if(guid.style.left==''){
                movep=[e.clientX-(window.innerWidth-275),e.clientY-0]//首次移动
            }else{
                movep=[e.clientX-Number(guid.style.left.replace('px','')),e.clientY-Number(guid.style.top.replace('px',''))]
            }
            window.onmove=true
        }
        document.onmouseup=function(e) {
            if(Number(guid.style.left.replace('px',''))<0)guid.style.left='0px';
            if(Number(guid.style.top.replace('px',''))<0)guid.style.top='0px';
            if(Number(gui.domElement.style.left.replace('px',''))+260>=windowWidth){
                gui.domElement.style.left=(windowWidth-260)+'px'
            }
            movep=[]
            window.onmove=false
        }
        document.onmousemove=function(e){
            if(window.onmove==true){
                guid.style.top=e.clientY-movep[1]+'px';
                guid.style.left=e.clientX-movep[0]+'px'
            }
        }
        guid.onmouseover=function(){
            if(!guid.children[0].innerText.includes('右'))guid.children[0].innerText+=' (右键可移动)';
        }
        guid.onmouseout=function(){
            guid.children[0].innerText='番茄阅读辅助器'
        }
    }
    window.reader={
        record:async function(){//记录阅读位置
            window.time=String(new Date).split(' ')
            var datax=thedata.read.read_record.filter(e=>e.chapterid==location.pathname.split('/')[2])
            if(datax.length==1){
                 //回忆了以前的知识
                if(thescroll.scrollTop==0){await sleep(500)}
                Object.assign(thedata.read.read_record.filter(e=>e.chapterid==location.pathname.split('/')[2])[0],{
                    date:{
                        year:time[3],
                        month:time[2],
                        time:time[4],
                        area:time[6],
                    },
                    chapterName:document.querySelector('.muye-reader-title').innerText,
                    chapterid:location.pathname.split('/')[2],
                    scrolltop:thescroll.scrollTop,
                })
            }else if(datax.length==0){
                thedata.read.read_record.push({
                    date:{
                        year:time[3],
                        month:time[2],
                        time:time[4],
                        area:time[6],
                    },
                    bookName:document.querySelector('.muye-reader-nav-title').innerText,
                    chapterName:document.querySelector('.muye-reader-title').innerText,
                    chapterid:location.pathname.split('/')[2],
                    scrolltop:thescroll.scrollTop,
                })
            }
        },
        onload:function(){//加载阅读位置
            if(thedata.read.read_record.filter(e=>e.chapterid==location.pathname.split('/')[2]).length==1){
                thescroll.scrollTop=thedata.read.read_record.filter(e=>e.chapterid==location.pathname.split('/')[2])[0].scrolltop
                console.log('记录加载')
            }
        },
        scroll:{
            load:function(theparent){
                this.scrollInterval;
                this.scrollStatus = theparent.add({ status: '已停止' }, 'status').name('滚动状态');
                this.scrollStatus.domElement.style.color = 'red';
                this.scrollSpeed = theparent.add({ speed: 1 }, 'speed').name('滚动速度');
                this.scrollSpeed.setValue(thedata.read.scroll_speed)
                this.scrollSpeedsave = theparent.add({ speedsave: false }, 'speedsave').name('保存速度').onChange(function(value) {
                    if (value==true) {
                        thedata.read.scroll_speed=reader.scroll.scrollSpeed.getValue()
                        console.log('保存速度:'+thedata.read.scroll_speed)
                        fqxsydqdata.savedata()
                    }
                });
                this.stopButton = theparent.add(this, 'start').name('开始自动滚动');
            },
            autoScroll:function() {
                if (thescroll.scrollTop >= thescroll.scrollHeight - thescroll.clientHeight) {
                    console.log('滚动以至底部')
                    window.reader.scroll.stopAutoScroll();
                }else{
                    thescroll.scrollTop += Math.round(reader.scroll.scrollSpeed.getValue())
                }
            },
            startAutoScroll:function() {
                this.scrollInterval = setInterval(this.autoScroll, 200);
                this.scrollStatus.setValue('进行中');
                this.stopButton.name('停止自动滚动');
                this.scrollStatus.domElement.style.color = 'green';
            },
            stopAutoScroll:function() {
                clearInterval(this.scrollInterval);
                this.scrollStatus.setValue('已停止');
                this.stopButton.name('开始自动滚动');
                this.scrollStatus.domElement.style.color = 'red';
            },
            "start":()=>{
                var x=reader.scroll
                if(x.scrollStatus.getValue()=='已停止'){
                    if(String(Number(x.scrollSpeed.getValue()))=='NaN'){
                        alert('滚动速度输入非数字')
                        return
                    }
                    if(x.scrollSpeed.getValue()>=1000){
                        alert('滚动速度输入过大\n如有需要请在脚本后台修改上限\n如有错误作者概不负责')
                        return
                    }
                    console.log('滚动速度:'+Math.round(x.scrollSpeed.getValue()))
                    x.startAutoScroll();
                }else{
                    x.stopAutoScroll();
                }
            }
        }
    }
    window.fqxsydqdata={
        getdata:function(){
            if(!localStorage.fqxsydq){
                window.thedata={
                    name:'番茄阅读辅助器',
                    version:'1.340',
                    read:{
                        read_record:[],
                        last_read:{},
                        scroll_speed:1,
                    },
                    download:{

                    },
                }
                localStorage.fqxsydq=JSON.stringify(thedata)
            }else{
                window.thedata=JSON.parse(localStorage.fqxsydq)
            }
        },
        savedata:function(){
            localStorage.fqxsydq=JSON.stringify(thedata)
        },
    }
    window.q=function(){
        alert('原版:下载原版章节\n机翻1:下载机翻1章节\n机翻2:下载机翻2章节\n机翻1效果如下\n第一卷\n第1章\n第2章\n......\n第二卷\n第100章...\n机翻2\n第一卷\n第1章\n第2章\n......\n第二卷\n第1章')
    }
    var main = {
        "copybook" : async()=>{
            data=''
            img=[]
            console.log('下载模式:'+document.querySelectorAll('.widget')[1].children[0].value)
            var type=['原版','机改1','机改2'].indexOf(document.querySelectorAll('.widget')[1].children[0].value)
            page1.add(main,'stop').name('暂停下载')
            alert('请等待提示,现开始复制\n可通过控制台查看进度')
            globalThis.a=document.querySelector('.page-directory-content')
            globalThis.num1=1
            for(let x of a.children){
                if(onstop==true)return;
                await dispose(x,'computer')
                await sleep(150)
            }
           await downloadd(type)
        },
        "a":1,
        "stop":async()=>{
            onstop=true
            alert('已暂停')
            gui.domElement.children[1].children[0].children[1].children[2].innerText='已暂停'
            await sleep(5000)
            gui.domElement.children[1].children[0].children[1].children[2].remove()
        },
        "setting":1,
    };
    window.gui = new lil.GUI({ title: '番茄阅读辅助器' });
    window.gui.domElement.style.userSelect = 'none';
    move()
    fqxsydqdata.getdata()
    if(location.href.includes('force_mobile=1')){
        alert('暂不支持手机排版的下载\n如使用电脑请保证长宽比例不低于1\n防止排版进入手机格式')
        return
    }
    var page1
    if(location.href.includes('/page/')){
        page1 = gui.addFolder('复制')
        page1.add(main,'copybook').name('复制本书全文 (仅支持电脑)')
        page1.add(main,'setting',{'原版':1,'机改1':2,'机改2':3}).name('下载设置')
        document.querySelectorAll('.controller')[1].innerHTML+='<div class="question">?</div>'
        document.querySelector('.question').addEventListener('click',()=>{window.q()})
    }
    else if(location.href.includes('/reader/')){
        window.thescroll=document.querySelector('.muye-reader')
        reader.onload()
        window.scrollhref=location.pathname
        thescroll.onscroll=function(e){
            if(scrollhref!==location.pathname){
                reader.onload()
                window.scrollhref=location.pathname
                return
            }
            reader.record()
            fqxsydqdata.savedata()
        }
        page1 = gui.addFolder('阅读')
        var page1_1 = page1.addFolder('滚动')
        reader.scroll.load(page1_1)
    }
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址