哔哩轻小说🌟
https://www.bilinovel.net
langzaier (13654)6天前
2026.8.26
优化了发现页标签显示。我发现挂梯可以解决百分之九十的问题,比如封面无法出图、搜索和发现无法翻页之类的网络问题,哈哈哈。
by狼崽儿 //2026.8.25
搜索比较复杂,所以速度比较慢,访问太快可能会限流,比如无法获取封面和无法翻页,继续下拉刷新等待即可
{
"bookSourceComment": "by狼崽儿 \/\/2026.8.25\n搜索比较复杂,所以速度比较慢,访问太快可能会限流,比如无法获取封面和无法翻页,继续下拉刷新等待即可",
"bookSourceName": "哔哩轻小说🌟",
"bookSourceType": 0,
"bookSourceUrl": "https:\/\/www.bilinovel.net",
"customOrder": 0,
"enabled": true,
"enabledCookieJar": true,
"enabledExplore": true,
"exploreUrl": "@js:\nvar items = [];\nfunction makeWenkuPath(overrides) {\n var cfg = ['lastupdate', '0', '0', '0', '0', '0', '0', '0', '{{page}}', '0'];\n var keys = ['order', 'tagid', 'isfull', 'anime', 'rgroupid', 'sortid', 'typeid', 'words', 'page', 'update'];\n for (var n = 0; n < keys.length; n++) {\n if (overrides[keys[n]] != null) { cfg[n] = overrides[keys[n]]; }\n }\n return source.bookSourceUrl + '\/wenku\/' + cfg.join('_') + '.html';\n}\nvar page = org.jsoup.Jsoup.parse(java.ajax(source.bookSourceUrl + '\/wenku\/'));\nvar groups = page.select('ul#filters li.sort-li');\nvar idx = 0;\nwhile (idx < groups.size()) {\n var grp = groups.get(idx);\n var head = grp.select('h3.sort-li-title').first();\n var label = head != null ? head.text() : '';\n items.push({title: '>> ' + label + ' <<', url: '', style: {layout_flexGrow: 1, layout_flexBasisPercent: 1}});\n var opts = grp.select('a.btn-tag.jsTag');\n var j = 0;\n while (j < opts.size()) {\n var opt = opts.get(j);\n var ov = {};\n ov[opt.attr('data-filter-type')] = opt.attr('data-filter-value');\n items.push({title: opt.text(), url: makeWenkuPath(ov), style: {layout_flexGrow: 1}});\n j++;\n }\n idx++;\n}\nJSON.stringify(items);",
"header": "{\n\"User-Agent\": \"Mozilla\/5.0 (Linux; Android 10; K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/135.0.0.0 Mobile Safari\/537.36\", \n\"Accept\": \"text\/html,application\/xhtml+xml,application\/xml;q=0.9,\/;q=0.8\",\n \"Accept-Language\": \"zh-CN,zh;q=0.9\",\n \"Referer\": \"https:\/\/www.bilinovel.net\/\", \n\"Cookie\": \"night=0\"\n}",
"lastUpdateTime": "1787757288902",
"respondTime": 180000,
"ruleBookInfo": {
"author": "meta[property=og:novel:author]@content",
"coverUrl": "meta[property=\"og:image\"]@content",
"intro": "section#bookSummary content@html",
"kind": ".tag-small-group em a@text&&",
"lastChapter": "meta[property=og:novel:latest_chapter_name]@content",
"name": "meta[property=og:novel:book_name]@content",
"tocUrl": "meta[property=og:novel:read_url]@content",
"wordCount": "div.book-cell p:nth-of-type(2)@text"
},
"ruleContent": {
"content": "#acontent@html@js:\nvar html = result;\n\/\/ 1. 将 data-src 转换为 src\nhtml = html.replace(\/data-src=\"([^\"]+)\"\/g, 'src=\"$1\"');\n\/\/ 2. 去掉无用的占位图 src(防止加载失败)\nhtml = html.replace(\/src=\"\\\/images\\\/sloading\\.svg\"\/g, '');\n\/\/ 3. 让隐藏的图片显示出来\nhtml = html.replace(\/style=\"display:none;\"\/g, '');\nhtml;",
"nextContentUrl": ".mlfy_page a[href*='_']@href"
},
"ruleExplore": {
"author": "@js:var t=result.select('span.book-author').text();\nvar i=t.indexOf('作者');\ni>=0?t.substring(i+2):t;",
"bookList": "ol.book-ol.book-ol-normal li.book-li||ol.jsBooks li.book-li",
"bookUrl": "a@href",
"coverUrl": ".book-cover img@data-src",
"intro": "@js:var d=result.select('p.book-desc, p.book-intro');\nd.size()>0?d.first().text():'';",
"kind": "@js:\nvar t=result.select('span.tag-small-group em.tag-small');\nvar arr=[];\nfor(var i=0;i<t.size();i++){arr.push(t.get(i).text());}arr.join(' ');",
"name": "a h4.book-title@text"
},
"ruleSearch": {
"author": "@js:var t=result.select('span.book-author').text();var i=t.indexOf('作者');i>=0?t.substring(i+2):t;",
"bookList": "@js:\nvar doc = org.jsoup.Jsoup.parse(result);\nif (doc.select('ol.book-ol.book-ol-normal').size() > 0) {\n java.setContent(result);\n java.getElement('ol.book-ol.book-ol-normal li.book-li');\n} else {\n var n = doc.select('meta[property=og:novel:book_name]');\n var a = doc.select('meta[property=og:novel:author]');\n var i = doc.select('meta[property=og:description]');\n var c = doc.select('meta[property=og:image]');\n var k = doc.select('meta[property=og:novel:category]');\n var name = n.size() > 0 ? n.first().attr('content') : '';\n var author = a.size() > 0 ? a.first().attr('content') : '';\n var intro = i.size() > 0 ? i.first().attr('content') : '';\n var cover = c.size() > 0 ? c.first().attr('content') : '';\n var kind = k.size() > 0 ? k.first().attr('content') : '';\n var esc = function(s) { return String(s).replace(\/&\/g, '&').replace(\/<\/g, '<').replace(\/>\/g, '>'); };\n var card = '<li class=\"book-li\"><a href=\"' + baseUrl + '\"><div class=\"book-cover\"><img data-src=\"' + esc(cover) + '\"><\/div><h4 class=\"book-title\">' + esc(name) + '<\/h4><p class=\"book-desc\">' + esc(intro) + '<\/p><span class=\"book-author\">作者' + esc(author) + '<\/span><span class=\"tag-small-group\"><em class=\"tag-small\">' + esc(kind) + '<\/em><\/span><\/a><\/li>';\n java.setContent(card);\n java.getElement('li.book-li');\n}",
"bookUrl": "a@href",
"checkKeyWord": "",
"coverUrl": "li.book-li .book-cover img@data-src",
"intro": "a p.book-desc@text",
"kind": ".tag-small-group .tag-small@text&&",
"lastChapter": "",
"name": "a h4.book-title@text"
},
"ruleToc": {
"chapterList": "@js:\nvar doc = org.jsoup.Jsoup.parse(result);\nvar items = doc.select('ul.volume-chapters li.chapter-li:not(.volume-cover)');\nvar arr = [];\nfor (var i = 0; i < items.size(); i++) {\nvar it = items.get(i);\nvar isVol = it.hasClass('chapter-bar');\nvar a = it.select('a').first();\nvar t = a != null ? a.text() : '';\nvar u = a != null ? a.attr('href') : '';\narr.push(JSON.stringify({title: t, url: u, isVolume: isVol}));\n}\narr;",
"chapterName": "$.title",
"chapterUrl": "@js:var c = JSON.parse(result);c.isVolume ? '' : c.url;",
"isVolume": "$.isVolume"
},
"searchUrl": "@js:\nvar u = source.bookSourceUrl;\nvar b1 = java.ajax(u + '\/search.html?search_guard=js');\nvar m1 = b1 != null ? b1.match(\/jieqiSearchJs=([^;]+)\/) : null;\nvar jsC = m1 != null ? m1[1] : '';\nvar hs = JSON.parse(source.header);\nvar h2 = java.get(u + '\/search.html?search_guard=css', hs).header('set-cookie');\nvar m2 = h2 != null ? h2.match(\/jieqiSearchCss=([^;]+)\/) : null;\nvar cssC = m2 != null ? m2[1] : '';\nhs.Cookie = String((hs.Cookie || '') + '; jieqiSearchJs=' + jsC + '; jieqiSearchCss=' + cssC);\nvar h3 = java.get(u + '\/search.html?search_guard=redeem&r=' + new Date().getTime(), hs).header('set-cookie');\nvar m3 = h3 != null ? h3.match(\/jieqiSearchTicket=([^;]+)\/) : null;\nvar tk = m3 != null ? m3[1] : '';\nvar q = page == 1 ? u + '\/search.html?searchkey=' + encodeURIComponent(key) : u + '\/search\/' + encodeURIComponent(key) + '_' + page + '.html';\nq + ',{\"headers\":{\"Cookie\":\"jieqiSearchTicket=' + tk + '\"},\"webView\":false}';",
"weight": 0
}