📖 晋江书单
📖晋江书单
分享者: guaner001125 (317)发布时间: 1天前
//点击右上角三点,设置源变量搜索书单,或者下拉搜索
{
"articleStyle": 3,
"cacheFirst": false,
"customOrder": 22,
"enableJs": true,
"enabled": true,
"enabledCookieJar": true,
"header": "{\n\t\"referer\":\"http:\/\/android.jjwxc.net\/?v=357\",\n\t\"versionCode\":\"357\",\n\t\"versiontype\":\"reading\",\n \"User-Agent\": \"Dalvik\/2.1.0\"\n}",
"injectJs": "\ndocument.getElementById(\"app\").remove();\n\n\/\/ 获取书籍链接\n\t\tbookid = String(window.location.href).replace(\/^.*\\\/\/,'');\n\t\tbooksrc = \"http:\/\/app-cdn.jjwxc.net\/androidapi\/novelbasicinfo?novelId=\"+bookid;\n\t\t\nbooksrc = `legado:\/\/import\/addToBookshelf?src=${encodeURIComponent(booksrc)}`;\n\t\n\t\t\/\/获取书籍名称\ntitle = document.querySelector(\".big.o\").innerText.replace(\/首页>\/,'');\n\n\/\/获取作者名称\nauthor = document.querySelector(\".authorname-content a\").innerText;\n\n\/\/跳转作者url[可省略]\ndocument.querySelector(\".authorname-content a\").href;\n\n\/\/create(搜索的内容,\"bookName or bookAuthor\",距离顶部距离,[跳转其他url])\n\ncreate(title,\"addBookshelf\",14,booksrc);\ncreate(title,\"bookName\",18)\ncreate(author,\"bookAuthor\",22)\n\n\n function create(name,type,top,url){\n \t type = type+\"=\"+name;\n \t url = url!=undefined?url+\"#\"+type:\"\";\n \t \n let \ttypebutton;\n if(\/bookName\/.test(type)){\n \t typebutton=\"搜索书名\"\n \t}else if(\/bookAuthor\/.test(type)){\n \t\t typebutton=\"搜索作者\"\n \t}else{\n \t\t\t typebutton=\"加入书架\"\n \t}\n \n \tlet Url = location.search!=\"\"?location.search.replace(\/&*book[AN].*?=.*\/,'')+\"&\"+type:window.location.pathname+\"?\"+type;\n \turl = url!=\"\"?url:Url;\n \tconsole.log(url);\n \tA = document.createElement(\"a\");\n\t\t A.href =url.replace(\/#addBookshelf.*\/,'')\n\t\t \n\t\tA.innerHTML = `<button style=\"outline:none; position:fixed; top:${top}%; right:7%; z-index:999; border-radius:5px; color:#166188;background:#fff;padding:4px;border:1px solid #000\"><b>${typebutton}<\/b><\/button>`;\n\t\t\n \tdocument.body.appendChild(A);\n \t}\t ",
"jsLib": "function replaceEmoticons(t) {\n const n = t => `<img class=\"ef\" src=\"https:\/\/i9-static.jjwxc.net\/tmp\/emoji\/${t}.png\" style=\"width: 24px; display: inline-block; vertical-align: middle; margin-top: -4px;\"\/>`,\n o = {'化了': n('20240813133734_66baf11eca900_736'),'可怜': n('20240813133538_66baf0aa48da0_272'),'点赞': n('like'),'问号': n('question'),'亲亲': n('kiss'),'求求你了': n('20250513142416_6822e59075a3b_751'),'狗头': n('dog'),'星星眼': n('star'),'害羞': n('shy'),'坏笑': n('bad_smile'),'爱心眼': n('love_heart'),'让我康康': n('look'),'猫头': n('20240813134245_66baf2554d0c0_482'),'三花猫头': n('20240813134304_66baf2688507d_882'),'垂耳兔头': n('20240813134345_66baf29111f22_694'),'竖耳兔头': n('20240813134441_66baf2c986c2b_931'),'熊猫头': n('20240813134502_66baf2deb9a59_203'),'菜狗': n('20240813134018_66baf1c223617_332'),'奶茶': n('milk'),'橘糖': n('20240813132714_66baeeb282db3_126'),'紫糖': n('20240813132746_66baeed24ae82_531'),'药丸': n('20240813132902_66baef1e7590e_674'),'柠檬': n('20240813133018_66baef6a49f76_858'),'饭饭': n('20250513142708_6822e63c630d3_583'),'空碗': n('20250513142731_6822e653b7bac_594'),'比心': n('hand_heart'),'鼓掌': n('clap'),'666': n('666'),'摆手': n('wave'),'合十': n('20240813132056_66baed38130c1_545'),'抱拳': n('20250327163246_67e50d2e50aa5_351'),'托腮': n('sigh'),'爆哭': n('cry'),'笑哭': n('laugh'),'彩虹屁': n('rainbow'),'撒花': n('flower'),'加油': n('go'),'闭嘴': n('shut'),'白眼': n('eyes'),'裂开': n('break'),'墨镜': n('20240809171403_66b5dddb9b4a9_201'),'吃瓜': n('20240813133503_66baf08792cb4_971'),'哦哦哦': n('20250327162901_67e50c4d70e05_616'),'抱抱': n('20250327162653_67e50bcdc4107_345'),'摸头': n('20250327162816_67e50c2004946_460'),'哈哈大笑': n('20250327162728_67e50bf002312_926'),'捂脸偷看': n('20240813133808_66baf140db042_203'),'摊手': n('20240813133559_66baf0bfe94a8_123'),'无奈': n('20250327163425_67e50d916f9f7_934'),'捂脸笑哭': n('20250327162314_67e50af266b86_726'),'眼镜': n('20250513142108_6822e4d4908c7_855'),'好的': n('20250513142306_6822e54a95fec_363'),'求你了': n('20250513142345_6822e5719d933_198'),'小丑': n('20240813134155_66baf223161c9_172'),'害怕': n('fear'),'愤怒': n('anger'),'狗头叼玫瑰': n('20250513142003_6822e493665f5_485'),'鸽子': n('dove'),'发财': n('rich'),'好运莲莲': n('20240813132511_66baee37a0048_173'),'玫瑰': n('20240813132550_66baee5e5f847_433'),'猫爪': n('20240813132824_66baeef888f6a_514'),'烟花': n('20250513142645_6822e6257d8f0_243'),'元宝': n('20250513142558_6822e5f6c2986_398'),'裤子': n('20250513142753_6822e669080b5_216'),'耳朵': n('20240813133118_66baefa6c51c9_627'),'心碎': n('broken_heart'),'红心': n('red_heart'),'橙心': n('orange_heart'),'黄心': n('yellow_heart'),'绿心': n('green_heart'),'青心': n('cyan_heart'),'蓝心': n('blue_heart'),'紫心': n('purple_heart'),'粉心': n('pink_heart'),'加一': n('20250513142841_6822e699f2124_862'),'减一': n('20250513142916_6822e6bc011ee_516')};\n return t.replace(\/\\[([^\\]]+)\\]\/g, (t, r) => o[r.trim()] || t)\n}",
"lastUpdateTime": 1769955555840,
"loadWithBaseUrl": true,
"loginCheckJs": "cache.put(\"jjsdv0201\",1);\nresult",
"preload": false,
"ruleArticles": "$.data.data[*]||$.data.list[*]||$.data.fav_find_book_list[*]&&$.data.find_book_list[*]&&$.data.fav_list[*]&&$.data.book_list[*]||$.data.recommend[*]%%$.data.find[*]\n<js>\nif(result ==\"[]\"){\n\tresult = JSON.stringify([\n\t{\"title\":\"支持源作者\",\n\t\"url\":`data:pic;base64,PGltZyBzdHlsZT0id2lkdGg6MTAwJSIgc3JjPSJhYm91dDpibGFuayIgb25lcnJvcj0idGhpcy5zcmM9YXRvYignYUhSMGNITTZMeTluYVhSbFpTNWpiMjB2WjNWaGJtVnlNREF4TVRJMUwySnZiMnR6YjNWeVkyVXZjbUYzTDIxaGMzUmxjaThsUlRVbE9VSWxRa1VsUlRjbE9Ea2xPRGN2WjNWaGJtVnlMbmRsWW5BPScpIj4KCg==,{\"type\":\"html\"}`}\n\t])\n\t\n\t}\nresult\n<\/js>\n$.[*]",
"ruleContent": "<title> {{$.data.booklist_desc.listname}}<\/title>\n<head>\n <meta name=\"referrer\" content=\"no-referrer\">\n<\/head>\n\n<div class=\"booklist_desc\">\n <p class=\"listname\">\n <span class=\"level\">\n  {{$.data.booklist_desc.level}}级 \n <\/span>\n {{$.data.booklist_desc.listname}}\n <\/p>\n <span class=\"dateline\">\n {{$.data.booklist_desc.dateline||$.data.booklist_desc.create_time}}\n <\/span>\n <p class=\"des\">\n 荐书描述 共{{$.data.booklist_desc.booknum}}本\n <\/p>\n <div class=\"introduction\">\n <p>{{$.data.booklist_desc.introduction}}<\/p>\n <\/div>\n<\/div>\n<br>\n<br>\n\n<js>\nif(!\/data:\/.test(baseUrl)){\njava.toast(\"加载中....\")\ntry{\n function getBooklist(list){\n \tlet html=\"\";\n \tfor(i in list){\n \t $ = list[i];\n \t let novelid = $.novelid;\n \t let cover = $.cover || (\"https:\/\/i9-static.jjwxc.net\/novelimage.php?novelid=\"+novelid);\n \t let novelname = $.novelname;\n \t let authorname = $.authorname;\n \t let novelstep_name = $.novelstep_name || $.novelstep_str || $.novelstep;\n \t let novelsize = $.novelsize;\n \t let novel_review_score = $.novel_review_score || ($.fav_count_str==undefined?\"\":$.fav_count_str+\"收藏\");\n \t let novelstar = $.novelstar || 0;\n \t let s=\"\";\n \t for(i=0;i<novelstar;i++){s+=\"★\"}\n \t novelstar=s;\n \t let novelintroshort = $.novelintroshort;\n \t let comment = $.comment || $.commentbody || \"\";\n \t let novelclass_str = $.novelclass_str || (\"第\"+$.chapterid+\"章 打分:\"+$.commentmark+\"分 订阅率:\"+($?.subscription_rate_info?.rate??\"\")+($?.subscription_rate_info?.iconapp==\"rate_novelallbuy\"?\"100%\":\"\"));\n \t novelclass_str = novelclass_str.replace(\/订阅率:$\/,'');\n\t html +=`\n\t <div class=\"book\">\n\t <div class=\"bookdes\">\n\t <div class=\"pic\" onclick=\"addShelf('${novelid}')\" href=\"javascript:;\">\n\t <img src=\"${cover}\" referrerpolicy=\"no-referrer\">\n\t <\/div>\n\t <div class=\"details>\n\t <p class=\"bookname\">\n\t <span class=\"name\">\n\t <a href =\"https:\/\/m.jjwxc.net\/book2\/${novelid}\">${novelname}<\/a>\n\t <\/span>\n\t <br>\n\t <span class=\"author\" onclick=\"window.open('https:\/\/m.jjwxc.net#bookAuthor=${authorname}')\">\n\t ——${authorname}\n\t <\/span>\n\t <\/p>\t\n\t <p class=\"tag\" onclick=\"window.open('https:\/\/m.jjwxc.net#bookName=${novelname}')\">\n\t <br>\n\t ${novelsize}•${novelstep_name}•${novel_review_score} 🔎<br><br>\n\t ${novelintroshort}<br><br>\n\t ${novelclass_str}<br><br>\n\t ${novelstar}\n\t <\/p> \n\t <\/div>\t \n\t <\/div>\n\t <div class=\"comment\">\n\t ${comment}\n\t <\/div> \n\t <\/div> \n\t `;\n\t }\n\t return html\n \t}\n\n list = JSON.parse(src).data?.novel_lists || JSON.parse(src).data?.booklist_desc?.recommend_novelinfo || JSON.parse(src).data;\n reply = \"\";\n if(\/subjectDetail\/.test(baseUrl)){\n \treply_url = \"https:\/\/app.jjwxc.org\/app.jjwxc\/android\/reading\/BookListFindBook\/replyList?versionCode=357&listid=\"+baseUrl.match(\/id=(\\d+)\/)[1]+\"&page=1&filter_recommend=0\";\n \t\n data = JSON.parse(java.ajax(reply_url));\n l = data.data.data;\n \n page_count = data.data.page_count;\n if(page_count>1){\n \t for(k=2;k<=page_count;k++){\n \t reply_url = reply_url.replace(\/page=\\d+\/,'page='+k);\n \t l = l.concat(JSON.parse(java.ajax(reply_url)).data.data);\n \t}\n }\n \n for(j in l){\n \t reply+='<div class=\"comment\"><span style=\"color:#3A9DBF\">'+(Number(j)+1)+'楼 <\/span>'+l[j].body+'<\/div>'+getBooklist(l[j].recommend_novelinfo)+\"<br><br>\";\n \t}\n \n reply = \"<hr><br><br>全部讨论({{$.data.booklist_desc.reply_count}})回复<br><br>\"+reply\n \t}\n \n\t html = result + '<div class=\"booklists\">'+getBooklist(list)+reply+'<\/div>';\n\t \n\t result = String(html)\n.replace(\/<div class=\"comment\">\\s*<\\\/div>|<span class=\"level\">\\s* 级 \\s*<\\\/span>|全部讨论(0)回复\/g,'').replace(\/荐书描述 共本\/,'');\n result = replaceEmoticons(result);\n result = \/subjectDetail\/.test(baseUrl)?result.replace(\/荐书描述 共\\d+本\/,'找书描述'):result;\n result += `<script>\n function addShelf(bookid){\n booksrc = \"http:\/\/app-cdn.jjwxc.net\/androidapi\/novelbasicinfo?novelId=\"+bookid;\n booksrc = \\`legado:\/\/import\/addToBookshelf?src=\\${encodeURIComponent(booksrc)}\\`;\n window.open(booksrc)\n }\n <\/script>`\n \n \n }catch(e){\n \tjava.log(e)\n \t}\n}else{\n \n \n \"<title>感谢你的打赏<\/title>\"+java.hexDecodeToString(src)\n\n}\n<\/js>",
"ruleDescription": "@js:\nif(\/data:pic;base64\/.test(baseUrl)){\n\tresult = java.base64Decode(baseUrl.match(\/base64,(.*?),\/)[1]);\n\t}",
"ruleImage": "$.display_novelinfo[0].ebookurl||$.display_novelinfo[0].localImg||$.cover||$.localImg\n@js:\ntry{\n\tif(\/(?:postimg|bmp|alicdn|i9-static)\\.\/.test(result)){\n\tresult = \"https:\/\/i9-static.jjwxc.net\/novelimage.php?novelid={{$.display_novelinfo[0].novelid}}\";\n\t}else if(\/data:\/.test(baseUrl) || String(java.getString(\"$.url\"))){\n\t\t\n\t\timg = String(java.base64Decode(String(java.getString(\"$.url\")).match(\/base64,(.*?),\/)[1]));\n\t\tresult = java.base64Decode(img.match(\/atob\\('([^']+)'\/)[1])\n\t\t}else{\n\t\tresult = result\n\t\t}\n\t\theader = {\n\t\t\"headers\":{\n\t\t\t\"referer\":result.match(\/(^https?:\\\/\\\/.*?\\\/)\/)?.[1]\n\t\t\t}\n\t\t}\nresult = (result +\",\"+ JSON.stringify(header)).replace(\/wx\\d+\/,'wx2')\n}catch(e){\n\tjava.log(e)\n\t}\nresult",
"ruleLink": "<js>\ndata_type = java.getString(\"$.data_type||$.examine_status||$.display_status\");\nif(data_type==\"2\"){\n\t\"https:\/\/app-cdn.jjwxc.com\/app.jjwxc\/android\/reading\/Booklist\/getDetail?listid={{$.listid}}\"\n\t}else if(\/http\/.test(baseUrl)){\n\t\t\"https:\/\/app.jjwxc.org\/app.jjwxc\/android\/reading\/BookListFindBook\/subjectDetail?versionCode=357&listid={{$.listid}}\";\n\t\tif(String(java.getString(\"$.url\")))`http:\/\/www.baidu.com@js:'${java.getString(\"$.url\")}'`;\n\t\t}else{\n\t\t\t`http:\/\/www.baidu.com@js:'${baseUrl}'`\n\t\t\t}\n<\/js>",
"ruleNextPage": "<js>\nif(\/rec_new_offset\/.test(baseUrl)){\n\t\n\tresult = \"https:\/\/app.jjwxc.org\/app.jjwxc\/android\/reading\/BookListFindBook\/square?versionCode=357&rec_new_offset={{$.data.rec_new_offset}}&find_new_offset={{$.data.find_new_offset}}&rec_edit_offset={{$.data.rec_edit_offset}}\"\n\t}else if(\/page=\/.test(baseUrl)){\n\t\tresult = baseUrl.replace(\/page=\\d+\/,\"page=\"+(Number(baseUrl.match(\/page=(\\d+)\/)[1])+1));\n\t\t\n\t\t\t}\n\t\t\n<\/js>",
"rulePubDate": "【{{java.getString(\"$.data_type||$.examine_status||$.display_status\")==1?\"🔍找书\":\"📖荐书\"}}】•{{$.level}}级 {{$.recommend_count||$.booknum}}本 {{$.fav_count||$.favnum}}收藏 | {{$.introduction}}\n@js:result = result.replace(\/•级\/g,'')\n.replace(\/【📖荐书】 本 收藏|\\s*\\|\\s*$\/g,'');",
"ruleTitle": "$.subject||$.title||$.listname##<\/*.*?>",
"searchUrl": "https:\/\/app.jjwxc.org\/app.jjwxc\/android\/reading\/BookListSearch\/search?versionCode=357&keywords={{key}}&page=1&sort=fav_count",
"shouldOverrideUrlLoading": "if(\/[\\?#&]book[AN]\/.test(url)){\n\ttitle = url.match(\/[\\?#&]book[AN].+?=(.*)\/)[1];\n\tURLDecoder = Packages.java.net.URLDecoder;\n\tgb2312Str = URLDecoder.decode(title,\"gbk\");\n utf8Str = URLDecoder.decode(title,\"utf-8\");\n\t result = gb2312Str.length() >= utf8Str.length();\n\t title = result?decodeURI(title):gb2312Str;\n\t java.searchBook(title);\n result = true\n\t}",
"showWebLog": true,
"singleUrl": false,
"sortUrl": "\n热门书单::https:\/\/android.jjwxc.net\/app.jjwxc\/android\/reading\/BookListFindBook\/hotSubjectMore?versionCode=429\n\n书单广场::https:\/\/app.jjwxc.org\/app.jjwxc\/android\/reading\/BookListFindBook\/square?versionCode=357&rec_new_offset=0&find_new_offset=0&rec_edit_offset=0&page={{page}}\n\n搜索书单::https:\/\/app.jjwxc.org\/app.jjwxc\/android\/reading\/BookListSearch\/search?versionCode=357&keywords={{svg=String(java.base64Encode(`<svg width=\"1190\" height=\"300\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><rect width=\"100%\" height=\"100%\" fill=\"#ffffff\"\/><text x=\"200\" y=\"100\" font-family=\"Arial, sans-serif\" font-size=\"70\" fill=\"#333\" font-weight=\"bold\">输入要搜索的内容<\/text><\/svg>`));if(page==1){let a=\"\";try{a=java.getVerificationCode('data:image\/svg+xml;base64,'+svg);}catch(e){java.log(e)};if(a==\"\"){a=source.getVariable()}source.setVariable(a);a}else{source.getVariable()};}}&page=1&sort=fav_count\n\n搜索百合书单::https:\/\/android.jjwxc.com\/app.jjwxc\/android\/reading\/BookListSearch\/search?versionCode=358&page=1&sort=fav_count&must_xx=3&could_xx=5&book_num_range=0%2C252&data_type=1%2C2&keywords={{svg=String(java.base64Encode(`<svg width=\"1190\" height=\"300\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><rect width=\"100%\" height=\"100%\" fill=\"#ffffff\"\/><text x=\"200\" y=\"100\" font-family=\"Arial, sans-serif\" font-size=\"70\" fill=\"#333\" font-weight=\"bold\">输入要搜索的内容<\/text><\/svg>`));if(page==1){let a=\"\";try{a=java.getVerificationCode('data:image\/svg+xml;base64,'+svg);}catch(e){java.log(e)};if(a==\"\"){a=source.getVariable()}source.setVariable(a);a}else{source.getVariable()};}}\n\n支持源作者::data:pic;base64,PGltZyBzdHlsZT0id2lkdGg6MTAwJSIgc3JjPSJhYm91dDpibGFuayIgb25lcnJvcj0idGhpcy5zcmM9YXRvYignYUhSMGNITTZMeTluYVhSbFpTNWpiMjB2WjNWaGJtVnlNREF4TVRJMUwySnZiMnR6YjNWeVkyVXZjbUYzTDIxaGMzUmxjaThsUlRVbE9VSWxRa1VsUlRjbE9Ea2xPRGN2WjNWaGJtVnlMbmRsWW5BPScpIj4KCg==,{\"type\":\"html\"}",
"sourceComment": "\/\/点击右上角三点,设置源变量搜索书单,或者下拉搜索",
"sourceGroup": "阅读",
"sourceIcon": "https:\/\/m-static.jjwxc.net\/images\/wap\/logo.png",
"sourceName": " 📖\n晋江书单",
"sourceUrl": "📖晋江书单",
"style": "a:link {color:#415E44;}\na:visited{color:#8EB28B}\n.listname{\n\tfont-size:12px;\n\theight:4px;\n\tfont-weight:bolder\n\t}\n.level{\n\tbackground:#9DD8ED;\n\tfont-size:12px;\n\tborder-radius:8px;\n\t}\n.dateline{\n\tcolor:#BABABB;\n\tfont-size:12px\n\t}\n.introduction{\n\tborder:2px dashed #3A9DBF;\n\tborder-radius:10px;\n\t}\n.introduction p{\n\ttext-indent: 3ch;\n\tmargin:5px;\n\tfont-size:12px;\n\tfont-weight:bold\n\t}\n.des{\n\tmargin-top:10px;\n\tmargin-bottom:0px;\n\tmargin-left:18px;\n\tfont-weight:bolder;\n\tcolor:#1D5F22\n}\n.bookdes{\n\tdisplay: flex;\n\tflex-direction:row;\n\tmargin:5px;\n\twidth:100%;\n\tposition: relative;\n\t}\n.book{\n\twidth:100%;\n\tdisplay: flex;\n\tflex-direction:column;\n\talign-items:flex-start;\n\tmargin-bottom:8px;\n\t}\n.pic{\n\twidth:25vw;\n\tmargin-right:20px;\n\t}\n.pic img{\n\tboder:1px solid #C4C4C4;\n\tborder-radius:5px;\n box-shadow: 1px 2px 2px black;\n\twidth:97%;\n\theight:auto;\n\t}\n.details{\n\twidth:72vw;\n\tmargin-left:25px;\n\t}\n\n.name{\n\tfont-size:13px;\n\tcolor:#000;\n\t}\n.author{\n\tcolor:#929292;\n\tfont-size:12px;\n\tdisplay:inline-block;\n\tposition:absolute;\n\tright:5px;\n\t}\n.tag{\n\tcolor:#929292;\n\tfont-size:10px;\n\tmargin-top:-10px;\n\t}\n.comment{\n\tpadding:10px;\n\tmargin-bottom:18px;\n\tmargin-top:-3px;\n\tbackground:#E8F6E9;\n\tborder-radius:5px;\n\twidth:100%;\n font-size:13px\n\t}",
"type": 0
}