[{"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, '&amp;').replace(\/<\/g, '&lt;').replace(\/>\/g, '&gt;'); };\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}]