[{"bookSourceComment":"Write by-深院锁清秋(星眠)\n春节系列\n不限下载（不要太离谱）\n极简&纯阅&免密钥版\n推荐入群：暂不开放\nUpdate:\n -2026\/2.7 编写","bookSourceGroup":"☃ 自用☃️","bookSourceName":"🍓番茄免费小说-[春节限定版]","bookSourceType":0,"bookSourceUrl":"https:\/\/xingmian.cmcure.com","customOrder":8,"enabled":true,"enabledCookieJar":true,"enabledExplore":true,"exploreUrl":"@js:\nb = [\n  {\n    \"title\": \"我的书架\",\n    \"url\": \"https:\/\/fanqienovel.com\/reading\/bookapi\/bookshelf\/info\/v:version\/?aid=1967&iid=0&version_code=56910&update_version_code=56910\",\n    \"style\": {\n      \"layout_flexBasisPercent\": 1,\n      \"layout_flexGrow\": 1\n    }\n  }\n]\n\nsort0=[];\/\/女频\nsort1=[];\/\/男频\npush=(title, url, type1, type2)=>{\n\t\tjson = {\n\t\t\t\ttitle: title,\n\t\t\t\turl: url?url:\"\",\n\t\t\t\tstyle: {\n\t\t\t\t\t\tlayout_flexGrow: 1,\n\t\t\t\t\t\tlayout_flexBasisPercent: type1\n\t\t\t\t\t}\n\t\t\t};\n\t\treturn eval('sort'+type2+'.push(json)');\n\t};\n$$=(gender, tags, status, sort)=>{\n\t\treturn `https:\/\/tsearch.toutiaoapi.com\/2\/wap\/search\/extra\/novel_operator?tab_name=%25E5%2585%25A8%25E9%2583%25A8%25E5%2588%2586%25E7%25B1%25BB&ala_src=novel_tag&gender=${gender}&is_finish=0&iid=2008145514494631&aid=13&app_name=news_article&version_code=692&version_name=6.9.2&abflag=3&partner=novel_tag&offset={{(page-1)*10}}&limit=10&tags=%5B%22${tags}%22%5D&creation_status=${status}&word_num=0&sort=${sort}`\n\t};\n\nstatus=\"ALL\",sort=0;\n[\n\t\t\t\t[\"女\",[[\"无敌\",384],[\"种田\",23],[\"萌宝\",28],[\"美食\",78],[\"游戏动漫\",57],[\"娱乐圈\",43],[\"直播\",69],[\"女扮男装\",388],[\"二次元\",39],[\"团宠\",94],[\"无cp\",392],[\"青梅竹马\",387],[\"病娇\",380],[\"科幻\",8],[\"武侠\",16],[\"年代\",79],[\"重生\",36],[\"灵异\",100],[\"公主\",83],[\"甜宠\",96],[\"盗墓\",81],[\"系统\",19],[\"女强\",86],[\"皇后\",84],[\"推理\",61],[\"文化历史\",62],[\"生活\",48],[\"反派\",369],[\"末世\",68],[\"悬疑\",10],[\"穿越\",37],[\"学霸\",82],[\"扮猪吃虎\",93],[\"清穿\",76],[\"穿书\",382],[\"快穿\",24],[\"皇叔\",87],[\"空间\",44],[\"宠妻\",30],[\"豪门总裁\",29],[\"影视小说\",45],[\"成功励志\",56],[\"职场\",127],[\"民国\",390],[\"都市生活\",2],[\"腹黑\",92],[\"星际\",77],[\"天才\",90],[\"古代言情\",5],[\"家庭\",125],[\"兽世\",72],[\"校园\",4],[\"诗歌散文\",46],[\"虐文\",95],[\"嫡女\",88],[\"王妃\",85],[\"精灵\",89],[\"幻想言情\",32],[\"现代言情\",3],[\"现言甜宠\",395],[\"现言脑洞\",267],[\"先婚后爱\",265],[\"都市日常\",261],[\"古言脑洞\",253],[\"古言萌宝\",249],[\"古言甜宠\",394],[\"现言日常\",269],[\"现言复仇\",268],[\"玄幻言情\",248],[\"医术\",247],[\"马甲\",266]]],\n\t\t[\"男\",[[\"玄幻\",7],[\"神豪\",20],[\"鉴宝\",17],[\"三国\",67],[\"二次元\",39],[\"历史\",12],[\"美食\",78],[\"奶爸\",42],[\"娱乐圈\",43],[\"洪荒\",66],[\"大唐\",73],[\"外卖\",75],[\"末世\",68],[\"都市\",1],[\"宠物\",74],[\"学霸\",82],[\"游戏动漫\",57],[\"科幻\",8],[\"体育\",15],[\"直播\",69],[\"年代\",79],[\"文化历史\",62],[\"诸天万界\",71],[\"海岛\",40],[\"神医\",26],[\"明朝\",126],[\"武侠\",16],[\"灵异\",100],[\"星际\",77],[\"穿越\",37],[\"剑道\",80],[\"都市修真\",124],[\"赘婿\",25],[\"盗墓\",81],[\"推理\",61],[\"无限流\",70],[\"种田\",23],[\"战争\",97],[\"天才\",90],[\"职场\",127],[\"悬疑\",10],[\"成功励志\",56],[\"重生\",36],[\"系统\",19],[\"空间\",44],[\"腹黑\",92],[\"诗歌散文\",46],[\"家庭\",125],[\"影视小说\",45],[\"生活\",48],[\"都市生活\",2],[\"扮猪吃虎\",93],[\"大秦\",377],[\"无敌\",384],[\"漫威\",374],[\"火影\",368],[\"西游\",373],[\"龙珠\",376],[\"聊天群\",381],[\"海贼\",370],[\"奥特同人\",367],[\"特种兵\",375],[\"反派\",369],[\"校花\",385],[\"女帝\",378],[\"单女主\",389],[\"神奇宝贝\",371],[\"九叔\",383],[\"求生\",379],[\"无女主\",391],[\"武魂\",386],[\"网游\",372],[\"战神\",27],[\"都市脑洞\",262],[\"都市种田\",263],[\"都市日常\",261],[\"历史脑洞\",272],[\"玄幻脑洞\",257],[\"奇幻仙侠\",259],[\"都市青春\",396],[\"传统玄幻\",258],[\"历史古代\",273]]]\n\t].map(([title,list], gender)=>{\n\t\tpush('༺ˇ»`ʚ'+title+'生频道ɞ´«ˇ༻',null,1,gender);\n\t\tlist.map([title,tags]=>{\n\t\t\t\tpush('༺ '+title+' ༻',(gender, tags, status, sort), 1,gender);\n\t\t\t\t[\"推荐\",\"评分\",\"热门\"].map((title,sort)=>{\n\t\t\t\t\t\t[ [\"[\"+title+\"]\",\"ALL\"],[\"完结\",\"Finished\"],[\"连载\",\"Loading\"] ].map([title,status]=>{\n\t\t\t\t\t\t\t\treturn push(title, $$(gender, tags, status, sort), 0.25,gender);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t});\n\t});\nJSON.stringify(\n\tb.concat(sort1).concat(sort0)\n);","lastUpdateTime":"1770921699263","respondTime":185004,"ruleBookInfo":{"author":"$.author","coverUrl":"<js>\nlet replaceCover = (u) => {\n    if (u.startsWith(\"https:\/\/\")) u = u.substring(8)\n    else u = u.substring(7)\n    let uArr = u.split(\"\/\")\n    uArr[0] = \"https:\/\/p6-novel.byteimg.com\/origin\"\n    let uArr2 = []\n    uArr.forEach((x) => {\n        if (!x.includes(\"?\") && !x.includes(\"~\")) uArr2.push(x)\n        else uArr2.push(x.split(\"~\")[0])\n    })\n    u = uArr2.join(\"\/\")\n    return u\n}\n\nreplaceCover(java.getString(\"$.thumb_url\"));\n<\/js>","init":"$.data[0]","intro":"&nbsp;&nbsp;\n📕 源名：{{$.original_book_name}}\n📖 别名：{{$.book_flight_alias_name}}{{\"\\n\"+\"​\"}}\n🔍 编号：{{$.book_id}}{{\"\\n\"+\"​\"}}\n✏️ 开坑：{{$.create_time##T|\\+.*## }}{{\"\\n\"+\"​\"}}\n🏷️ 分类：{{$.complete_category##\/##,}}\n🏷️ 标签：{{$.tags}}\n👥 主角：{{$.roles##\\[|\\\"|\\]}}\n👁️ 在线：{{$.read_count}}人在读{{\"\\n\"+\"​\"}}\n🔖 状态：__status__{{\"\\n\"+\"​\"}}\n📜 简介：{{$.abstract}}{{\"\\n\"+\"​\"}}\n📍 {{$.copyright_info##，.*##。}}{{\"\\n\"+\"​\"}}\n@js:\nresult\n.replace(\/.+：(人在读)?\\n\/g, \"\")\n.replace('__status__', (java.getString('$.book_search_visible') == 'true' ? '正常' : (java.getString('$.tomato_book_status') == '3' ? '下架' : '小黑屋')))","kind":"{{$.category}},{{$.score}}分,连载{{$.creation_status}}完结,{{java.timeFormat(java.getString(\"last_chapter_update_time\")*1000)}}\n@js:\nresult\n.replace(\/连载0完结\/g, \"完结\")\n.replace(\/连载1完结\/g, \"连载\")\n.replace(\/连载4完结\/g, \"已断更\")\n.replace(\/连载-1完结\/g, \"完结\")\n.replace(\/\\\/\/g, \"-\")\n.replace(\/\\s..:.*\/g, \"\")","lastChapter":"{{$.last_chapter_title}} • {{java.timeFormat(java.getString(\"last_chapter_update_time\")*1000)}}","name":"$.book_name","tocUrl":"\/api\/cheaper?book_id={{$.book_id}}","wordCount":"$.word_number"},"ruleContent":{"content":"<js>\nlet res = JSON.parse(result).data.content\nfunction getComic(result) {\n  let mat = result.match(\/<article>([\\s\\S]*?)<\\\/article>\/);\n  try {\n    let cnt = JSON.parse(\n      mat\n        ? mat[1].replace(\/\\&\/g, '\"').replace(\/\\;\/g, \"\").replace(\/\\#34\/g, \"\")\n        : result\n    );\n    return (mat ? cnt.skeleton.data : cnt.picInfos)\n      .map((i) => {\n        let path = mat\n          ? cnt.materials[i.element_name].data.web_uri\n          : \"novel-pic\/\" + i.md5;\n        return `<img src=\"https:\/\/p3-novel.byteimg.com\/origin\/${path}\">`;\n      })\n      .join(\"<br>\");\n  } catch (e) { \/\/ not comic content\n    mat = result.match(\/<body>([\\s\\S]*?)<\\\/body>\/)\n    \/\/ java.log(result)\n    return (mat ? mat[1] : result).toString().replace(\/\\<\\!DOCTYPE html.*\/g, \"\").replace(\/\\<tt_keyword_ad.*\\<\\\/tt_keyword_ad\\>\/, \"\").replace(\/\\<a epub.*\\>\\<\\\/a\\>\/g, \"\")\n  }\n}\nresult = getComic(String(res));\nresult.replace(\/\\{\\!\\-\\- PGC_VOICE\\:.*\\-\\-\\}\/g, \"\")\n<\/js>"},"ruleExplore":{"author":"$.author","bookList":"<js>\nlet replaceCover = (u) => {\n\/\/ java.log(u)\nif (u.startsWith(\"https:\/\/\")) u = u.substring(8)\nelse u = u.substring(7)\nlet uArr = u.split(\"\/\")\nuArr[0] = \"https:\/\/p6-novel.byteimg.com\/origin\"\nlet uArr2 = []\nuArr.forEach((x) => {\n    if (!x.includes(\"?\") && !x.includes(\"~\")) uArr2.push(x)\n    else uArr2.push(x.split(\"~\")[0])\n\t})\nu = uArr2.join(\"\/\")\nreturn u\n\t}\n  let list = [];\n  let resultData = JSON.parse(result).data;\n  \/\/ java.log(resultData)\n  let data;\n  if (resultData != null && resultData.book_shelf_info) {\n    data = resultData.book_shelf_info;\n    if (data != null) {\n    let requestData = { books: [] };\n    for (let i in data) {\n      requestData[\"books\"].push({\n        book_id: data[i][\"book_id\"],\n        item_id: \"0\",\n      });\n    }\n    \/\/ java.log(JSON.stringify(resultData.book_shelf_info))\n    let booksData = java.ajax(\n      'https:\/\/fanqienovel.com\/api\/bookshelf\/multidetail,{method: \"post\",body: ' +\n        JSON.stringify(requestData) +\n        \"}\"\n    );\n    \/\/ java.log(booksData)\n    let books =  JSON.parse(booksData).data.detail_list;\n    for (let i in books) {\n      let d = books[i];\n      list.push({\n        src: d,\n        book_name: d.book_name,\n        thumb_url: replaceCover(d.thumb_url),\n        abstract: d.abstract,\n        book_id: d.book_id,\n      });\n    }\n    }\n  } else list = JSON.parse(result)[0].content\n  JSON.stringify(list)\n<\/js>$[*]","bookUrl":"https:\/\/xingmian.cmcure.com\/api\/detail?bookId={{$.book_id}}","coverUrl":"<js>\nlet replaceCover = (u) => {\n    if (u.startsWith(\"https:\/\/\")) u = u.substring(8)\n    else u = u.substring(7)\n    let uArr = u.split(\"\/\")\n    uArr[0] = \"https:\/\/p6-novel.byteimg.com\/origin\"\n    let uArr2 = []\n    uArr.forEach((x) => {\n        if (!x.includes(\"?\") && !x.includes(\"~\")) uArr2.push(x)\n        else uArr2.push(x.split(\"~\")[0])\n    })\n    u = uArr2.join(\"\/\")\n    return u\n}\n\nreplaceCover(java.getString(\"$.thumb_url\"));\n<\/js>","intro":"$.abstract##\\n","kind":"男生{{$.gender}}女生\n连载{{$.creation_status}}完结\n{{$.score}}分\n{{$..text}}\n{{$.sub_info}}\n##连载0|1完结|男生0|1女生|男生女生[\\s\\S]*\n@js:result\n.replace(\"男生2女生\",\"出版\")\n.replace(\"连载4完结\",\"断更\")\n.replace(\"连载-1完结\",\"未知\");","name":"$.book_name","wordCount":"$.word_number"},"ruleSearch":{"author":"$.book_author","bookList":"$.request_result.book_list[*]","bookUrl":"\/api\/detail?bookId={{$.book_id}}","checkKeyWord":"让你当咸鱼，你教貂蝉穿黑丝？","coverUrl":"<js>\nlet replaceCover = (u) => {\n    if (u.startsWith(\"https:\/\/\")) u = u.substring(8)\n    else u = u.substring(7)\n    let uArr = u.split(\"\/\")\n    uArr[0] = \"https:\/\/p6-novel.byteimg.com\/origin\"\n    let uArr2 = []\n    uArr.forEach((x) => {\n        if (!x.includes(\"?\") && !x.includes(\"~\")) uArr2.push(x)\n        else uArr2.push(x.split(\"~\")[0])\n    })\n    u = uArr2.join(\"\/\")\n    return u\n}\n\nreplaceCover(java.getString(\"$.book_cover\"));\n<\/js>","intro":"$.book_abstract","kind":"$.book_sort","lastChapter":"{{$.last_chapter_name}}{{$.last_chapter_update_time}}","name":"$.book_name","wordCount":"$.book_word_count"},"ruleToc":{"chapterList":"$.contents.chapterList[*]","chapterName":"$.chapter_name","chapterUrl":"\/api\/content?item_id={{$.item_id}}","updateTime":"{{$.volume_name}} | {{java.timeFormatUTC(java.getString(\"firstPassTime\") * 1000, 'yyyy-MM-dd HH:mm:ss',28800000)}}\n@js:\nif (result.startsWith(\" |\")) result = result.slice(2)\nif (result.startsWith(\"| \")) result = result.slice(2)\nresult"},"searchUrl":"\/api\/search?keywords={{key}}&page={{page}}","weight":0}]