晋江书单
https://app.jjwxc.org
分享者: guaner001125 (317)发布时间: 2024/11/08
//点击右上角三点,设置源变量搜索书单
{ "articleStyle": 2, "customOrder": 30, "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": "document.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)},{\"origin\":\"https:\/\/m.jjwxc.net\/channel\/\"}`;\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 \t\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", "lastUpdateTime": 0, "loadWithBaseUrl": true, "ruleArticles": "$.data.data[*]", "ruleContent": "<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\n<br>\n<br>\n\n<js>\ntry{\n function getBooklist(list){\n \tlet html=\"\";\n \tfor(i in list){\n \t $ = list[i];\n \t let novelid = \"https:\/\/m.jjwxc.net\/book2\/\"+$.novelid;\n \t let cover = $.cover;\n \t let novelname = $.novelname;\n \t let authorname = $.authorname;\n \t let novelstep_name = $.novelstep_name || $.novelstep_str;\n \t let novelsize = $.novelsize;\n \t let novel_review_score = $.novel_review_score || ($.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 || \"\";\n \t let novelclass_str = $.novelclass_str;\n \t \n\t html +=`\n\t <div class=\"book\">\n\t <div class=\"bookdes\">\n\t <div class=\"pic\">\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=\"${novelid}\">${novelname}<\/a>\n\t <\/span>\n\t <br>\n\t <span class=\"author\">\n\t ——${authorname}\n\t <\/span>\n\t <\/p>\t\n\t <p class=\"tag\">\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;\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,'');\n result = \/subjectDetail\/.test(baseUrl)?result.replace(\/荐书描述 共\\d+本\/,'找书描述'):result\n }catch(e){\n \t\n \t}\n<\/js>", "ruleImage": "$.display_novelinfo[0].ebookurl||$.display_novelinfo[0].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{\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\");\nif(data_type==\"2\"){\n\t\"https:\/\/app-cdn.jjwxc.com\/app.jjwxc\/android\/reading\/Booklist\/getDetail?listid={{$.listid}}\"\n\t}else{\n\t\t\"https:\/\/app.jjwxc.org\/app.jjwxc\/android\/reading\/BookListFindBook\/subjectDetail?versionCode=357&listid={{$.listid}}\"\n\t\t}\n<\/js>", "ruleNextPage": "<js>\nif(\/rec_new_offset\/.test(baseUrl)){\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{\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\")==1?\"找书\":\"荐书\"}}•{{$.level}}级 {{$.recommend_count}}本 {{$.fav_count}}收藏##•级", "ruleTitle": "$.subject##<\/*.*?>", "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\t}", "singleUrl": false, "sortUrl": "书单广场::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={{source.getVariable()}}&page=1&sort=fav_count\n\n搜索百合书单::https:\/\/android.jjwxc.com\/app.jjwxc\/android\/reading\/BookListSearch\/search?versionCode=358&keywords={{source.getVariable()}}&page=1&sort=fav_count&must_xx=3&could_xx=5&book_num_range=0%2C252&data_type=1%2C2", "sourceComment": "\/\/点击右上角三点,设置源变量搜索书单", "sourceIcon": "https:\/\/m-static.jjwxc.net\/images\/wap\/logo.png", "sourceName": "晋江书单", "sourceUrl": "https:\/\/app.jjwxc.org", "style": "a:link {color:#415E44;}\na:visited{color:#8EB28B}\n.listname{\n\tfont-size:20px;\n\theight:4px;\n\tfont-weight:bolder\n\t}\n.level{\n\tbackground:#9DD8ED;\n\tfont-size:15px;\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:18px;\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\t}\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:20px;\n\tcolor:#000;\n\t}\n.author{\n\tcolor:#929292;\n\tfont-size:15px;\n\tdisplay:inline-block;\n\tposition:absolute;\n\tright:5px;\n\t}\n.tag{\n\tcolor:#929292;\n\tfont-size:12px;\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\t}" }