哔哩轻小说

https://w.linovelib.com/

saberyz (2863)2023/10/07

该用户很懒,什么介绍也没有写!
二维码导入
{
    "bookSourceComment": "建议登录\n整理修改缝合:酷安 Wolken\n灰色章节修复目录部分By叶落岚起+关耳\/乃星改2021.8.3\n补丁 : 神秘人\n修复搜索问题\n修复发现榜单没图的问题\n修复章节内图片问题\n新補丁: 神秘人\n抓取源码中的关键字替换\n更新补丁\n更新补丁17\/9\n2023.9.27\n新补丁:酷安 @吉王义昊\n重新抓取源码中的关键字替换\n2023.9.27\n新补丁2nd:酷安 @吉王义昊\n修复插图不能正常加载的问题\n2023.9.30\n酷安 @吉王义昊\n添加登录URL\n清理了无用代码\n使用更易读的变量名\n2023.10.1\n酷安 @吉王义昊\n重新抓取源码中的关键字替换\n2023.10.1\n酷安 @吉王义昊\n在获取正文时自动拉取源码并解密进行关键字替换,一劳永逸(大概)解决问题\n注意:此版本会使网络请求次数增加一倍,并一定程度上减慢加载速度\n2023.10.1\n酷安 @吉王义昊\n增加登录URL和登录UI\n启用CookieJar\n去除章节名下方的URL\n修正了下一页获取导致的正文加载错误\n补全发现中的文库\n修正部分小说目录获取错误的问题\n2023.10.4\n神秘人\n根据网站代码更新修复\nfix dynamic variable name\n2023.10.6\n網站大更新先前方法失效,用會回webview\n2023.10.7\n修复正文失效",
    "bookSourceGroup": "🎐轻小说",
    "bookSourceName": "哔哩轻小说",
    "bookSourceType": 0,
    "bookSourceUrl": "https:\/\/w.linovelib.com\/",
    "bookUrlPattern": "",
    "coverDecodeJs": "",
    "customOrder": 188,
    "enabled": true,
    "enabledCookieJar": true,
    "enabledExplore": true,
    "exploreUrl": "[{'title':'全部榜单','url':'','style':{layout_flexGrow:1,layout_flexBasisPercent:1}},\n{'title':'点击总榜','url':'\/wenku\/allvisit_0_0_0_0_0_0_0_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'点击月榜','url':'\/wenku\/monthvisit_0_0_0_0_0_0_0_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'点击周榜','url':'\/wenku\/weekvisit_0_0_0_0_0_0_0_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'推荐总榜','url':'\/wenku\/allvote_0_0_0_0_0_0_0_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'推荐月榜','url':'\/wenku\/monthvote_0_0_0_0_0_0_0_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'推荐周榜','url':'\/wenku\/weekvote_0_0_0_0_0_0_0_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'完结总点','url':'\/wenku\/allvisit_0_0_0_0_0_0_5_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'完结月点','url':'\/wenku\/monthvisit_0_0_0_0_0_0_5_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'完结周点','url':'\/wenku\/weekvisit_0_0_0_0_0_0_5_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'完结总推','url':'\/wenku\/allvote_0_0_0_0_0_0_5_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'完结月推','url':'\/wenku\/monthvote_0_0_0_0_0_0_5_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'完结周推','url':'\/wenku\/weekvote_0_0_0_0_0_0_5_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'收藏榜单','url':'\/wenku\/goodnum_0_0_0_0_0_0_0_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'字数榜单','url':'\/wenku\/words_0_0_0_0_0_0_0_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'新书榜单','url':'\/wenku\/postdate_0_0_0_0_0_0_0_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'更新榜单','url':'\/wenku\/lastupdate_0_0_0_0_0_0_0_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'编辑推荐','url':'\/wenku\/toptime_0_0_0_0_0_0_0_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'','url':'','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'全部文库','url':'','style':{layout_flexGrow:1,layout_flexBasisPercent:1}},\n{'title':'电击文库','url':'\/wenku\/lastupdate_0_1_0_0_0_0_0_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'富士见文库','url':'\/wenku\/lastupdate_0_2_0_0_0_0_0_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'角川文库','url':'\/wenku\/lastupdate_0_3_0_0_0_0_0_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'MF文库J','url':'\/wenku\/lastupdate_0_4_0_0_0_0_0_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'Fami通文库','url':'\/wenku\/lastupdate_0_5_0_0_0_0_0_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'GA文库','url':'\/wenku\/lastupdate_0_6_0_0_0_0_0_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'HJ文库','url':'\/wenku\/lastupdate_0_7_0_0_0_0_0_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'一迅社','url':'\/wenku\/lastupdate_0_8_0_0_0_0_0_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'集英社','url':'\/wenku\/lastupdate_0_9_0_0_0_0_0_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'小学馆','url':'\/wenku\/lastupdate_0_10_0_0_0_0_0_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'讲谈社','url':'\/wenku\/lastupdate_0_11_0_0_0_0_0_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'少女文库','url':'\/wenku\/lastupdate_0_12_0_0_0_0_0_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'其他文库','url':'\/wenku\/lastupdate_0_13_0_0_0_0_0_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'华文轻小说','url':'\/wenku\/lastupdate_0_14_0_0_0_0_0_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'Web轻小说','url':'\/wenku\/lastupdate_0_15_0_0_0_0_0_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'轻改漫画','url':'\/wenku\/lastupdate_0_16_0_0_0_0_0_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}},\n{'title':'韩国轻小说','url':'\/wenku\/lastupdate_0_17_0_0_0_0_0_{{page}}_0.html','style':{layout_flexGrow:1,layout_flexBasisPercent:0.25}}]",
    "header": "{\"User-Agent\": \"Mobile\", \n\"Referer\":\"https:\/\/w.linovelib.com\/login.php\"\n}",
    "lastUpdateTime": 1696664774569,
    "loginUi": "[\n  {\n    \"name\": \"账号\",\n    \"type\": \"text\"\n  },\n  {\n    \"name\": \"密码\",\n    \"type\": \"password\"\n  }\n]",
    "loginUrl": "@js:\nfunction login() {\n  let une = source.getLoginInfoMap().get(\"账号\")\n  let pwd = source.getLoginInfoMap().get(\"密码\")\n  if (une && pwd) {\n    let body = String('username=' + une + '&password=' + pwd + '&usecookie=315360000&action=login')\n    let url = source.bookSourceUrl + '\/login.php'\n    let ck = java.post(url, body, { \"Content-Type\": \"application\/x-www-form-urlencoded\" }).cookies()\n    let header = JSON.stringify({\n      \"Cookie\": String(ck).match(\/\\{(.*?)\\}\/)[1].replace(\/,\/g, ';')\n    })\n    source.putLoginHeader(header)\n  }\n}",
    "respondTime": 180000,
    "ruleBookInfo": {
        "author": "[property=\"og:novel:author\"]@content",
        "coverUrl": "[property=\"og:image\"]@content",
        "intro": "id.bookSummary@tag.content@textNodes\n@js:\nresult=\"  \"+result;",
        "kind": "class.book-cell@tag.p.1@ownText&&class.tag-small red@text\n##.*万字|·.*",
        "lastChapter": "class.gray ell@text##(\\d+-\\d+-\\d+\\s\\d+:\\d+)·(.*)##$2 • $1",
        "name": "[property=\"og:novel:book_name\"]@content",
        "tocUrl": "class.btn-normal red@href",
        "wordCount": "class.book-cell@tag.p.1@ownText##连载|完结"
    },
    "ruleContent": {
        "content": "\n<js>\n\n\/\/!(\/google.cn\/).test(baseUrl)?h=java.getString(\"id.cacontent@html\"):h=decodeURIComponent(baseUrl.replace(\/^.*?text=\/, ''));\nh = java.webView(null,baseUrl,null);\nh = java.getString(\"id.cacontent@html\",h);\n\/\/run readtools.js match words\\\n\/\/run js file's last line\n\/\/jsLink = java.getString(\"tag.script@src\").match(new RegExp(\"https.+readtools.+\", \"gi\"))[0];\n\/\/h=String(h);\n\/\/code = String(java.ajax(jsLink)).trim().split(\"\\n\").pop().trim().split(\";\")[1];\n\/\/code = code.replace(\/\\[\\'\\\\x72\\\\x65\\\\x70\\\\x6c\\\\x61\\\\x63\\\\x65\\'\\]\/g,\".replace\");\n\/\/code = code.replace(\/window\\[\\\"\\\\x52\\\\x65\\\\x67\\\\x45\\\\x78\\\\x70\\\"\\]\/g,\"RegExp\");\n\/\/varname = code.match(\/.+?(?=\\=)\/).pop();\n\/\/code = code.replace(new RegExp(varname,\"g\"),\"h\");\n\/\/java.log(code)\n\/\/eval(code);\nh\n<\/js>\n",
        "imageDecode": "",
        "imageStyle": "FULL",
        "nextContentUrl": "##url_next:'([^']*)'##$1###\n@js:\n\/\/121_2.html这样的是下一页,纯数字则是下一章\n\/\/带有catalog是详情页\nvar isNew=\/(\\\/(\\d+).html)|catalog\/.test(result);\nvar out=isNew?'':result;\nout",
        "replaceRegex": "<js>\njava.log(666)\njava.log(result)\n<\/js>\n##((?<=[\\u4e00-\\u9fa5“‘「(,])\\s+)?<!--\\s*\\(继续下一页\\)\\s*-->\\s*|((?<=[\\u4e00-\\u9fa5“‘「(,])\\s+)?\\(本章未完\\)\\s*|"
    },
    "ruleExplore": {
        "author": "class.book-author@ownText",
        "bookList": "class.book-ol book-ol-normal jsBooks@tag.li",
        "bookUrl": "a@href",
        "coverUrl": "img@data-src",
        "intro": "class.book-desc@text",
        "kind": "class.tag-small-group origin-right@tag.em.0@text&&\nclass.tag-small-group origin-right@tag.em.1@text",
        "name": "class.book-title@text",
        "wordCount": "class.tag-small blue@text"
    },
    "ruleReview": {},
    "ruleSearch": {
        "author": "class.book-author@textNodes",
        "bookList": "@js:\npath = 'class.book-ol book-ol-normal@tag.li';\nc=java.getElement(path);\nif( !c.length && result.includes('no-js')){\n  res = java.startBrowserAwait(baseUrl,'等待至跳转,然后重搜');\n  java.setContent(res.body());\n  c=java.getElement(path);\n}\nc",
        "bookUrl": "tag.a.0@href",
        "checkKeyWord": "我的青春恋爱喜剧",
        "coverUrl": "a@href@js:\nvar id = result.match(\/\\\/(\\d+)\\.html\/)[1];\n'https:\/\/www.linovelib.com\/files\/article\/image\/'+parseInt(id\/1000)+'\/'+id+'\/'+id+'s.jpg';",
        "intro": "class.book-desc@text",
        "kind": "class.tag-small-group origin-right@tag.em@text",
        "name": "class.book-title-x@class.book-title@text"
    },
    "ruleToc": {
        "chapterList": "id.volumes @tag.li\n@js:\n    \/\/现实debug(尝试修复正文链接问题,和目录不全)\n    \/\/<<好友角色的我怎么可能大受欢迎>>第三卷12\n    \/\/<<我的青春恋爱喜剧>>\n    \/\/2022-8-19\n    \/\/原来的代码在源注释(已移除)\n    \/\/2022-8-20修复https:\/\/w.linovelib.com\/novel\/2765.html目录加载失败\n    \/\/2023-9-30使用易于理解的变量命名\n\nres = result\n\nfor (i = 0; i < res.length; i++) {\n    java.setContent(res[i])\n    if (java.getString(\"tag.a@href\") == \"javascript:cid(0)\") {\n        if (i == res.length - 1) {\n            java.setContent(res[i - 1])\n            prevLink = java.getString(\"tag.a@href\")\n            if (prevLink == \"\") {\n                java.setContent(res[i - 2])\n                prevLink = java.getString(\"tag.a@href\")\n            }\n            prev = java.ajax(\"https:\/\/w.linovelib.com\" + prevLink)\n            java.setContent(prev)\n            foot = java.getElements(\"id.footlink\")\n\n            while (foot.indexOf(\"下一页\") != -1) {\n                str = d1.match(\/<script type\\=\\\"text\\\/javascript\\\">var ReadParams.*\/)\n                path = String(str).match(\/url_next\\:'.*?html\/)[0].replace(\"url_next:'\", \"\")\n                content = java.ajax(\"https:\/\/w.linovelib.com\" + path)\n                java.setContent(content)\n                foot = java.getElements(\"id.footlink\")\n            }\n\n            str = next.match(\/<script type\\=\\\"text\\\/javascript\\\">var ReadParams.*\/)\n            path = String(str).match(\/url_next\\:'.*?html\/)[0].replace(\"url_next:'\", \"\")\n            java.log(path)\n            res[i] = String(res[i]).replace('javascript:cid(0)', path)\n        } else {\n            java.setContent(res[i + 1])\n            nextLink = java.getString(\"tag.a@href\")\n            if (nextLink == \"\") {\n                java.setContent(res[i + 2])\n                nextLink = java.getString(\"tag.a@href\")\n            }\n            next = java.ajax(\"https:\/\/w.linovelib.com\" + nextLink)\n            str = next.match(\/<script type\\=\\\"text\\\/javascript\\\">var ReadParams.*\/)\n            path = String(str).match(\/url_previous\\:'.*?html\/)[0].replace(\"url_previous:'\", \"\")\n            java.log(path)\n\n            res[i] = String(res[i]).replace('javascript:cid(0)', path)\n        }\n    }\n}\nres",
        "chapterName": "text",
        "chapterUrl": "tag.a@href",
        "isVolume": "@js:\njava.getString(\"tag.a@href\")==\"\"",
        "updateTime": ""
    },
    "searchUrl": "<js>\n\npage==1?\n'\/search.html?searchkey={{key}}&searchtype=all'\n:\n\n'\/search\/{{key}}_{{page}}.html'\n<\/js>",
    "weight": 0
}
站长推荐
广告