完美小说

http://m.umixs.info

mctiantian2501314 (2333)01/16 03:59

源:By-[曦灵] 

//2025/1/16 by@天天的鸟蛋蛋 已经解密了 目录和正文改用解密 大更新
二维码导入
{
    "bookSourceComment": "源:By-[曦灵] \n\n\/\/2025\/1\/16 by@天天的鸟蛋蛋 已经解密了 目录和正文改用解密 大更新\n",
    "bookSourceGroup": "",
    "bookSourceName": "完美小说",
    "bookSourceType": 0,
    "bookSourceUrl": "http:\/\/m.umixs.info",
    "bookUrlPattern": "",
    "concurrentRate": "",
    "customOrder": 443,
    "enabled": true,
    "enabledCookieJar": false,
    "enabledExplore": false,
    "exploreUrl": "哦哦哦",
    "header": "",
    "lastUpdateTime": "1736971141307",
    "loginUrl": "",
    "respondTime": 16387,
    "ruleBookInfo": {
        "author": "@get:{x}",
        "canReName": "true",
        "coverUrl": "@js:(s=java.getStringList('img[alt*='+book.name+']@src||meta[property$=image]@content||img[src~=(cover|file|article)[^a-z]|\/\\\\d+[\/_-]\\\\d+(s?\\\\.|$)]@src||img[data-src~=\\\\S]@data-src||img[src*=\/img]@src||img[src~=^(data|https?):|^[^:]+\/]@src')).size()?\/^data:\/.test(s=s.get(0))?java.base64Encode(s):s:null",
        "init": "",
        "intro": "@js:'  '+java.get(\"g\")",
        "kind": "@js:java.get(\"v\")",
        "lastChapter": "@get:{z}",
        "name": "@js:\nj=String(java.get(\"custom\")).match(\/^ *((?:[录原单动静直全跳逆字图]|\\[[^\\[\\]]+\\]|\\d+#[^#]+#)+)\/);\n\nkey=String((u=(baseUrl=String(book.bookUrl).replace(\/,{[^{}]+}$\/,'')).match(\/^(.+)\\?((?:[录原单动静直全跳逆字图]|\\[[^\\[\\]]+\\]|\\d+#[^#]+#)+)$\/))&&(baseUrl=u[1])&&j?j[1]+u[2]:u?u[2]:j?j[1]:'');\n\n$=it=>(fn=r.select(it)).size()&&(fn=fn.first());\n\nr=org.jsoup.Jsoup.parse(result);\nr.select(\"script,noscript,style,head>:not(meta,title),footer,[class~=^foot],[id~=^foot],a:has(>:last-child:matchesOwn(^分类$)),[value]\").remove();\n\nm=String(r).replace(\/(?:&nbsp;)+\/g,\" \");\n\n书=false;\nn=($('[property$=book_name]')&&(书=String(fn.attr('content')).replace(\/^[\\s「『【〖((\\[]+\/,\"\"))\n||(function(){\nif($('title')&&(书=String(fn.text()).replace(\/^(简介页|详情页|目录页|正版|全本|免费阅读|[\\s。.,_\/|「『【〖((\\[\\]))〗】』」─—-]+)+\/,\"\"))){\nfor(x=0,c=r.select(\"h1,h2,h3,strong\").eachText();x<c.size();x++)if(\n(y=c.get(x))!=''&&(u=书.indexOf(y),~u&&u<4))return String(y)}return 书}())||\"请自行修改书名\")\n.replace(\/(?!^)[^\\u4e00-\\u9fa5a-zA-Z0-9《》]*(?:笔趣阁|思路客|燃文|小说|漫画|手机)?(?:[.|,_\/\\s「『【〖((\\[\\]))〗】』」。─—-]|(?:人工|机器|电脑)?校正|精校|完[整结]|加料|番外|未删节|简介|全[文本集]|下载|(?:小说|漫画|大全|正版(?:小说|漫画)?|免费|免费小说|免费漫画|免费全[文本]|在线|最[新快]|全部|手机|电脑)(?:全[文本集部]|大全|免费|在线|阅读|下载|章节|小说|更新|漫画|\\.)|([^a-zA-Z0-9])(?:azw|mobi|epub|txt)(?![a-zA-Z0-9])|(?:最全)?(?:章节|目录|列表){2,}|更新章节最快|无广告|(?::顶点)?无弹窗|无防盗|小说网|手打全文|[纯全](?:手打|文字)|\\s*by\\s*(?=[\\u4e00-\\u9fa5]))[\\S\\s]*\/i,\"$1\");\n\nif(n[0]==\"《\"&&n[n.length-1]==\"》\")n=n.slice(1,-1);\n\nif($('[property$=author]')){\nx=String(fn.attr(\"content\")).replace(\/^作\\s*[者家][\\s::]*|(?!^)[\//||,,\\s][^⚙️]*$\/,\"\")\n}else{\nx=m.match(\/>\\s*([^>]+?)(?:\\s*<\\\/[a-z]+>\\s*|\\s+)著\\s*<|[\\s\\[\\];?!,.()、,;?!。…─()[]〖〗【】>《》](?:小说|漫画)?作\\s*者(?![^>]+->)(?:[::\\s〖【(《[\\[\\(]|<[^it\\\/][^>]*>|<\\\/[^>]+>)+([^\\s<\">,,\//||\\)\\]]》)】〗]+)\/);\nx=x?x[1]?x[1]:x[2]:$('#author,.author')?String(fn.text()).replace(\/(?!^)[\//||,,\\s][^⚙️]*$\/,\"\"):\"\"}\njava.put(\"x\",x);\n\nc=(fn=r.select(\"meta[property~=category$]\")).size()?String(fn.attr(\"content\"))\n.replace(\/(?!^)\\s*[,,.\//||]\\s*\/,\",\"):(fn=m.match(\/(?:[\\s\\[\\];?!,.()、,;?!。…─()[]〖〗【】》]|<[^a\/][^>]*>|<\\\/[^>]+>)(?:[分大]\\s*类|类\\s*[型别])(?:[::\\s]|<[^>]+>)+([^\\s<.\"\//||>]+)\/))&&fn[1];\nif(c)java.put(\"v\",c);\n\nc=(fn=r.select(\"meta[property~=status$]\")).size()?fn.attr(\"content\"):(fn=m.match(\/(?:[\\s\\[\\];?!,.()、,;?!。…─()[]〖〗【】》]|<[^a\/][^>]*>|<\\\/[^>]+>)状\\s*态(?:[::\\s]|<[^>]+>)+([^\\s<.\"\//||>]+)\/))&&fn[1];\nif(c)java.put(\"s\",c);\n\nc=$('meta[property~=latest_chapter_name$]')?fn.attr(\"content\"):(fn=m.match(\/>(?:\\s*[更最]\\s*[新近])+(?:\\s*章\\s*节)?(?:[::\\s\\[]|<[^>]+>)+(?!\\s*(?:-|&gt;)\\s*<|[::\\s0-9T年月日时分秒*-]{5,}<|[^::]+[^章\\s]\\s*[::]\\s*<|更新(?:时间)?[::])([^<\"\//||\\]>]+)\/))&&fn[1];\nif(c)java.put(\"z\",c);\n\n正=true;\nif(key.length){\nif(~key.indexOf(\"全\"))java.put(\"全\",1);\nif((\nu=key.match(\/[^\\[\\]]+(?=\\])\/),\nc=~key.indexOf(\"录\"),\ny=~key.indexOf(\"单\"),\nbaseUrl=u?u[0]:baseUrl,\n(c||u)&&(baseUrl=c||y?(baseUrl=String((c=baseUrl.match(\/(.+[^\\d])(\\d+)([^\\d]*)$\/))[1]+1+c[3]),\nc=c[2]+'🌕'+c[1]+'🌕'+2+'🌕'+c[3],\nbaseUrl):baseUrl)\n)||~key.indexOf(\"直\")\n)java.put(\"目\",1),正=1;\nif(~key.indexOf(\"录\"))java.put(\"录\",c),正=1;\nif(y||~key.indexOf(\"#\")){\nif(!u){\nif((网=key.match(\/(\\d+)#([^#]+)\/))\n&&(尾=网[1],网=网[2].match(\/^(.*[^\\d])([12])([^\/?\\d]*)$\/))\n||(尾=r.select('a[href~=\\\\d[^\/?\\\\d]*$]:matches(^(尾|末|最后一)[頁页篇章回节節话話]$)')).size()\n&&(网=r.select('a:matches(^2$)')).size()\n&&(网=String(网.first().attr('href')).match(\/^(.*[^\\d])([12])([^\/?\\d]*)$\/))\n&&(尾=String(尾.first().attr('href')).match(\/\\d+(?=[^\/?\\d]*$)\/)[0])){\nc=尾+'🌕'+网[1]+'🌕'+网[2]+'🌕'+网[3]\n}else if((c=r.select('a:matches(^(\\\\d+|…+|\\\\.+)$)')).size()){\nif((网=String(c).split(\/<a[^>]+>[^\\d<]+<\\\/a>\/)).length==2){\nfor(c=网[0],尾=网[1],x=+网[1].match(\/>([^<]+)\/)[1],网=网[0].match(\/href=\"([^\"]*[^\\d])(\\d+)([^\/?\\d\"]*)\"[^>]*>([^<]+)<[^<]+$\/),j=+网[4],i=+网[2]-j;j<x;j++)c+=\"<a href='\"+网[1]+(j+i)+网[3]+\"'>\"+j+\"<\/a>\";\nc+=尾}\n}else c=1}\njava.put(\"单\",c),正=false}\nif(~key.indexOf(\"跳\"))java.put(\"跳\",1);\nif(~key.indexOf(\"逆\"))book.setReverseToc(true);\nelse book.setReverseToc(false);\nif((u=~key.indexOf(\"图\"))||~key.indexOf(\"原\"))java.put(\"原\",1);\nif(~key.indexOf(\"动\"))java.put(\"动\",',{\"webView\":true}');\nelse if(~key.indexOf(\"静\"))java.put(\"静\",1);\nif(u||~key.indexOf(\"字\"))java.put(\"文\",u?1:2)\n}else book.setReverseToc(false);\n\nc=(fn=r.select(\"meta[property$=description][content~=\\\\S]\")).size()?fn.get(fn.size()-1).attr(\"content\"):(r.select(':matchesOwn([\\\\u4e00-\\\\u9fa5]{2,})>:not(br),:not(body,br,:matchesOwn([\\\\s\\\\S]{50}),:has(body,:matchesOwn([\\\\s\\\\S]{50})))').remove(),r.select(\":matchesOwn(\\\\S)\").text());\n\njava.put(\"g\",c=String(c).replace(\/[\\snbsp;]*(?:&nbsp;|\\s){2,}|\\s*([?!。]+[”」』\\]\\}\\))}】〗〕〉]?)\\s*\/g,\"$1  \").replace(\/(?=  )\/g,\"\\n\"));\n\nif(c.length&&(c=c.match(\/(.{0,2})《([^《》]+)》(.{0,3})\/))&&c[3]!=\"作品集\"&&!c[1].match(\/新[书作]\/)&&(c=c[2],书?~String(书).indexOf(c)&&!~c.indexOf(n):true))n=c;\n\nif(正==1)m=java.ajax(baseUrl);\njava.setContent(m,baseUrl);\n\nif(正){\nzl=java.getStringList(\"[property$=latest_chapter_url]@content||:matches(^最新章节)>a:only-child:not([href~=^$|#|javascript:])@href||a:matches(^正文\\\\s*[\\\\d第一二三四五六七八九十〇零百千]|^[【《]?(\"+n+\")?[\\\\s》】(\\\\u0028::__--]*(第[\\\\s0〇零]*[一1]\\\\s*[\\\\u4e00-\\\\u9fa5]|([\\\\u4e00-\\\\u9fa5]{2}阅读[(\\\\u0028::__--]?)?(0*1([)\\\\u0029.、::_-]|$)|[〇零]*一([)\\\\u0029\\\\s.、::_-]|$)))):not([href~=(^|[^\/])\/[vV][iI][pP]|([A-Za-z]\\\\d+|\\\\d[A-Za-z]+|[A-Z][a-z]+|[a-z][A-Z]+){3,}[^\/?&_-]*$|^$|#|javascript:|\"+(bas=baseUrl.replace(\/\\\/+$|\\.[a-zA-Z]+$\/,'')).match(\/[^?\/]+$\/)[0].replace(\/([*$|?+\\\\\\^\\[\\](){}])\/g,'\\\\$1')+\"(?:[\/_-]1)?(?:\\\\\/|\\\\.[a-zA-Z]+)?$])@href||a:matches(^[^\\\\u4e00-\\\\u9fa5]*(免费|在线|开始|立即|全文|正文|从头)+[试阅]读[^\\\\u4e00-\\\\u9fa5]*$):not([href~=^$|#|javascript:])@href||a:matches(^0*1[^\\\\d]):not([href~=(^|[^\/])\/[vV][iI][pP]|([A-Za-z]\\\\d+|\\\\d[A-Za-z]+|[A-Z][a-z]+|[a-z][A-Z]+){3,}[^\/?&_-]*$|^$|#|javascript:])@href\");\n\nif(zl.size()&&(ck=String(zl.get(0)).match(\/^(.*\\\/\\\/[^\/]+)?([\/?]?[^\/].+[?&\/_-])[^&\/_-]+\\\/?$\/)))(jd=ck[1])&&(h=baseUrl.lastIndexOf('\/',baseUrl.indexOf(jd.match(\/(?:\\.[^.]+){2,}$|[^.\/]+\\.[^.]+$\/)[0])))>8&&(\nq=baseUrl.indexOf(':'),\n(bas=java.get(baseUrl=baseUrl.slice(0,q+2)+baseUrl.slice(h),{})).statusCode()==200&&java.setContent(bas.body(),baseUrl)\n),java.put(\"ck\",ck[2])}\nn",
        "tocUrl": "text.章节列表@href",
        "wordCount": "@get:{s}"
    },
    "ruleContent": {
        "content": "<js>\nvar JsDom = Packages.org.jsoup.Jsoup;\nvar Document = Packages.org.jsoup.nodes.Document;\nvar Element = Packages.org.jsoup.nodes.Element;\n            \nvar document = JsDom.parse(src);\n            \n\/\/ 获取包含<p>元素的<dd>元素\nvar dds = document.select('div.content > dd');\n\n\/\/ 将dds转换为数组以便排序\nvar ddArray = [];\nfor (var i = 0; i < dds.size(); i++) {\n    ddArray.push(dds.get(i));\n}\n\n\/\/ 按照data-id属性对ddArray进行排序\nddArray.sort(function(a, b) {\n    var pageA = parseInt(a.attr('data-id'), 10);\n    var pageB = parseInt(b.attr('data-id'), 10);\n    return pageA - pageB;\n});\n\nvar list = [];\nvar data = {\n    mergedText: \"\"\n};\n\n\/\/ 遍历排序后的ddArray\nfor (var i = 0; i < ddArray.length; i++) {\n    var dd = ddArray[i];\n    var dataId = dd.attr('data-id');\n    \/\/ 获取当前dd下的所有<p>元素的文本内容,保持原有顺序\n    var paragraphs = dd.select('p');\n    var paragraphTexts = [];\n    for (var j = 0; j < paragraphs.size(); j++) {\n        var paragraph = paragraphs.get(j);\n        paragraphTexts.push(paragraph.text());\n    }\n    list.push({\n        id: dataId, \/\/ 使用data-id属性\n        paragraphs: paragraphTexts \/\/ 存储所有<p>元素的文本内容为数组,保持原有顺序\n    });\n    \/\/ 合并文本内容,每个<p>内容后添加换行符,保持原有顺序\n    data.mergedText += paragraphTexts.join(\"\\n\") + \"\\n\"; \/\/ 添加额外换行符以便分隔每个dd的内容\n}\n\n\/\/ 输出结果\njava.log(JSON.stringify(list));\njava.log(data.mergedText);\n\n\/\/ 返回data对象\nresult = data.mergedText;\n<\/js>",
        "imageStyle": "FULL",
        "nextContentUrl": "text.下一页@href",
        "replaceRegex": "##.*?完美小说.*|.*?\\(第.*页\\)|(本章未完,请点击下一页继续阅读)",
        "sourceRegex": "",
        "webJs": ""
    },
    "ruleExplore": {
        "bookList": "",
        "bookUrl": ""
    },
    "ruleSearch": {
        "author": "",
        "bookList": "class.bd@li",
        "bookUrl": "a@href",
        "checkKeyWord": "都判出宗门了,谁还惯着你啊",
        "kind": "li@a@span@text##\\[|\\]",
        "name": "li@a@ownText##[(].*"
    },
    "ruleToc": {
        "chapterList": " <js>\nvar JsDom = Packages.org.jsoup.Jsoup;\nvar Document = Packages.org.jsoup.nodes.Document;\nvar Element = Packages.org.jsoup.nodes.Element;\n            \nvar document = JsDom.parse(src);\n            \n\/\/ 获取包含<li>元素的<div>元素\nvar divs = document.select('ul.list > div');\n\n\/\/ 将divs转换为数组以便排序\nvar divArray = [];\nfor (var i = 0; i < divs.size(); i++) {\n    divArray.push(divs.get(i));\n}\n\n\/\/ 按照data-id属性对divArray进行排序\ndivArray.sort(function(a, b) {\n    var pageA = parseInt(a.attr('data-id'), 10);\n    var pageB = parseInt(b.attr('data-id'), 10);\n    return pageA - pageB;\n});\n\nvar list = [];\n\/\/ 遍历排序后的divArray\nfor (var i = 0; i < divArray.length; i++) {\n    var div = divArray[i];\n    var dataId = div.attr('data-id');\n    \/\/ 获取当前div下的所有<li>元素\n    var lis = div.select('li');\n    for (var j = 0; j < lis.size(); j++) {\n        var li = lis.get(j);\n        var a = li.select('a').first();\n        if (a != null) {\n            list.push({\n                text: a.text(),\n                id: dataId, \/\/ 使用data-id属性\n                url: a.attr('href')\n            });\n        }\n    }\n}\n\njava.log(JSON.stringify(list));\nlist;\n<\/js>",
        "chapterName": "text",
        "chapterUrl": "url",
        "isVip": "",
        "nextTocUrl": "",
        "preUpdateJs": "",
        "updateTime": ""
    },
    "searchUrl": "\/s.php,{\n  \"body\": \"s={{key}}=\",\n  \"charset\": \"UTF-8\",\n  \"method\": \"POST\"\n}",
    "weight": 0
}
广告