番茄(发现)
https://fanqienovel.com
hahafeiwu (2679)09/08 23:03
呃,不动了,燃尽了,就这样留存吧。
{
"bookSourceComment": "此书源为个人用AI整合,主要功能是查找书籍。免费用户仅可阅读前十章,登录并购买官方会员后可解锁全部内容。",
"bookSourceGroup": "不需要启用",
"bookSourceName": "番茄(发现)",
"bookSourceType": 0,
"bookSourceUrl": "https:\/\/fanqienovel.com",
"customButton": false,
"customOrder": 2,
"enabled": true,
"enabledCookieJar": true,
"enabledExplore": true,
"eventListener": false,
"exploreUrl": "<js>\n\/\/ ========== 基础配置 ==========\nvar BASE_URL = \"https:\/\/fanqienovel.com\/api\/author\/library\/book_list\/v\/\";\n\nvar man = {\"西方奇幻\":\"1141\",\"东方仙侠\":\"1140\",\"科幻末世\":\"8\",\"男频衍生\":\"1016\",\"都市高武\":\"1014\",\"悬疑灵异\":\"751\",\"悬疑脑洞\":\"539\",\"抗战谍战\":\"504\",\"历史古代\":\"273\",\"历史脑洞\":\"272\",\"都市种田\":\"263\",\"都市脑洞\":\"262\",\"都市日常\":\"261\",\"玄幻脑洞\":\"257\",\"战神赘婿\":\"27\",\"动漫衍生\":\"718\",\"游戏体育\":\"746\",\"传统玄幻\":\"258\",\"都市修真\":\"124\",\"衍生\":\"1079\",\"仕途\":\"558\",\"综影视\":\"1058\",\"天灾\":\"658\",\"第一人称\":\"871\",\"赛博朋克\":\"873\",\"第四天灾\":\"855\",\"规则怪谈\":\"851\",\"搞笑轻松\":\"778\",\"古代\":\"758\",\"悬疑\":\"10\",\"克苏鲁\":\"705\",\"都市异能\":\"516\",\"末日求生\":\"515\",\"灵气复苏\":\"514\",\"高武世界\":\"513\",\"异世大陆\":\"512\",\"东方玄幻\":\"511\",\"谍战\":\"507\",\"清朝\":\"503\",\"宋朝\":\"501\",\"断层\":\"500\",\"武将\":\"497\",\"国运\":\"496\",\"综漫\":\"465\",\"开局\":\"453\",\"架空\":\"452\",\"奇幻仙侠\":\"259\",\"都市\":\"1\",\"玄幻\":\"7\",\"历史\":\"12\",\"体育\":\"15\",\"武侠\":\"16\",\"多女主\":\"91\",\"赘婿\":\"25\",\"全能\":\"856\",\"大佬\":\"520\",\"大小姐\":\"519\",\"特工\":\"518\",\"游戏主播\":\"509\",\"神探\":\"506\",\"贵族\":\"502\",\"皇帝\":\"498\",\"单女主\":\"389\",\"校花\":\"385\",\"无女主\":\"391\",\"女帝\":\"378\",\"特种兵\":\"375\",\"反派\":\"369\",\"神医\":\"26\",\"奶爸\":\"42\",\"学霸\":\"82\",\"天才\":\"90\",\"腹黑\":\"92\",\"扮猪吃虎\":\"93\",\"都市江湖\":\"1460\",\"风水秘术\":\"1455\",\"斩神衍生\":\"1062\",\"十日衍生\":\"1060\",\"西游衍生\":\"373\",\"公版衍生\":\"1037\",\"红楼衍生\":\"1036\",\"甄嬛衍生\":\"1035\",\"如懿衍生\":\"1034\",\"惊悚游戏\":\"537\",\"卡牌\":\"874\",\"山海经\":\"875\",\"捉鬼\":\"867\",\"剑修\":\"868\",\"废土\":\"869\",\"副本\":\"864\",\"黑科技\":\"854\",\"无脑爽\":\"850\",\"魂穿\":\"852\",\"高手下山\":\"845\",\"黑化\":\"846\",\"迪化\":\"843\",\"发家致富\":\"840\",\"无后宫\":\"838\",\"争霸\":\"837\",\"1v1\":\"834\",\"升级流\":\"830\",\"灵魂互换\":\"831\",\"科举\":\"832\",\"封神\":\"731\",\"四合院\":\"495\",\"电竞\":\"508\",\"双重生\":\"524\",\"乡村\":\"11\",\"同人\":\"538\",\"打脸\":\"522\",\"破案\":\"505\",\"囤物资\":\"494\",\"钓鱼\":\"493\",\"网游\":\"372\",\"奥特同人\":\"367\",\"求生\":\"379\",\"无敌\":\"384\",\"民国\":\"390\",\"九叔\":\"383\",\"穿书\":\"382\",\"聊天群\":\"381\",\"大秦\":\"377\",\"龙珠\":\"376\",\"漫威\":\"374\",\"神奇宝贝\":\"371\",\"海贼\":\"370\",\"火影\":\"368\",\"职场\":\"127\",\"明朝\":\"126\",\"家庭\":\"125\",\"三国\":\"67\",\"末世\":\"68\",\"直播\":\"69\",\"无限流\":\"70\",\"诸天万界\":\"71\",\"大唐\":\"73\",\"宠物\":\"74\",\"外卖\":\"75\",\"星际\":\"77\",\"美食\":\"78\",\"剑道\":\"80\",\"盗墓\":\"81\",\"灵异\":\"100\",\"鉴宝\":\"17\",\"系统\":\"19\",\"神豪\":\"20\",\"重生\":\"36\",\"穿越\":\"37\",\"二次元\":\"39\",\"海岛\":\"40\",\"娱乐圈\":\"43\",\"空间\":\"44\",\"推理\":\"61\"}\nvar girls ={\"女频悬疑\":\"747\",\"古风世情\":\"1139\",\"科幻末世\":\"8\",\"女频衍生\":\"1015\",\"民国言情\":\"1017\",\"悬疑脑洞\":\"539\",\"青春甜宠\":\"749\",\"双男主\":\"275\",\"古言脑洞\":\"253\",\"现言脑洞\":\"267\",\"玄幻言情\":\"248\",\"宫斗宅斗\":\"246\",\"豪门总裁\":\"748\",\"动漫衍生\":\"718\",\"星光璀璨\":\"745\",\"游戏体育\":\"746\",\"职场婚恋\":\"750\",\"双女主\":\"704\",\"年代\":\"79\",\"种田\":\"23\",\"快穿\":\"24\",\"古言权谋\":\"1317\",\"悬疑恋爱\":\"1169\",\"纯爱\":\"1012\",\"衍生\":\"1079\",\"仕途\":\"558\",\"综影视\":\"1058\",\"天灾\":\"658\",\"第一人称\":\"871\",\"赛博朋克\":\"873\",\"规则怪谈\":\"851\",\"搞笑轻松\":\"778\",\"古代\":\"758\",\"悬疑\":\"10\",\"谍战\":\"507\",\"职场商战\":\"485\",\"虐恋情深\":\"481\",\"日久生情\":\"474\",\"豪门世家\":\"473\",\"综漫\":\"465\",\"异世穿越\":\"464\",\"独宠\":\"460\",\"现代言情\":\"3\",\"古代言情\":\"5\",\"武侠\":\"16\",\"幻想言情\":\"32\",\"位尊权重\":\"1456\",\"总裁\":\"29\",\"忠犬\":\"865\",\"全能\":\"856\",\"白切黑\":\"853\",\"双学霸\":\"849\",\"作精\":\"521\",\"大佬\":\"520\",\"大小姐\":\"519\",\"游戏主播\":\"509\",\"神探\":\"506\",\"贵族\":\"502\",\"将军\":\"492\",\"毒医\":\"491\",\"厨娘\":\"490\",\"律师\":\"488\",\"医生\":\"487\",\"明星\":\"486\",\"替身\":\"470\",\"双面\":\"469\",\"冰山\":\"468\",\"古灵精怪\":\"459\",\"天作之合\":\"455\",\"可盐可甜\":\"454\",\"无CP\":\"392\",\"病娇\":\"380\",\"反派\":\"369\",\"萌宝\":\"28\",\"宠妻\":\"30\",\"学霸\":\"82\",\"公主\":\"83\",\"皇后\":\"84\",\"王妃\":\"85\",\"女强\":\"86\",\"皇叔\":\"87\",\"嫡女\":\"88\",\"精灵\":\"89\",\"天才\":\"90\",\"腹黑\":\"92\",\"扮猪吃虎\":\"93\",\"团宠\":\"94\",\"男二上位\":\"1457\",\"代嫁代娶\":\"1458\",\"攻略反派\":\"1459\",\"风水秘术\":\"1455\",\"斩神衍生\":\"1062\",\"十日衍生\":\"1060\",\"西游衍生\":\"373\",\"公版衍生\":\"1037\",\"红楼衍生\":\"1036\",\"甄嬛衍生\":\"1035\",\"如懿衍生\":\"1034\",\"惊悚游戏\":\"537\",\"追夫\":\"872\",\"山海经\":\"875\",\"胎穿\":\"876\",\"捉鬼\":\"867\",\"剑修\":\"868\",\"相互救赎\":\"860\",\"宠夫\":\"861\",\"无脑爽\":\"850\",\"魂穿\":\"852\",\"黑化\":\"846\",\"养崽\":\"847\",\"年龄差\":\"848\",\"真假千金\":\"844\",\"久别重逢\":\"839\",\"发家致富\":\"840\",\"养成\":\"835\",\"互宠\":\"836\",\"1v1\":\"834\",\"灵魂互换\":\"831\",\"科举\":\"832\",\"年下\":\"829\",\"婚恋\":\"34\",\"封神\":\"731\",\"四合院\":\"495\",\"电竞\":\"508\",\"双重生\":\"524\",\"前世今生\":\"523\",\"双洁\":\"702\",\"追妻火葬场\":\"616\",\"乡村\":\"11\",\"逃荒\":\"557\",\"同人\":\"538\",\"打脸\":\"522\",\"破案\":\"505\",\"囤物资\":\"494\",\"钓鱼\":\"493\",\"HE\":\"484\",\"相爱相杀\":\"483\",\"暗恋\":\"482\",\"逃婚\":\"480\",\"带球跑\":\"479\",\"强强\":\"478\",\"一见钟情\":\"477\",\"双向奔赴\":\"476\",\"破镜重圆\":\"475\",\"契约婚姻\":\"471\",\"隐婚\":\"467\",\"闪婚\":\"466\",\"今穿古\":\"463\",\"古穿今\":\"462\",\"群穿\":\"461\",\"护短\":\"458\",\"虐渣\":\"457\",\"情有独钟\":\"456\",\"马甲\":\"266\",\"先婚后爱\":\"265\",\"医术\":\"247\",\"女扮男装\":\"388\",\"青梅竹马\":\"387\",\"无敌\":\"384\",\"民国\":\"390\",\"穿书\":\"382\",\"职场\":\"127\",\"家庭\":\"125\",\"末世\":\"68\",\"直播\":\"69\",\"无限流\":\"70\",\"兽世\":\"72\",\"清穿\":\"76\",\"星际\":\"77\",\"美食\":\"78\",\"盗墓\":\"81\",\"虐文\":\"95\",\"甜宠\":\"96\",\"灵异\":\"100\",\"校园\":\"4\",\"系统\":\"19\",\"重生\":\"36\",\"穿越\":\"37\",\"二次元\":\"39\",\"娱乐圈\":\"43\",\"空间\":\"44\",\"推理\":\"61\"}\nvar action = {\"都市\":\"1\",\"都市生活\":\"2\",\"现代言情\":\"3\",\"古代言情\":\"5\",\"玄幻\":\"7\",\"科幻\":\"8\",\"悬疑\":\"10\",\"历史\":\"12\",\"武侠\":\"16\",\"幻想言情\":\"32\",\"影视小说\":\"45\",\"诗歌散文\":\"46\",\"文学小说\":\"47\",\"生活\":\"48\",\"社会科学\":\"50\",\"名著经典\":\"51\",\"科技\":\"52\",\"经济管理\":\"53\",\"教育\":\"54\",\"成功励志\":\"56\",\"推理悬疑\":\"61\",\"文化历史\":\"62\",\"中国名著\":\"98\",\"外国名著\":\"99\",\"战神\":\"27\",\"萌宝\":\"28\",\"豪门总裁\":\"29\",\"宠妻\":\"30\",\"学霸\":\"82\",\"公主\":\"83\",\"皇后\":\"84\",\"王妃\":\"85\",\"女强\":\"86\",\"嫡女\":\"88\",\"精灵\":\"89\",\"天才\":\"90\",\"腹黑\":\"92\",\"校园\":\"4\",\"种田\":\"23\",\"重生\":\"36\",\"穿越\":\"37\",\"娱乐圈\":\"43\",\"推理\":\"61\",\"直播\":\"69\",\"大唐\":\"73\",\"美食\":\"78\",\"年代\":\"79\",\"剑道\":\"80\",\"盗墓\":\"81\",\"甜宠\":\"96\",\"战争\":\"97\",\"灵异\":\"100\",\"国学\":\"116\",\"家庭\":\"125\",\"明朝\":\"126\",\"职场\":\"127\",\"法律\":\"142\",\"宫斗宅斗\":\"246\",\"玄幻言情\":\"248\",\"古言脑洞\":\"253\",\"都市日常\":\"261\",\"都市脑洞\":\"262\",\"现言脑洞\":\"267\",\"历史古代\":\"273\",\"两性\":\"274\",\"特种兵\":\"375\",\"青梅竹马\":\"387\",\"女扮男装\":\"388\",\"民国\":\"390\",\"外国文学\":\"397\",\"古代文学\":\"398\",\"当代文学\":\"399\",\"现实小说\":\"400\",\"文学理论\":\"401\",\"中国历史\":\"402\",\"世界历史\":\"403\",\"历史传记\":\"404\",\"人文社科\":\"405\",\"哲学宗教\":\"406\",\"心理学\":\"407\",\"政治军事\":\"408\",\"人物传记\":\"409\",\"个人成长\":\"410\",\"思维智商\":\"411\",\"人际交往\":\"412\",\"文化艺术\":\"413\",\"亲子家教\":\"415\",\"保健养生\":\"416\",\"时尚美妆\":\"418\",\"美食休闲\":\"419\",\"家居旅游\":\"420\",\"风水占卜\":\"421\",\"经典国学\":\"423\",\"架空\":\"452\",\"今穿古\":\"463\",\"冰山\":\"468\",\"豪门世家\":\"473\",\"一见钟情\":\"477\",\"暗恋\":\"482\",\"HE\":\"484\",\"学校教育\":\"721\",\"成人教育\":\"722\",\"豪门爽文\":\"745\",\"悬疑恋爱\":\"747\",\"霸总\":\"748\",\"青春甜宠\":\"749\",\"职场婚恋\":\"750\",\"悬疑灵异\":\"751\",\"官场\":\"788\"};\n\nvar TAGS = {\n \"男频\": man,\n \"女频\": girls,\n \"出版\": action\n};\n\nvar GENDERS = [\"全部\", \"女生\", \"男生\"];\nvar STATUSES = [\"全部\", \"连载中\", \"已完结\"];\nvar WORDCOUNTS = [\"全部\", \"30万以下\", \"30-50万\", \"50-100万\", \"100-200万\", \"200万以上\"];\nvar SORTS = [\"最热\", \"最新\", \"字数\"];\n\nvar GENDER_ID = {\"全部\":\"-1\",\"女生\":\"0\",\"男生\":\"1\"};\nvar STATUS_ID = {\"全部\":\"-1\",\"连载中\":\"1\",\"已完结\":\"0\"};\nvar WORDCOUNT_ID = {\"全部\":\"-1\",\"30万以下\":\"0\",\"30-50万\":\"1\",\"50-100万\":\"2\",\"100-200万\":\"3\",\"200万以上\":\"4\"};\nvar SORT_ID = {\"最热\":\"0\",\"最新\":\"1\",\"字数\":\"2\"};\n\nvar BD = [\"男频\", \"女频\", \"出版\"];\n\n\/\/ ========== 状态 ==========\nvar st = {};\ntry { st = JSON.parse(source.getVariable()); } catch (e) { st = {}; }\n\nvar bd = st.board || \"男频\";\nif (BD.indexOf(bd) === -1) bd = \"男频\";\nvar gender = st.gender || \"全部\";\nvar status = st.status || \"全部\";\nvar wordcount = st.wordcount || \"全部\";\nvar sort = st.sort || \"最热\";\nvar tagSel = st.tag || \"\";\n\n\/\/ ========== Action ==========\nvar A_board = \"var s={};try{s=JSON.parse(source.getVariable())}catch(e){};s.board=infoMap['分类']||s.board||'男频';s.tag='';source.setVariable(JSON.stringify(s));java.refreshExplore();\";\nvar A_gender = \"var s={};try{s=JSON.parse(source.getVariable())}catch(e){};s.gender=infoMap['性别']||'全部';source.setVariable(JSON.stringify(s));java.refreshExplore();\";\nvar A_status = \"var s={};try{s=JSON.parse(source.getVariable())}catch(e){};s.status=infoMap['状态']||'全部';source.setVariable(JSON.stringify(s));java.refreshExplore();\";\nvar A_wordcount = \"var s={};try{s=JSON.parse(source.getVariable())}catch(e){};s.wordcount=infoMap['字数']||'全部';source.setVariable(JSON.stringify(s));java.refreshExplore();\";\nvar A_sort = \"var s={};try{s=JSON.parse(source.getVariable())}catch(e){};s.sort=infoMap['排序']||'最热';source.setVariable(JSON.stringify(s));java.refreshExplore();\";\n\n\/\/ ========== URL ==========\nfunction buildUrl(tagId) {\n return BASE_URL +\n \"?page_count=10\" +\n \"&page_index={{(page-1)*10}}\" +\n \"&gender=\" + (GENDER_ID[gender] || \"-1\") +\n \"&category_id=\" + tagId +\n \"&creation_status=\" + (STATUS_ID[status] || \"-1\") +\n \"&word_count=\" + (WORDCOUNT_ID[wordcount] || \"-1\") +\n \"&book_type=-1\" +\n \"&sort=\" + (SORT_ID[sort] || \"0\");\n}\n\n\/\/ ========== UI ==========\nvar ui = [];\n\n\/\/ ===== 我的书架分组(直接展开) =====\nui.push({ title: \"📚 我的书架\", url: \"\", style: { layout_flexGrow: 1, layout_flexBasisPercent: 1 } });\n\nvar shelfRes = java.ajax(\"https:\/\/fanqienovel.com\/reading\/bookapi\/bookshelf\/info\/v:version\/?aid=1967&iid=0&version_code=56910&update_version_code=56910\");\nvar shelfParsed = JSON.parse(shelfRes);\nvar shelfData = (shelfParsed.data && shelfParsed.data.book_shelf_info) || [];\n\n\/\/ 按 group_name 分组\nvar groupMap = {};\nfor (var i = 0; i < shelfData.length; i++) {\n var item = shelfData[i];\n var gName = item.group_name || \"未分组\";\n if (!groupMap[gName]) groupMap[gName] = [];\n groupMap[gName].push(item.book_id);\n}\n\nObject.keys(groupMap).forEach(function(gName) {\n var bookIds = groupMap[gName];\n var option = {\n method: \"POST\",\n body: JSON.stringify({ books: bookIds.map(function(id) { return { book_id: id, item_id: \"0\" }; }) })\n };\n ui.push({\n title: \" ▌ \" + gName + \" (\" + bookIds.length + \")\",\n url: \"https:\/\/fanqienovel.com\/api\/bookshelf\/multidetail,\" + JSON.stringify(option),\n style: {\n layout_flexGrow: 1,\n layout_flexBasisPercent: 0.25\n }\n });\n});\n\n\/\/ ===== 分隔 =====\nui.push({ title: \"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\", url: \"\", style: { layout_flexGrow: 1, layout_flexBasisPercent: 1 } });\n\n\/\/ ===== 分类选择器 =====\nui.push({ title: \"分类\", type: \"select\", chars: BD, default: bd, action: A_board, style: { layout_flexBasisPercent: 1 } });\nui.push({ title: \"性别\", type: \"select\", chars: GENDERS, default: gender, action: A_gender, style: { layout_flexBasisPercent: 1 } });\nui.push({ title: \"状态\", type: \"select\", chars: STATUSES, default: status, action: A_status, style: { layout_flexBasisPercent: 1 } });\nui.push({ title: \"字数\", type: \"select\", chars: WORDCOUNTS, default: wordcount, action: A_wordcount, style: { layout_flexBasisPercent: 1 } });\nui.push({ title: \"排序\", type: \"select\", chars: SORTS, default: sort, action: A_sort, style: { layout_flexBasisPercent: 1 } });\n\n\/\/ ===== 标签标题 =====\nui.push({ title: \" 🔶🔸\" + bd + \" 标签🔸🔶 \", url: \"\", style: { layout_flexGrow: 1, layout_flexBasisPercent: 1 } });\n\n\/\/ ===== 标签展开 =====\nvar currentTags = TAGS[bd];\nObject.keys(currentTags).forEach(function(tag) {\n var tagId = currentTags[tag];\n var isSel = (tagSel == tag);\n ui.push({\n title: (isSel ? \"▌\" : \" \") + tag,\n url: buildUrl(tagId),\n style: {\n layout_flexGrow: 1,\n layout_flexBasisPercent: 0.25\n }\n });\n});\n\nJSON.stringify(ui);\n\n<\/js>",
"header": "{\n \"User-Agent\": \"Mozilla\/5.0 (Linux; Android 10; MI 8 Lite Build\/QKQ1.190910.002) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/113.0.5672.62 Mobile Safari\/537.36\",\n \"Referer\": \"https:\/\/fanqienovel.com\/\",\n \"ismobile\": 0\n }",
"jsLib": "function GetTitleDecode(res) {\n var data1 = [\"s\", \"?\", \"作\", \"口\", \"在\", \"他\", \"能\", \"并\", \"B\", \"士\", \"4\", \"U\", \"克\", \"才\", \"正\", \"们\", \"字\", \"声\", \"高\", \"全\", \"尔\", \"活\", \"者\", \"动\", \"其\", \"主\", \"报\", \"多\", \"望\", \"放\", \"h\", \"w\", \"次\", \"年\", \"?\", \"中\", \"3\", \"特\", \"于\", \"十\", \"入\", \"要\", \"男\", \"同\", \"G\", \"面\", \"分\", \"方\", \"K\", \"什\", \"再\", \"教\", \"本\", \"己\", \"结\", \"1\", \"等\", \"世\", \"N\", \"?\", \"说\", \"g\", \"u\", \"期\", \"Z\", \"外\", \"美\", \"M\", \"行\", \"给\", \"9\", \"文\", \"将\", \"两\", \"许\", \"张\", \"友\", \"0\", \"英\", \"应\", \"向\", \"像\", \"此\", \"白\", \"安\", \"少\", \"何\", \"打\", \"气\", \"常\", \"定\", \"间\", \"花\", \"见\", \"孩\", \"它\", \"直\", \"风\", \"数\", \"使\", \"道\", \"第\", \"水\", \"已\", \"女\", \"山\", \"解\", \"d\", \"P\", \"的\", \"通\", \"关\", \"性\", \"叫\", \"儿\", \"L\", \"妈\", \"问\", \"回\", \"神\", \"来\", \"S\", \"?\", \"四\", \"里\", \"前\", \"国\", \"些\", \"O\", \"v\", \"l\", \"A\", \"心\", \"平\", \"自\", \"无\", \"军\", \"光\", \"代\", \"是\", \"好\", \"却\", \"c\", \"得\", \"种\", \"就\", \"意\", \"先\", \"立\", \"z\", \"子\", \"过\", \"Y\", \"j\", \"表\", \"?\", \"么\", \"所\", \"接\", \"了\", \"名\", \"金\", \"受\", \"J\", \"满\", \"眼\", \"没\", \"部\", \"那\", \"m\", \"每\", \"车\", \"度\", \"可\", \"R\", \"斯\", \"经\", \"现\", \"门\", \"明\", \"V\", \"如\", \"走\", \"命\", \"y\", \"6\", \"E\", \"战\", \"很\", \"上\", \"f\", \"月\", \"西\", \"7\", \"长\", \"夫\", \"想\", \"话\", \"变\", \"海\", \"机\", \"x\", \"到\", \"W\", \"一\", \"成\", \"生\", \"信\", \"笑\", \"但\", \"父\", \"开\", \"内\", \"东\", \"马\", \"日\", \"小\", \"而\", \"后\", \"带\", \"以\", \"三\", \"几\", \"为\", \"认\", \"X\", \"死\", \"员\", \"目\", \"位\", \"之\", \"学\", \"远\", \"人\", \"音\", \"呢\", \"我\", \"q\", \"乐\", \"象\", \"重\", \"对\", \"个\", \"被\", \"别\", \"F\", \"也\", \"书\", \"稜\", \"D\", \"写\", \"还\", \"因\", \"家\", \"发\", \"时\", \"i\", \"或\", \"住\", \"德\", \"当\", \"o\", \"I\", \"比\", \"觉\", \"然\", \"吃\", \"去\", \"公\", \"a\", \"老\", \"亲\", \"情\", \"体\", \"太\", \"b\", \"万\", \"C\", \"电\", \"理\", \"?\", \"失\", \"力\", \"更\", \"拉\", \"物\", \"着\", \"原\", \"她\", \" 工\", \"实\", \"色\", \"感\", \"记\", \"看\", \"出\", \"相\", \"路\", \"大\", \"你\", \"侯\", \"2\", \"和\", \"?\", \"与\", \"p\", \"样\", \"新\", \"只\", \"便\", \"最\", \"不\", \"进\", \"T\", \"r\", \"做\", \"格\", \"母\", \"总\", \"爱\", \"身\", \"师\", \"轻\", \"知\", \"往\", \"加\", \"从\", \"?\", \"天\", \"e\", \"H\", \"?\", \"听\", \"场\", \"由\", \"快\", \"边\", \" 让\", \"把\", \"任\", \"8\", \"条\", \"头\", \"事\", \"至\", \"起\", \"点\", \"真\", \"手\", \"这\", \"难\", \"都\", \"界\", \"用\", \"法\", \"n\", \"处\", \"下\", \"又\", \"Q\", \"告\", \"地\", \"5\", \"k\", \"t\", \"岁\", \"有\", \"会\", \"果\", \"利\", \"民\"]\n var code = 58345;\n var content = '';\n var key='';\n var index='';\n var replacement='';\n for (var i = 0; i < res.length; i++) {\n key = res[i].charCodeAt(0);\n index = key - code;\n replacement =( data1[index] && data1[index] !== '?')? data1[index] : res[i];\n content += replacement;\n }\n return content;\n}\n\nfunction GetContentDecode(res) {\n var data2=[\"D\", \"在\", \"主\", \"特\", \"家\", \"军\", \"然\", \"表\", \"场\", \"4\", \"要\", \"只\", \"v\", \"和\", \"?\", \"6\", \"别\", \"还\", \"g\", \"现\", \"儿\", \"岁\", \"?\", \"?\", \"此\", \"象\", \"月\", \"3\", \"出\", \"战\", \"工\", \"相\", \"o\", \"男\", \"直\", \"失\", \"世\", \"F\", \"都\", \"平\", \"文\", \"什\", \"V\", \"O\", \"将\", \"真\", \"T\", \"那\", \"当\", \"?\", \"会\", \"立\", \"些\", \"u\", \"是\", \"十\", \"张\", \"学\", \"气\", \"大\", \"爱\", \"两\", \"命\", \"全\", \"后\", \"东\", \"性\", \"通\", \"被\", \"1\", \"它\", \"乐\", \"接\", \"而\", \"感\", \"车\", \"山\", \"公\", \"了\", \"常\", \"以\", \"何\", \"可\", \"话\", \"先\", \"p\", \"i\", \"叫\", \"轻\", \"M\", \"士\", \"w\", \"着\", \"变\", \"尔\", \"快\", \"l\", \"个\", \"说\", \"少\", \"色\", \"里\", \"安\", \"花\", \"远\", \"7\", \"难\", \"师\", \"放\", \"t\", \"报\", \"认\", \"面\", \"道\", \"S\", \"?\", \"克\", \"地\", \"度\", \"I\", \"好\", \"机\", \"U\", \"民\", \"写\", \"把\", \"万\", \"同\", \"水\", \"新\", \"没\", \"书\", \"电\", \"吃\", \"像\", \"斯\", \"5\", \"为\", \"y\", \"白\", \"几\", \"日\", \"教\", \"看\", \"但\", \"第\", \"加\", \"侯\", \"作\", \"上\", \"拉\", \"住\", \"有\", \"法\", \"r\", \"事\", \"应\", \"位\", \"利\", \"你\", \"声\", \"身\", \"国\", \"问\", \"马\", \"女\", \"他\", \"Y\", \"比\", \"父\", \"x\", \"A\", \"H\", \"N\", \"s\", \"X\", \"边\", \"美\", \"对\", \"所\", \"金\", \"活\", \"回\", \"意\", \"到\", \"z\", \"从\", \"j\", \"知\", \"又\", \"内\", \"因\", \"点\", \"Q\", \"三\", \"定\", \"8\", \"R\", \"b\", \"正\", \"或\", \"夫\", \"向\", \"德\", \"听\", \"更\", \"?\", \"得\", \"告\", \"并\", \"本\", \"q\", \"过\", \"记\", \"L\", \"让\", \"打\", \"f\", \"人\", \"就\", \"者\", \"去\", \"原\", \"满\", \"体\", \"做\", \"经\", \"K\", \"走\", \"如\", \"孩\", \"c\", \"G\", \"给\", \"使\", \"物\", \"?\", \"最\", \"笑\", \"部\", \"?\", \"员\", \"等\", \"受\", \"k\", \"行\", \"一\", \"条\", \"果\", \"动\", \"光\", \"门\", \"头\", \"见\", \"往\", \"自\", \"解\", \"成\", \"处\", \"天\", \"能\", \"于\", \"名\", \"其\", \"发\", \"总\", \"母\", \"的\", \"死\", \"手\", \"入\", \"路\", \"进\", \"心\", \"来\", \"h\", \"时\", \"力\", \"多\", \"开\", \"已\", \"许\", \"d\", \"至\", \"由\", \"很\", \"界\", \"n\", \"小\", \" 与\", \"Z\", \"想\", \"代\", \"么\", \"分\", \"生\", \"口\", \"再\", \"妈\", \"望\", \"次\", \"西\", \"风\", \"种\", \"带\", \"J\", \"?\", \"实\", \"情\", \"才\", \"这\", \"?\", \"E\", \"我\", \"神\", \"格\", \"长\", \"觉\", \"间\", \"年\", \"眼\", \"无\", \"不\", \"亲\", \"关\", \"结\", \"0\", \"友\", \"信\", \"下\", \"却\", \"重\", \"己\", \"老\", \"2\", \"音\", \"字\", \"m\", \"呢\", \"明\", \"之\", \"前\", \"高\", \"P\", \"B\", \"目\", \"太\", \"e\", \"9\", \"起\", \"稜\", \"她\", \"也\", \"W\", \"用\", \"方\", \"子\", \"英\", \"每\", \"理\", \"便\", \"四\", \"数\", \"期\", \"中\", \"C\", \"外\", \"样\", \"a\", \"海\", \"们\", \"任\"]\n var code = 58344;\n var content = '';\n var key='';\n var index='';\n var replacement='';\n for (var i = 0; i < res.length; i++) {\n key = res[i].charCodeAt(0);\n index = key - code;\n replacement =( data2[index] && data2[index] !== '?')? data2[index] : res[i];\n content += replacement;\n }\n return content;\n}\n\nfunction GetDecode(res) {\n var data3= ['体', 'y', '十', '现', '快', '便', '话', '却', '月', '物', '水', '的', '放', '知', '爱', '万', '?', '表', '风', '理', 'O', '老', '也', 'p', '常', '克', '平', '几', '最', '主', '她', 's', '将', '法', '情', 'o', '光', 'a', '我', '呢', 'J', '员', '太', '每', '望', '受', '教', 'w', '利', '军', '已', 'U', '人', '如', '变', '得', '要', '少', '斯', '门', '电', 'm', '男', '没', 'A', 'K', '国', '时', '中', '走', '么', '何', '口', '小', '向', '问', '轻', 'T', 'd', '神', '下', '间', '车', 'f', 'G', '度', 'D', '又', '大', '面', '远', '就', '写', 'j', '给', '通', '起', '实', 'E', '?', '它', '去', 'S', '到', '道', '数', '吃', '们', '加', 'P', '是', '无', '把', '事', '西', '多', '界', '?', '发', '新', '外', '活', '解', '孩', '只', '作', '前', 'Y', '尔', '经', '?', 'u', '心', '告', '父', '等', 'Q', '民', '全', '这', '9', '果', '安', '?', 'i', '母', '8', 'r', '说', '任', '先', '和', '地', 'C', '张', '战', '场', 'g', '像', 'c', 'q', '你', '使', '?', '样', '总', '目', 'x', '性', '处', '音', '头', '?', '应', '乐', '关', '能', '花', 'l', '当', '名', '手', '4', '重', '字', '声', '力', '友', '然', '生', '代', '内', '里', '本', '回', '真', '入', '师', '象', '?', '0', '点', 'R', ' 亲', 'V', '种', '动', '英', '命', 'Z', 'h', 'X', '做', '特', '边', '高', '有', 'B', '为', '期', '自', '年', '马', '认', '出', '接', '至', 'H', '正', '方', '感', '所', '明', '者', '稜', 'F', '住', '学', '还', '分', '意', '更', '其', 'n', '但', '比', '觉', '以', '由', '死', '家', '让', '失', '士', 'L', '2', 'I', '金', '叫', '身', '报', '听', 'w', '再', '原', '山', '海', '白', '很', '见', '5', '直', '位', '第', '工', '个', '开', '岁', '好', '用', '都', '于', '可', '同', '3', '次', '四', '?', '日', '信', '与', '女', '笑', '满', '并', '部', '什', '不', '从', '或', '机', '此', '?', '了', '记', '三', 'e', '些', 'b', 'N', '夫', '会', '才', '儿', '眼', '两', '美', '被', '一', '公', '来', '立', 'z', '长', '对', '己', '看', 'k', '许', '因', '相', '色', '后', '往', '打', '结', '格', '过', '世', '气', '7', '子', '条', '在', '书', '之', '定', 'v', '拉', '成', '进', '带', '着', '东', '上', '想', '天', '他', '妈', '1', '文', '而', '路', '那', '别', '德', '6', 'M', 't', '行', '侯', '难']\n var code = 58344;\n var content = '';\n var key='';\n var index='';\n var replacement='';\n for (var i = 0; i < res.length; i++) {\n key = res[i].charCodeAt(0);\n index = key - code;\n replacement =( data3[index] && data3[index] !== '?')? data3[index] : res[i];\n content += replacement;\n }\n return content;\n}",
"lastUpdateTime": "1788879791553",
"loginUrl": "https:\/\/fanqienovel.com\/main\/writer\/login",
"respondTime": 180000,
"ruleBookInfo": {
"tocUrl": "@js:\nvar id = baseUrl.match(\/\\d+\/);\n`https:\/\/fanqienovel.com\/api\/reader\/directory\/detail?bookId=${id}`;"
},
"ruleContent": {
"content": "@js:\r\n\/\/ 1. 提取 content 字段\r\nvar m = result.match(\/\"content\":\"([\\s\\S]*?)\",\"uid\"\/);\r\nvar content = m ? m[1] : '';\r\n\r\n\/\/ 2. 先反转义 JSON 特殊字符\r\ncontent = content.replace(\/\\\\u003C\/g, '<')\r\n .replace(\/\\\\u003E\/g, '>')\r\n .replace(\/\\\\u002F\/g, '\/')\r\n .replace(\/\\\\n\/g, '\\n')\r\n .replace(\/\\\\\"\/g, '\"');\r\n\r\n\/\/ 3. 提取所有 <p> 标签内容\r\nvar paras = content.match(\/<p[^>]*>([\\s\\S]*?)<\\\/p>\/g) || [];\r\nvar texts = [];\r\nfor (var i = 0; i < paras.length; i++) {\r\n var t = paras[i].replace(\/<[^>]+>\/g, '').trim();\r\n if (t) {\r\n texts.push(t);\r\n }\r\n}\r\n\r\n\/\/ 4. 拼接\r\nvar raw = texts.join('\\n\\n');\r\n\r\n\/\/ 5. 解密\r\nresult = GetContentDecode(raw);\n\n\/\/ 6. 判断内容长度,过短则拼接提示文本\r\nif (result.length < 500) {\r\n result = result + \"\\n\\n【请购买会员并在阅读登录账号!!!】\";\r\n}",
"title": "@js:\nvar m = result.match(\/\"title\":\"([^\"]+)\"\/);\nvar title = m ? m[1] : '';\n\/\/ 去掉书名前缀\nvar idx = title.indexOf('第');\nif (idx > -1) {\n title = title.substring(idx);\n}\n\/\/ 去掉\"在线免费阅读\"及之后的内容\nvar endIdx = title.indexOf('在线免费阅读');\nif (endIdx > -1) {\n title = title.substring(0, endIdx);\n}\nresult = title.trim();"
},
"ruleExplore": {
"author": "author",
"bookList": "<js>GetDecode(result); <\/js>\n.data.book_list[*]||.detail_list[*]",
"bookUrl": "\/{{$..book_id}}",
"coverUrl": "thumb_url",
"intro": "abstract",
"kind": "creation_status&&read_count\n@js:\nvar state='';\nswitch(parseInt(String(result[0]))){\ncase 4:case 0: state='完结';break;\ncase 1: state='连载中';break;\ncase -1: state='已断更';break;\ndefault: state='已下架';break;\n}\nvar list=[];\nlist.push(state);\nlist.push(String(result[1]));\nresult=list.toString();",
"lastChapter": "lastChapterTitle",
"name": "book_name",
"wordCount": "word_count"
},
"ruleSearch": {
"author": ".author",
"bookList": "<js>GetTitleDecode(result); <\/js>\n.search_book_data_list[*]",
"bookUrl": "\/{{$..book_id}}",
"checkKeyWord": "开店",
"coverUrl": "thumb_url",
"intro": ".book_abstract",
"kind": "read_count&&.creation_status&&.category\n@js:\nvar read=parseInt(result[0]);\nif(read>10000)\n result[0]=(read\/ 10000).toFixed(1)+'万';\nresult[0]=result[0]+'人在读';\nvar state='';\nswitch(parseInt(result[1])){\ncase 4:case 0: state='完结';break;\ncase 1: state='连载中';break;\ncase -1: state='已断更';break;\ndefault: state='已下架';break;\n}\nresult[1]=state;\nresult;",
"lastChapter": ".last_chapter_title",
"name": ".book_name",
"wordCount": ".word_count"
},
"ruleToc": {
"chapterList": "@js:var data = JSON.parse(result);\nvar volume = data.data.chapterListWithVolume;\nvar flattenChapters = function (chapters) {\n let flatArray = [];\n for (let chapter of chapters) {\n if (Array.isArray(chapter)) {\n flatArray = flatArray.concat(flattenChapters(chapter));\n } else {\n flatArray.push(chapter);\n }\n }\n return flatArray;\n}\nvar list = flattenChapters(volume);\nlist.forEach(function(item) {\n item.itemId = 'https:\/\/fanqienovel.com\/reader\/' + item.itemId;\n});\nlist;",
"chapterName": "title",
"chapterUrl": "itemId",
"preUpdateJs": "java.refreshTocUrl()"
},
"searchUrl": "https:\/\/fanqienovel.com\/api\/author\/search\/search_book\/v1?filter=127,127,127,127&page_count=10&page_index={{page-1}}&query_type=0&query_word={{key}}",
"weight": 0
}