🍅番茄漫画(APP)

https://fanqienovel.com##漫画版

laizhiyu (6509)4天前

测试软件:legado-E,legado-team其他自测或者自己AI兼容
四个书源,参考开源项目项目制作,感谢大佬的开源开源项目:https://github.com/ch6vip/fqapp
    本书源把开源项目移植成为书源,也是本地版,没有什么经过服务器转接之类的,所以且用且珍惜,什么时候接口被封或者换之类的,我也没办法呀

纯AI制作,无一点人工,所以会有各种bug,有bug自己反馈给AI修复,本人还要玩游戏。
二维码导入
{
    "bookSourceComment": "基于 fqapp 逆向(x-argus\/x-ladon 签名 + CM DH 通道);book_type=2 读目录,正文经 materials\/skeleton 取 web_uri 直接出 JPEG;书源URL带##后缀仅作身份区分,实际请求均为 fanqienovel.com。注:漫画频道(tab_type=9)为服务端固定推荐池,发现页仅此一个真实入口;更多内容请用搜索",
    "bookSourceGroup": "番茄,漫画,AI",
    "bookSourceName": "🍅番茄漫画(APP)",
    "bookSourceType": 2,
    "bookSourceUrl": "https:\/\/fanqienovel.com##漫画版",
    "bookUrlPattern": "https?:\/\/fanqienovel[.]com\/page\/[0-9]+",
    "concurrentRate": "1\/1500",
    "customButton": false,
    "customOrder": 0,
    "enabled": true,
    "enabledCookieJar": false,
    "enabledExplore": true,
    "eventListener": false,
    "exploreUrl": "🖼 番茄漫画精选::https:\/\/fanqienovel.com?t=manga&tt=9",
    "jsLib": "var FQ_H=String.fromCharCode(35,35);var FQ_SH=String.fromCharCode(35);var FQ_SL=String.fromCharCode(47);var FQ_Q=String.fromCharCode(39);var FQ_DQ=String.fromCharCode(34);var FQ_SP=String.fromCharCode(32);var FQ_MUA='Mozilla\/5.0 (Linux; Android 10; K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/136.0.0.0 Mobile Safari\/537.36';var FQ_FUA='com.ss.android.article.news\/13400 (Linux; U; Android 10; zh_CN; tb8788p1_64_bsp; Build\/QQ3A.200805.001)';var FQ_FIXED='TdTC5rgxYgkOUrPHpnM7pByyRiuCmrWKGWs521cXdST0m69\/COjWjSanLjfBqVovHwWlGJKu8pSXMrYqOKrdWA==';var FQ_HOST='https:\/\/api5-normal-sinfonlineb.fqnovel.com';\nvar FQ_IMG_DOMAINS=['p3-novel.byteimg.com','p6-novel.byteimg.com','p1-novel.byteimg.com'];\nvar FQ_MSG_NOMG=\"该章节暂无图片,请刷新重试\";var FQ_WEB='https:\/\/fanqienovel.com';var FQ_MSG_DETAIL=String.fromCharCode(35814,24773,33719,21462,22833,36133,65292,35831,37325,35797);var FQ_MSG_TOC=String.fromCharCode(30446,24405,33719,21462,22833,36133,65292,35831,37325,35797);var FQ_MSG_CT=String.fromCharCode(27491,25991,33719,21462,22833,36133,65292,35831,37325,35797);var FQ_MSG_LOCK=String.fromCharCode(128274);var FQ_MSG_EMPTY=String.fromCharCode(26412,31456,26242,26080,20869,23481,65292,35831,25442,28304);var FQ_IMG=String.fromCharCode(123,123,105,109,97,103,101,95,100,111,109,97,105,110,125,125);var FQ_MSG_PAY=String.fromCharCode(26412,31456,20026,20184,36153,31456,33410,65292,32593,39029,29256,26080,27861,20813,36153,38405,35835);function FQ_j2s(b){try{return String(new Packages.java.lang.String(b,Packages.java.nio.charset.Charset.forName('ISO-8859-1')));}catch(e){var s='';for(var i=0;i<b.length;i++){var v=b[i];if(v<0)v+=256;s+=String.fromCharCode(v);}return s;}}function FQ_s2j(s){return new Packages.java.lang.String(s).getBytes(Packages.java.nio.charset.Charset.forName('ISO-8859-1'));}function FQ_hex(b){var str=FQ_j2s(b);var s='';for(var i=0;i<str.length;i++){var v=str.charCodeAt(i)&255;s+=(v<16?'0':'')+v.toString(16);}return s;}function FQ_unhex(h){var r='';for(var i=0;i<h.length;i+=2)r+=String.fromCharCode(parseInt(h.substr(i,2),16));return r;}function FQ_sm3(s){var rotl=function(x,n){n=n&31;return ((x<<n)|(x>>>(32-n)))>>>0;};var len=s.length,bitLen=len*8,arr=[];for(var i=0;i<len;i++)arr.push(s.charCodeAt(i)&255);arr.push(0x80);while(arr.length%64!==56)arr.push(0);var hi=Math.floor(bitLen\/4294967296),lo=bitLen>>>0;arr.push((hi>>>24)&255,(hi>>>16)&255,(hi>>>8)&255,hi&255);arr.push((lo>>>24)&255,(lo>>>16)&255,(lo>>>8)&255,lo&255);var V=[0x7380166f,0x4914b2b9,0x172442d7,0xda8a0600,0xa96f30bc,0x163138aa,0xe38dee4d,0xb0fb0e4e];for(var b=0;b<arr.length;b+=64){var W=[];for(var i=0;i<16;i++)W.push(((arr[b+i*4]<<24)|(arr[b+i*4+1]<<16)|(arr[b+i*4+2]<<8)|arr[b+i*4+3])>>>0);for(var j=16;j<68;j++){var x=(W[j-16]^W[j-9]^rotl(W[j-3],15))>>>0;x=(x^rotl(x,15)^rotl(x,23))>>>0;W.push((x^rotl(W[j-13],7)^W[j-6])>>>0);}var W1=[];for(var j=0;j<64;j++)W1.push((W[j]^W[j+4])>>>0);var A=V[0],B=V[1],C=V[2],D=V[3],E=V[4],F=V[5],G=V[6],H=V[7];for(var j=0;j<64;j++){var Tj=(j<16)?0x79cc4519:0x7a879d8a;var SS1=rotl((rotl(A,12)+E+rotl(Tj,j&31))>>>0,7);var SS2=(SS1^rotl(A,12))>>>0;var FFj=(j<16)?((A^B^C)>>>0):(((A&B)|(A&C)|(B&C))>>>0);var GGj=(j<16)?((E^F^G)>>>0):(((E&F)|((~E)&G))>>>0);var TT1=(FFj+D+SS2+W1[j])>>>0;var TT2=(GGj+H+SS1+W[j])>>>0;D=C;C=rotl(B,9);B=A;A=TT1;H=G;G=rotl(F,19);F=E;E=(TT2^rotl(TT2,9)^rotl(TT2,17))>>>0;}V[0]=(V[0]^A)>>>0;V[1]=(V[1]^B)>>>0;V[2]=(V[2]^C)>>>0;V[3]=(V[3]^D)>>>0;V[4]=(V[4]^E)>>>0;V[5]=(V[5]^F)>>>0;V[6]=(V[6]^G)>>>0;V[7]=(V[7]^H)>>>0;}var out='';for(var i=0;i<8;i++)out+=('0000000'+V[i].toString(16)).slice(-8);return out;}function FQ_md5(s){var d=Packages.java.security.MessageDigest.getInstance('MD5');var b=FQ_s2j(s);d.update(b);return FQ_hex(d.digest());}function FQ_b64(s){return String(Packages.java.util.Base64.getEncoder().encodeToString(FQ_s2j(s)));}function FQ_b64d(s){return FQ_j2s(Packages.java.util.Base64.getDecoder().decode(String(s)));}function FQ_aesCbc(data,key,iv){var C=Packages.javax.crypto.Cipher;var c=C.getInstance('AES\/CBC\/NoPadding');c.init(C.ENCRYPT_MODE,new Packages.javax.crypto.spec.SecretKeySpec(FQ_s2j(key),'AES'),new Packages.javax.crypto.spec.IvParameterSpec(FQ_s2j(iv)));return FQ_j2s(c.doFinal(FQ_s2j(data)));}function FQ_pad(s){var p=16-(s.length%16);if(p===0)p=16;var o=s;for(var i=0;i<p;i++)o+=String.fromCharCode(p);return o;}function FQ_w(lo,hi){return {lo:lo>>>0,hi:hi>>>0};}function FQ_xor(){var lo=0,hi=0;for(var i=0;i<arguments.length;i++){lo^=arguments[i].lo;hi^=arguments[i].hi;}return FQ_w(lo,hi);}function FQ_n64(v){return FQ_w(~v.lo,~v.hi);}function FQ_add(a,b){var lo=(a.lo+b.lo)>>>0;return FQ_w(lo,(a.hi+b.hi+(lo<a.lo?1:0))>>>0);}function FQ_rol(v,c){var s=((c%64)+64)%64;if(s===0)return FQ_w(v.lo,v.hi);if(s<32)return FQ_w((v.lo<<s)|(v.hi>>>(32-s)),(v.hi<<s)|(v.lo>>>(32-s)));if(s===32)return FQ_w(v.hi,v.lo);var r=s-32;return FQ_w((v.hi<<r)|(v.lo>>>(32-r)),(v.lo<<r)|(v.hi>>>(32-r)));}function FQ_ror(v,c){return FQ_rol(v,64-(c%64));}function FQ_r64(s,o){o=o||0;return FQ_w((s.charCodeAt(o)|(s.charCodeAt(o+1)<<8)|(s.charCodeAt(o+2)<<16)|(s.charCodeAt(o+3)<<24))>>>0,(s.charCodeAt(o+4)|(s.charCodeAt(o+5)<<8)|(s.charCodeAt(o+6)<<16)|(s.charCodeAt(o+7)<<24))>>>0);}function FQ_w64le2(l,r){var o='';for(var i=0;i<4;i++)o+=String.fromCharCode((l.lo>>>(i*8))&255);for(var i2=0;i2<4;i2++)o+=String.fromCharCode((l.hi>>>(i2*8))&255);for(var i3=0;i3<4;i3++)o+=String.fromCharCode((r.lo>>>(i3*8))&255);for(var i4=0;i4<4;i4++)o+=String.fromCharCode((r.hi>>>(i4*8))&255);return o;}var FQ_SZ=FQ_w(0x046d678b,0x3dc94c3a);function FQ_zbit(i){return FQ_w(i<32?((FQ_SZ.lo>>>i)&1):((FQ_SZ.hi>>>(i-32))&1),0);}var FQ_SK='fc78e0a9657a0c748ce51559903ccf03510e51d3cff232d71343e88a321c5304';var FQ_AK='d31e3718288a1027baab59f146a09a9c';var FQ_AIV='ea180a0336ed352fcd24e4d50018ae54';function FQ_srk(key){var w=[];for(var i=0;i<4;i++)w.push(FQ_r64(key,i*8));for(var x=4;x<72;x++){var m=FQ_xor(FQ_ror(w[x-1],3),w[x-3]);m=FQ_xor(m,FQ_ror(m,1));w.push(FQ_xor(FQ_n64(w[x-4]),m,FQ_zbit((x-4)%62),FQ_w(3,0)));}return w;}function FQ_sEnc(blk,keys){var l=FQ_r64(blk,0),r=FQ_r64(blk,8);for(var i=0;i<keys.length;i++){var o=r;var nl=FQ_w(FQ_rol(r,1).lo&FQ_rol(r,8).lo,FQ_rol(r,1).hi&FQ_rol(r,8).hi);r=FQ_xor(l,nl,FQ_rol(r,2),keys[i]);l=o;}return FQ_w64le2(l,r);}function FQ_ev(v){var o='';while(v>=0x80){o+=String.fromCharCode((v%0x80)|0x80);v=Math.floor(v\/0x80);}o+=String.fromCharCode(v);return o;}function FQ_pbv(f,v){return FQ_ev(f*8)+FQ_ev(v);}function FQ_pbb(f,v){var e=(typeof v==='number')?String.fromCharCode(v):String(v);return FQ_ev(f*8+2)+FQ_ev(e.length)+e;}function FQ_argusBean(q,stub,ts,dev,iid,aid,rv){var bi=(\/^[0-9a-f]{32}$\/i.test(stub))?FQ_unhex(stub):FQ_unhex('00000000000000000000000000000000');var bh=FQ_unhex(FQ_sm3(bi).substr(0,12));var qh=(q==='')?FQ_unhex(FQ_sm3(FQ_unhex('00000000000000000000000000000000')).substr(0,12)):FQ_unhex(FQ_sm3(q).substr(0,12));var nest=FQ_pbv(1,1)+FQ_pbv(2,1)+FQ_pbv(3,1)+FQ_pbv(7,0xC792ECCC);var s23=FQ_pbb(1,'NX551J')+FQ_pbv(2,8196)+FQ_pbv(4,0x80E0D800);return FQ_pbv(1,1077940818)+FQ_pbv(2,2)+FQ_pbv(3,rv)+FQ_pbb(4,String(aid))+FQ_pbb(5,dev)+FQ_pbb(6,'1611921764')+FQ_pbb(7,FQ_qp(q,'version_name'))+FQ_pbb(8,'v04.04.05-ov-android')+FQ_pbv(9,134744640)+FQ_pbb(10,FQ_unhex('0000000000000000'))+FQ_pbv(11,0)+FQ_pbv(12,ts*2)+FQ_pbb(13,bh)+FQ_pbb(14,qh)+FQ_pbb(15,nest)+FQ_pbb(16,iid)+FQ_pbb(20,'none')+FQ_pbv(21,738)+FQ_pbb(23,s23)+FQ_pbv(25,2);}function FQ_argus(q,stub,ts,dev,iid,aid,rv){var pb=FQ_pad(FQ_argusBean(q,stub,ts,dev,iid,aid,rv));var keys=FQ_srk(FQ_unhex(FQ_SK));var enc='';for(var o=0;o<pb.length;o+=16)enc+=FQ_sEnc(pb.substr(o,16),keys);var magic=FQ_unhex('f2f7fcfff2f7fcff');var un=magic+enc+FQ_unhex('eafb2cfe8568519154');var buf=un.substr(0,8);for(var i=8;i<un.length;i++)buf+=String.fromCharCode((un.charCodeAt(i)^magic.charCodeAt(i%8))&255);var rev='';for(var j=buf.length-1;j>=0;j--)rev+=buf.charAt(j);var fin=FQ_pad(rev+'ao');var ct=FQ_aesCbc(fin,FQ_unhex(FQ_AK),FQ_unhex(FQ_AIV));return FQ_b64(FQ_unhex('f281')+ct);}function FQ_lrk(rp,aid){var dg=FQ_md5(rp+String(aid));var w=[];for(var i=0;i<34;i++)w.push(FQ_w(0,0));w[0]=FQ_r64(dg,0);w[1]=FQ_r64(dg,8);w[2]=FQ_r64(dg,16);w[3]=FQ_r64(dg,24);var b0=w[0],b8=w[1],q=[w[2],w[3]];for(var x=0;x<0x22;x++){var x9=b0;var x8=b8;x8=FQ_ror(x8,8);x8=FQ_add(x8,x9);x8=FQ_xor(x8,FQ_w(x,0));q.push(x8);x8=FQ_xor(x8,FQ_rol(x9,3));w[x+1]=x8;b0=x8;b8=q.shift();}return w;}function FQ_lEnc(blk,keys){var l=FQ_r64(blk,0),r=FQ_r64(blk,8);for(var i=0;i<34;i++){r=FQ_xor(keys[i],FQ_add(l,FQ_ror(r,8)));l=FQ_xor(r,FQ_ror(l,61));}return FQ_w64le2(l,r);}function FQ_ladon(ts,lic,aid,rp){var data=String(ts)+'-'+lic+'-'+aid;var pad2=16-(data.length%16);var pd=data;for(var i=0;i<pad2;i++)pd+=String.fromCharCode(pad2);var ks=FQ_lrk(rp,aid);var ct='';for(var o=0;o<pd.length;o+=16)ct+=FQ_lEnc(pd.substr(o,16),ks);return FQ_b64(rp+ct);}function FQ_sign(q,stub,ts,dev,iid,aid,rv){var h={'x-ss-req-ticket':String(ts*1000),'x-khronos':String(ts),'x-argus':FQ_argus(q,stub,ts,dev,iid,aid,rv),'x-ladon':FQ_ladon(ts,1611921764,aid,String.fromCharCode(1,2,3,4))};if(stub)h['x-ss-stub']=stub;return h;}function FQ_qp(q,k){var ps=String(q||'').split('&');for(var i=0;i<ps.length;i++){var e=ps[i].indexOf('=');if(e>0&&ps[i].substring(0,e)===k)return ps[i].substring(e+1);}return '';}function FQ_qs(url){var t=String(url||'');var i=t.indexOf('?');if(i<0)return '';var j=t.indexOf('#',i);return t.slice(i+1,j<0?t.length:j);}function FQ_qp(url,n){var e=String(n);var ps=FQ_qs(url).split('&');for(var i=0;i<ps.length;i++){if(!ps[i])continue;var s=ps[i].indexOf('=');var k=s<0?ps[i]:ps[i].substr(0,s);if(k===e)return s<0?'':ps[i].substr(s+1);}return '';}function FQ_now(){return Math.floor(new Date().getTime()\/1000);}function FQ_ua(){return 'com.dragon.read\/66732 (Linux; U; Android 10; zh_CN; Pixel 4 XL; Build\/QD1A.190821.007;tt-ok\/3.12.13.4-tiktok)';}function FQ_hpost(url,bodyStr,headers){var arr=FQ_s2j(bodyStr);var c=new Packages.java.net.URL(url).openConnection();c.setRequestMethod('POST');c.setDoOutput(true);for(var k in headers)c.setRequestProperty(k,headers[k]);c.setConnectTimeout(20000);c.setReadTimeout(25000);var out=c.getOutputStream();out.write(arr,0,arr.length);out.flush();out.close();var code=c.getResponseCode();var is=(code>=400)?c.getErrorStream():c.getInputStream();var sb='';if(is){var enc=String(c.getHeaderField('Content-Encoding')||'');var stream=is;if(enc.indexOf('gzip')>=0)stream=new Packages.java.util.zip.GZIPInputStream(is);var rd=new Packages.java.io.BufferedReader(new Packages.java.io.InputStreamReader(stream,'UTF-8'));var line;while((line=rd.readLine())!=null)sb+=String(line);rd.close();}return {code:code,body:sb};}function FQ_gz(s){var bos=new Packages.java.io.ByteArrayOutputStream();var g=new Packages.java.util.zip.GZIPOutputStream(bos);var b=new Packages.java.lang.String(s).getBytes(Packages.java.nio.charset.Charset.forName('UTF-8'));g.write(b,0,b.length);g.close();var arr=bos.toByteArray();var out='';for(var i=0;i<arr.length;i++){var v=arr[i]&255;if(i===8)v=2;if(i===9)v=3;out+=String.fromCharCode(v);}return out;}function FQ_ttEnc(data){var rnd='';for(var i=0;i<32;i++)rnd+=String.fromCharCode(Math.floor(Math.random()*256));var md=Packages.java.security.MessageDigest.getInstance('SHA-512');md.update(FQ_s2j(rnd));var inner=md.digest();var md2=Packages.java.security.MessageDigest.getInstance('SHA-512');md2.update(inner);md2.update(FQ_s2j(FQ_b64d(FQ_FIXED)));var hv=md2.digest();var keyB=Packages.java.util.Arrays.copyOfRange(hv,0,16);var ivB=Packages.java.util.Arrays.copyOfRange(hv,16,32);var md3=Packages.java.security.MessageDigest.getInstance('SHA-512');md3.update(FQ_s2j(data));var dh=md3.digest();var C=Packages.javax.crypto.Cipher;var c=C.getInstance('AES\/CBC\/NoPadding');c.init(C.ENCRYPT_MODE,new Packages.javax.crypto.spec.SecretKeySpec(keyB,'AES'),new Packages.javax.crypto.spec.IvParameterSpec(ivB));return String.fromCharCode(0x74,0x63,0x05,0x10,0,0)+rnd+FQ_j2s(c.doFinal(FQ_s2j(FQ_pad(FQ_j2s(dh)+data))));}function FQ_alnum(n){var ch='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';var s='';for(var i=0;i<n;i++)s+=ch.charAt(Math.floor(Math.random()*ch.length));return s;}function FQ_uuid(){return String(Packages.java.util.UUID.randomUUID());}function FQ_getPool(sv){var p=String(sv.get('fqPool')||'');if(!p){return [];}var out=[];var arr=p.split('|');for(var i=0;i<arr.length;i++){var kv=arr[i].split(',');if(kv.length>=2&&kv[0])out.push({d:kv[0],i:kv[1],o:kv[2]||'',c:kv[3]||''});}return out;}function FQ_savePool(sv,pool){var a=[];for(var i=0;i<pool.length;i++)a.push(pool[i].d+','+pool[i].i+','+(pool[i].o||'')+','+(pool[i].c||''));sv.put('fqPool',a.join('|'));}function FQ_registerOne(){var openudid=FQ_alnum(16),cdid=FQ_uuid(),clientudid=FQ_uuid();var ua='com.dragon.read\/65132 (Linux; U; Android 10; zh_CN; MI 12; Build\/MMB29M; Cronet\/TTNetVersion:9ac8d95c 2024-11-25 QuicVersion:3f326df4 2024-11-14)';var header={display_name:'番茄小说',update_version_code:'65132',manifest_version_code:'65132',aid:1967,channel:'xiaomi_1967_64',package:'com.dragon.read',app_version:'6.5.1.32',version_code:'65132',sdk_version:'v04.04.05-ov-android',sdk_target_version:29,os:'Android',os_version:'10',os_api:'29',device_model:'MI 12',device_brand:'Xiaomi',device_manufacturer:'Google',device_category:'phone',cpu_abi:'arm64-v8a',release_build:FQ_uuid(),density_dpi:'560',display_density:'mdpi',resolution:'1440x2392',language:'zh',mac:'11:22:33:44:55:66',timezone:8,access:'wifi',not_request_sender:0,carrier:'CHINA MOBILE',mcc_mnc:'46007',rom:'EMUI-'+FQ_alnum(13),rom_version:FQ_alnum(2),sig_hash:FQ_md5(FQ_uuid()),openudid:openudid,clientudid:clientudid,sim_serial_number:[],region:'CN',tz_name:'Asia\/Shanghai',tz_offset:28800,sim_region:'cn'};var js=JSON.stringify({magic_tag:'ss_app_log',header:header,_gen_time:new Date().getTime()});var post=FQ_ttEnc(FQ_gz(js));var ts=FQ_now();var P=[['tt_data','a'],['os_api','29'],['device_type','MI 12'],['ssmix','a'],['manifest_version_code','65132'],['dpi','560'],['version_name','6.5.1.32'],['ts',String(ts)],['cpu_support64','true'],['app_type','normal'],['appTheme','light'],['ac','wifi'],['host_abi','arm64-v8a'],['update_version_code','65132'],['channel','xiaomi_1967_64'],['_rticket',String(new Date().getTime())],['device_platform','android'],['version_code','65132'],['cdid',cdid],['os','android'],['is_android_pad','0'],['openudid',openudid],['package','com.dragon.read'],['resolution','1440*2392'],['os_version','10'],['language','zh'],['device_brand','Xiaomi'],['need_personal_recommend','1'],['aid','1967'],['minor_status','0'],['app_name','novel'],['mcc_mnc','46007']];P.sort(function(a,b){return a[0]<b[0]?-1:(a[0]>b[0]?1:0);});var qs='';for(var i=0;i<P.length;i++){if(i)qs+='&';qs+=P[i][0]+'='+encodeURIComponent(P[i][1]);}var r=FQ_hpost('https:\/\/log.snssdk.com\/service\/2\/device_register\/?'+qs,post,{'Content-Type':'application\/octet-stream;tt-data=a','accept-encoding':'gzip','user-agent':ua,'connection':'Keep-Alive'});var Q=String.fromCharCode(34);var m=r.body.match(new RegExp(Q+'device_id_str'+Q+':'+Q+'([0-9]+)'+Q));if(!m)return null;var m2=r.body.match(new RegExp(Q+'install_id_str'+Q+':'+Q+'([0-9]+)'+Q));return {d:m[1],i:m2?m2[1]:'',o:openudid,c:cdid};}function FQ_ensure(sv,n){var pool=FQ_getPool(sv);var need=(n||3)-pool.length;var added=0;for(var i=0;i<need;i++){  var d=FQ_registerOne();  if(d){pool.push(d);added++;FQ_savePool(sv,pool);}}return pool;}function FQ_api(jv,sv,path,q,host,aid){var pool=FQ_ensure(sv,2);if(!pool.length)throw new Error('设备池为空,请检查网络后重试');var dev=pool[0].d,iid=pool[0].i;var qq=q+'&iid='+iid+'&device_id='+dev;var url=(host||FQ_HOST)+path+'?'+qq;var ts=FQ_now();var h=FQ_sign(FQ_qs(url),'',ts,dev,iid,aid||1967,Math.floor(Math.random()*2000000000));h['User-Agent']=FQ_ua();return String(jv.ajax(url+','+JSON.stringify({headers:h})));}function FQ_web(jv,url,ua){var h={'User-Agent':ua||FQ_MUA};return String(jv.ajax(url+','+JSON.stringify({headers:h})));}var QC=String.fromCharCode(34);function FQ_state(txt){var t=String(txt||'');var i=t.indexOf('window.__INITIAL_STATE__=');if(i<0)return null;var st0=t.indexOf('{',i);if(st0<0)return null;var seg=t.substring(st0);var depth=0,end=-1,instr=false,esc=false;for(var k=0;k<seg.length;k++){var ch=seg.charAt(k);if(instr){if(esc)esc=false;else if(ch===String.fromCharCode(92))esc=true;else if(ch===QC)instr=false;continue;}if(ch===QC)instr=true;else if(ch==='{')depth++;else if(ch==='}'){depth--;if(depth===0){end=k+1;break;}}}if(end<0)return null;try{return JSON.parse(seg.substring(0,end));}catch(e){return null;}}function FQ_tag(s){var t=String(s||'');return t.split('<em>').join('').split('<\/em>').join('').split('<').join(String.fromCharCode(60,108,116,59));}function FQ_search(jv,sv,kw,page){var off=((page||1)-1)*10;var suf='&enterfrom_aid=&enter_from=inner_search&app_name=news_article&version_name=7.0.8&app_version=7.0.8&channel=tt_huawei2019_yz&version_code=708&device_platform=android&parent_enterfrom=novel_list&novel_host=&aid=13&scm_version=1.0.0.4112&device_type=25053RT47C&device_brand=Redmi&language=zh&os_api=35&os_version=15&openudid=fqapp&update_version_code=70899&plugin=0&tma_jssdk_version=1.10.0.0&rom_version=miui__os2.0.209.0.volcnxm';var url='https:\/\/api.fanqiesdk.com\/api\/novel\/channel\/homepage\/search\/search\/v1\/?q='+encodeURIComponent(kw)+'&offset='+off+suf;var raw=FQ_web(jv,url,FQ_FUA);var out=[];try{var d=JSON.parse(raw);var rd=(d.data&&d.data.ret_data)||[];for(var i=0;i<rd.length;i++){var it=rd[i];out.push({name:FQ_tag(it.title),author:FQ_tag(it.author||''),kind:FQ_tag(it.category||''),intro:FQ_tag(it.abstract||''),coverUrl:String(it.thumb_url||''),bookUrl:'https:\/\/fanqienovel.com\/page\/'+it.book_id+FQ_SH+it.book_id,bookId:String(it.book_id)});}}catch(e){}return out;}function FQ_homeList(jv,sv){var raw=FQ_web(jv,'https:\/\/fanqienovel.com\/','Mozilla\/5.0 (Linux; Android 10; K) AppleWebKit\/537.36');var d=FQ_state(raw);var out=[];if(!d)return out;var hm=d.home||{};var groups=['weekList','editorList','updateList','newbookList','boyList','girlList','readRankList','newRankList','fantasyList','topRankList'];var seen={};for(var g=0;g<groups.length;g++){var arr=hm[groups[g]]||[];for(var i=0;i<arr.length;i++){var it=arr[i];var bid=String(it.bookId||'');if(!bid||seen[bid])continue;seen[bid]=1;out.push({name:String(it.bookName||''),author:String(it.author||''),kind:String(it.category||''),intro:String(it.abstract||''),coverUrl:String(it.thumbUri||''),bookUrl:'https:\/\/fanqienovel.com\/page\/'+bid});}}return out;}function FQ_rankList(jv,sv,rankId){var raw=FQ_web(jv,FQ_WEB+FQ_SL.concat('api',FQ_SL,'rank',FQ_SL,'list?rank_id=')+(rankId||1)+'&offset=0&count=20');var out=[];try{var d=JSON.parse(raw);var l=(d.data&&d.data.list)||[];for(var i=0;i<l.length;i++){var it=l[i];var bid=String(it.bookId||'');out.push({name:String(it.bookName||''),author:String(it.author||''),kind:'排行榜',intro:String(it.abstract||''),coverUrl:String(it.thumbUri||''),bookUrl:'https:\/\/fanqienovel.com\/page\/'+bid,bookId:bid});}}catch(e){}return out;}function FQ_getDev(sv){var d=String(sv.get('fqdev')||'');var i=String(sv.get('fqiid')||'');return {d:d,i:i};}function FQ_regAndSave(sv){var r=FQ_regTest();var Q=String.fromCharCode(34);var m=r.match(new RegExp(Q+'device_id_str'+Q+':'+Q+'([0-9]+)'+Q));if(!m)return null;var m2=r.match(new RegExp(Q+'install_id_str'+Q+':'+Q+'([0-9]+)'+Q));var d=m[1],i=m2?m2[1]:'';sv.put('fqdev',d);sv.put('fqiid',i);return {d:d,i:i};}function FQ_bigBytes(n){var h=String(n.toString(16));if(h.length%2===1)h='0'+h;if(h.length>384)h=h.substring(h.length-384);return FQ_unhex(h);}function FQ_b64eJS(str){var CH='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/';var out='';var i=0;var n=str.length;while(i<n){var c1=str.charCodeAt(i++)&255;var c2=(i<n)?str.charCodeAt(i++)&255:NaN;var c3=(i<n)?str.charCodeAt(i++)&255:NaN;var e1=c1>>2;var e2=((c1&3)<<4)|(isNaN(c2)?0:(c2>>4));var e3=isNaN(c2)?64:(((c2&15)<<2)|(isNaN(c3)?0:(c3>>6)));var e4=isNaN(c3)?64:(c3&63);out+=CH.charAt(e1)+CH.charAt(e2)+(e3===64?'=':CH.charAt(e3))+(e4===64?'=':CH.charAt(e4));}return out;}function FQ_b64dJS(str){var CH='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/';var out='';var buf=0,bits=0;for(var i=0;i<str.length;i++){var c=str.charAt(i);if(c==='=')break;var v=CH.indexOf(c);if(v<0)continue;buf=(buf<<6)|v;bits+=6;if(bits>=8){bits-=8;out+=String.fromCharCode((buf>>bits)&255);}}return out;}function FQ_b64d2(s){try{return Packages.java.util.Base64.getDecoder().decode(String(s));}catch(e){return FQ_s2j(FQ_b64dJS(String(s)));}}function FQ_b64e2(b){try{return String(Packages.java.util.Base64.getEncoder().encodeToString(b));}catch(e){return FQ_b64eJS(FQ_j2s(b));}}function FQ_bytesHex(b){var str=FQ_j2s(b);var s='';for(var i=0;i<str.length;i++){var v=str.charCodeAt(i)&255;s+=(v<16?'0':'')+v.toString(16);}return s;}function FQ_cmGet(jv,bookId,itemIds,dev,iid){var CMP='ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff';var P=new Packages.java.math.BigInteger(CMP,16);var pk=new Packages.java.math.BigInteger(256,new Packages.java.security.SecureRandom());pk=pk.mod(P.subtract(Packages.java.math.BigInteger.ONE));var pub=Packages.java.math.BigInteger.valueOf(2).modPow(pk,P);var iv=new Packages.java.security.SecureRandom().generateSeed(16);var rk=FQ_b64d2('rCXGfd2POMGzeiNIgo4iLg==');var CC=Packages.javax.crypto.Cipher;var c1=CC.getInstance('AES\/CBC\/PKCS5Padding');c1.init(CC.ENCRYPT_MODE,new Packages.javax.crypto.spec.SecretKeySpec(rk,'AES'),new Packages.javax.crypto.spec.IvParameterSpec(iv));var ct1=c1.doFinal(FQ_s2j(FQ_bigBytes(pub)));var key=FQ_b64e2(FQ_s2j(FQ_j2s(iv)+FQ_j2s(ct1)));var body=JSON.stringify({book_id:bookId,item_ids:itemIds,key:key});var url='https:\/\/novelfm-hl.snssdk.com\/novelfm\/playerapi\/full\/mget\/v1\/?aid=3040&app_name=novelapp&channel=0&device_id='+dev+'&device_platform=android&device_type=UGFFI55&iid='+iid+'&os_version=0&version_code=58932&version_name=5.8.9.32';var ts=FQ_now();var stub=FQ_md5(body);var hh=FQ_sign(FQ_qs(url),stub,ts,dev,iid,3040,Math.floor(Math.random()*2000000000));hh['User-Agent']='com.dragon.read';hh['Content-Type']='application\/json; charset=utf-8';var resp=FQ_hpost(url,body,hh);var dd=JSON.parse(resp.body);var infos=dd.data.item_infos;var out={};for(var iid2 in infos){var it=infos[iid2];if(!it||!it.key||!it.content){continue;}var srvHex=FQ_bytesHex(FQ_b64d2(String(it.key)));var srvN=new Packages.java.math.BigInteger(srvHex,16);var shared=srvN.modPow(pk,P);var shHex=String(shared.toString(16));if(shHex.length%2===1)shHex='0'+shHex;if(shHex.length>384)shHex=shHex.substring(shHex.length-384);var aesKey=Packages.java.util.Arrays.copyOfRange(FQ_s2j(FQ_unhex(shHex.substring(0,64))),0,32);var cb=FQ_b64d2(String(it.content));var civ=Packages.java.util.Arrays.copyOfRange(cb,0,16);var cct=Packages.java.util.Arrays.copyOfRange(cb,16,cb.length);var c2=CC.getInstance('AES\/CBC\/PKCS5Padding');c2.init(CC.DECRYPT_MODE,new Packages.javax.crypto.spec.SecretKeySpec(aesKey,'AES'),new Packages.javax.crypto.spec.IvParameterSpec(civ));var ptArr=c2.doFinal(cct);out[iid2]=String(new Packages.java.lang.String(ptArr,'UTF-8'));}return out;}function FQ_dev(sv){var d=String(sv.get('fqdev')||'');var i=String(sv.get('fqiid')||'');return {d:d,i:i};}function FQ_search(sv,kw,page){var off=String((parseInt(page||'1')-1)*10);var q='q='+encodeURIComponent(kw)+'&offset='+off+'&enterfrom_aid=&enter_from=inner_search&app_name=news_article&version_name=7.0.8&app_version=7.0.8&channel=tt_huawei2019_yz&version_code=708&device_platform=android&parent_enterfrom=novel_list&novel_host=&aid=13&scm_version=1.0.0.4112&device_type=25053RT47C&device_brand=Redmi&language=zh&os_api=35&os_version=15&openudid='+FQ_alnum(16)+'&update_version_code=70899&plugin=0&tma_jssdk_version=1.10.0.0&rom_version=miui__os2.0.209.0.volcnxm';var url='https:\/\/api.fanqiesdk.com\/api\/novel\/channel\/homepage\/search\/search\/v1\/?'+q;var r=String(java.ajax(url+',{\"headers\":{\"User-Agent\":\"com.ss.android.article.news\/13400\"}}'));var d=JSON.parse(r);var items=(d.data&&d.data.ret_data)?d.data.ret_data:[];var out=[];for(var i=0;i<items.length;i++){var it=items[i];var t=String(it.title||'').split('<em>').join('').split('<\/em>').join('');out.push({name:t,author:String(it.author||''),kind:String(it.category||''),intro:String(it.abstract||''),coverUrl:String(it.thumb_url||''),bookUrl:'https:\/\/fanqienovel.com\/page\/'+String(it.book_id)});}return out;}function FQ_toc(sv,bookId,dev){var base='ac=wifi&channel=xiaomi_1967_64&aid=1967&app_name=novelapp&version_code=65132&version_name=6.5.1.32&device_platform=android&os=android&ssmix=a&device_type=FRD-AL10&device_brand=honor&language=zh&os_api=28&os_version=9&manifest_version_code=65132&resolution=1080*1920&dpi=480&update_version_code=65132&pv_player=65132&need_personal_recommend=1&player_so_load=1&is_android_pad_screen=0&host_abi=arm64-v8a&dragon_device_type=phone&compliance_status=0';var url='https:\/\/api5-normal-sinfonlineb.fqnovel.com\/reading\/bookapi\/directory\/all_items\/v?book_type=0&item_data_list_md5=&catalog_data_md5=&book_id='+bookId+'&book_info_md5=&need_version=true&device_id='+dev+'&'+base;var ts=FQ_now();var h=FQ_sign(FQ_qs(url),'',ts,dev,'',1967,Math.floor(Math.random()*2000000000));h['User-Agent']='Mozilla\/5.0 (Linux; Android 13)';var r=String(java.ajax(url+','+JSON.stringify({headers:h})));var d=JSON.parse(r);var cats=(d.data&&d.data.catalog_data)?d.data.catalog_data:[];var out=[];for(var i=0;i<cats.length;i++){var c=cats[i];out.push({name:String(c.catalog_title||('第'+(i+1)+'章')),url:String(c.item_id)});}return out;}function FQ_explore(jv,sv,kind,page){var base='ac=wifi&channel=xiaomi_1967_64&aid=1967&app_name=novelapp&version_code=65132&version_name=6.5.1.32&device_platform=android&os=android&ssmix=a&device_type=FRD-AL10&device_brand=honor&language=zh&os_api=28&os_version=9&manifest_version_code=65132&resolution=1080*1920&dpi=480&update_version_code=65132&pv_player=65132&need_personal_recommend=1&player_so_load=1&is_android_pad_screen=0&host_abi=arm64-v8a&dragon_device_type=phone&compliance_status=0';var tt={'推荐':2,'经典':3,'知识':4,'听书':5,'看剧':6,'视频':7,'短篇':8,'漫画':9,'买书':10};var tabType=tt[kind]||2;var off=((parseInt(page||'1')-1)*16);var q='tab_type='+tabType+'&offset='+off+'&client_template=0&'+base;var raw=FQ_api(jv,sv,'\/reading\/bookapi\/bookmall\/tab\/v',q);var d=JSON.parse(raw);var ti=d.data.tab_item||[];var out=[];for(var t=0;t<ti.length;t++){var cells=ti[t].cell_data||[];for(var c=0;c<cells.length;c++){var bd=cells[c].book_data||[];for(var b=0;b<bd.length;b++){var it=bd[b];var bid=String(it.book_id||'');if(!bid)continue;out.push({name:String(it.book_name||''),author:String(it.author||''),kind:String(it.category||''),intro:String(it.abstract||''),coverUrl:String(it.thumb_url||''),bookUrl:'https:\/\/fanqienovel.com\/page\/'+bid});}}}return out;}function FQ_pickBooks(jv,sv,catId,algo,page){var base='ac=wifi&channel=xiaomi_1967_64&aid=1967&app_name=novelapp&version_code=65132&version_name=6.5.1.32&device_platform=android&os=android&ssmix=a&device_type=FRD-AL10&device_brand=honor&language=zh&os_api=28&os_version=9&manifest_version_code=65132&resolution=1080*1920&dpi=480&update_version_code=65132&pv_player=65132&need_personal_recommend=1&player_so_load=1&is_android_pad_screen=0&host_abi=arm64-v8a&dragon_device_type=phone&compliance_status=0';var off=((parseInt(page||'1')-1)*16);var q='cell_id=7098235271900037133&offset='+off+'&client_template=2&client_req_type=2&tab_type=2&req_rank_category_id='+catId+'&req_rank_algo='+(algo||101)+'&'+base;var raw=FQ_api(jv,sv,'\/reading\/bookapi\/bookmall\/cell\/change\/v1\/',q);var d=JSON.parse(raw);var cv=(d.data&&d.data.cell_view)||{};var bd=cv.book_data||[];var out=[];for(var i=0;i<bd.length;i++){var it=bd[i];var bid=String(it.book_id||'');if(!bid)continue;out.push({name:String(it.book_name||''),author:String(it.author||''),kind:String(it.category||''),intro:String(it.abstract||''),coverUrl:String(it.thumb_url||''),bookUrl:'https:\/\/fanqienovel.com\/page\/'+bid});}return out;}function FQ_tabBooks(jv,sv,tabType,page){var base='ac=wifi&channel=xiaomi_1967_64&aid=1967&app_name=novelapp&version_code=65132&version_name=6.5.1.32&device_platform=android&os=android&ssmix=a&device_type=FRD-AL10&device_brand=honor&language=zh&os_api=28&os_version=9&manifest_version_code=65132&resolution=1080*1920&dpi=480&update_version_code=65132&pv_player=65132&need_personal_recommend=1&player_so_load=1&is_android_pad_screen=0&host_abi=arm64-v8a&dragon_device_type=phone&compliance_status=0';var off=((parseInt(page||'1')-1)*16);var q='tab_type='+tabType+'&offset='+off+'&client_template=0&'+base;var raw=FQ_api(jv,sv,'\/reading\/bookapi\/bookmall\/tab\/v',q);var d=JSON.parse(raw);var ti=d.data.tab_item||[];var out=[];var seen={};for(var t=0;t<ti.length;t++){var cells=ti[t].cell_data||[];for(var c=0;c<cells.length;c++){var bd=cells[c].book_data||[];for(var b=0;b<bd.length;b++){var it=bd[b];var bid=String(it.book_id||'');if(!bid||seen[bid])continue;seen[bid]=1;out.push({name:String(it.book_name||''),author:String(it.author||''),kind:String(it.category||''),intro:String(it.abstract||''),coverUrl:String(it.thumb_url||''),bookUrl:'https:\/\/fanqienovel.com\/page\/'+bid});}}}return out;}\n;function FQ_mgBase(){var base='ac=wifi&channel=xiaomi_1967_64&aid=1967&app_name=novelapp&version_code=65132&version_name=6.5.1.32&device_platform=android&os=android&ssmix=a&device_type=FRD-AL10&device_brand=honor&language=zh&os_api=28&os_version=9&manifest_version_code=65132&resolution=1080*1920&dpi=480&update_version_code=65132&pv_player=65132&need_personal_recommend=1&player_so_load=1&is_android_pad_screen=0&host_abi=arm64-v8a&dragon_device_type=phone&compliance_status=0';return base;}\nfunction FQ_mgDir(jv,sv,bookId){var raw=FQ_api(jv,sv,'\/reading\/bookapi\/directory\/all_items\/v','book_type=2&item_data_list_md5=&catalog_data_md5=&book_id='+bookId+'&book_info_md5=&need_version=true&'+FQ_mgBase());var j=JSON.parse(raw);var bi=(j.data&&j.data.book_info)||{};var il=(j.data&&j.data.item_data_list)||[];return {info:bi,items:il};}\nfunction FQ_mgToc(jv,sv,bookId){var r=FQ_mgDir(jv,sv,bookId);var out=[];for(var i=0;i<r.items.length;i++){var c=r.items[i];var t=String(c.title||(''+(i+1)));out.push({name:t,url:String(c.item_id||''),volume:String(c.volume_name||'')});}return out;}\nfunction FQ_mgInfo(jv,sv,bookId){var r=FQ_mgDir(jv,sv,bookId);var b=r.info;var tags=String(b.tags||b.category_v2||'');return {name:String(b.book_name||''),author:String(b.author||''),kind:String(b.category||tags),intro:String(b.abstract||b.book_abstract_v2||''),coverUrl:String(b.thumb_url||''),tags:tags,lastChapter:String(b.last_chapter_title||''),chapters:r.items.length};}\nfunction FQ_mgPics(resText){var dec=Packages.org.jsoup.parser.Parser.unescapeEntities(String(resText),true);var s=dec.indexOf('{');if(s<0)return [];var e=dec.lastIndexOf('}');if(e<s)return [];var j=JSON.parse(dec.substring(s,e+1));var mats=j.materials||{};var skel=(j.skeleton&&j.skeleton.data)||[];var urls=[];var seen={};function add(k){var m=mats[k];if(!m||String(m.type||'')!=='img')return;var d=m.data||{};var u=String(d.web_uri||'');if(!u||seen[u])return;seen[u]=1;urls.push(u);}if(skel.length){for(var i=0;i<skel.length;i++)add(String(skel[i].elementInfo||''));}if(!urls.length){var ks=[];for(var k in mats)ks.push(k);ks.sort();for(var q=0;q<ks.length;q++)add(ks[q]);}return urls;}\nfunction FQ_mgImgUrls(jv,sv,bookId,itemId){var pool=FQ_ensure(sv,2);if(!pool.length)throw new Error(FQ_MSG_NOMG);var res=FQ_cmGet(jv,bookId,[itemId],pool[0].d,pool[0].i);var t=res[itemId]||'';if(!t)throw new Error(FQ_MSG_NOMG);var urls=FQ_mgPics(t);if(!urls.length)throw new Error(FQ_MSG_NOMG);return urls;}\nfunction FQ_mgHtml(jv,sv,bookId,itemId){var urls=FQ_mgImgUrls(jv,sv,bookId,itemId);var Q=String.fromCharCode(34);var b='';for(var i=0;i<urls.length;i++){var u=urls[i];if(u.indexOf('http')!==0)u='https:\/\/'+FQ_IMG_DOMAINS[0]+'\/origin\/'+u;b+='<img src='+Q+u+Q+'>';}return b;}\n\n;function FQ_mgSearch(jv,kw,page){var off=String((parseInt(page||'1')-1)*10);\nvar suf='&enterfrom_aid=&enter_from=inner_search&app_name=news_article&version_name=7.0.8&app_version=7.0.8&channel=tt_huawei2019_yz&version_code=708&device_platform=android&parent_enterfrom=novel_list&novel_host=&aid=13&scm_version=1.0.0.4112&device_type=25053RT47C&device_brand=Redmi&language=zh&os_api=35&os_version=15&openudid=fqapp&update_version_code=70899&plugin=0&tma_jssdk_version=1.10.0.0&rom_version=miui__os2.0.209.0.volcnxm';\nvar url='https:\/\/api.fanqiesdk.com\/api\/novel\/channel\/homepage\/search\/search\/v1\/?q='+encodeURIComponent(kw)+'&offset='+off+suf;\nvar raw=FQ_web(jv,url,FQ_FUA);var d=JSON.parse(String(raw));var rd=(d.data&&d.data.ret_data)||[];var out=[];\nfor(var i=0;i<rd.length;i++){var it=rd[i];\nvar t=String(it.title||'').split('<em>').join('').split('<\/em>').join('');\nif(!t)continue;\nout.push({name:t,author:String(it.author||''),kind:String(it.category||''),intro:String(it.abstract||''),coverUrl:String(it.thumb_url||''),bookUrl:'https:\/\/fanqienovel.com\/page\/'+String(it.book_id)});}\nreturn out;}\n\n;function FQ_mgIsComic(info){return !!info && info.comic_book_type!==undefined && info.comic_book_type!==null && String(info.comic_book_type)!=='';}\nfunction FQ_mgRaw(jv,sv,bookId){var raw=FQ_api(jv,sv,'\/reading\/bookapi\/directory\/all_items\/v','book_type=2&item_data_list_md5=&catalog_data_md5=&book_id='+bookId+'&book_info_md5=&need_version=true&'+FQ_mgBase());return JSON.parse(raw);}\nfunction FQ_mgInfo2(jv,sv,bookId){var j=FQ_mgRaw(jv,sv,bookId);var b=(j.data&&j.data.book_info)||{};var il=(j.data&&j.data.item_data_list)||[];var comic=FQ_mgIsComic(b);var tags=String(b.tags||b.category_v2||'');return {name:String(b.book_name||''),author:String(b.author||''),kind:String(b.category||tags),intro:String(b.abstract||b.book_abstract_v2||''),coverUrl:String(b.thumb_url||''),tags:tags,lastChapter:String(b.last_chapter_title||''),chapters:il.length,isComic:comic?'1':'0'};}\nfunction FQ_mgText(jv,sv,bookId,itemId){var pool=FQ_ensure(sv,2);if(!pool.length)throw new Error(FQ_MSG_EMPTY);var res=FQ_cmGet(jv,bookId,[itemId],pool[0].d,pool[0].i);var t=res[itemId]||'';if(!t)throw new Error(FQ_MSG_EMPTY);var hasPic=FQ_mgPics(t);if(hasPic.length)return '';return t;}\n\n;function FQ_mgHtmlQuiet(jv,sv,bookId,itemId){try{var pool=FQ_ensure(sv,2);if(!pool.length)return '';var res=FQ_cmGet(jv,bookId,[itemId],pool[0].d,pool[0].i);var t=res[itemId]||'';if(!t)return '';var urls=FQ_mgPics(t);if(!urls.length)return '';var Q=String.fromCharCode(34);var b='';for(var i=0;i<urls.length;i++){var u=urls[i];if(u.indexOf('http')!==0)u='https:\/\/'+FQ_IMG_DOMAINS[0]+'\/origin\/'+u;b+='<img src='+Q+u+Q+'>';}return b;}catch(e){return '';}}\n",
    "lastUpdateTime": "1791895934075",
    "loginUi": "[\n {\n  \"name\": \"说明\",\n  \"type\": \"button\",\n  \"action\": \"FQ_mgHelp()\"\n },\n {\n  \"name\": \"检查站点连通状态\",\n  \"type\": \"button\",\n  \"action\": \"FQ_mgCheck()\"\n },\n {\n  \"name\": \"重置设备池\",\n  \"type\": \"button\",\n  \"action\": \"FQ_mgResetDev()\"\n },\n {\n  \"name\": \"打开番茄漫画官网\",\n  \"type\": \"button\",\n  \"action\": \"java.startBrowser('https:\/\/fanqienovel.com','番茄漫画')\"\n }\n]",
    "loginUrl": "function FQ_mgHelp(){\n  java.longToast('番茄漫画(APP)\\n\\n基于番茄官方 APP 接口逆向:x-argus\/x-ladon 签名 + CM DH 通道解密。\\n\\n· 无需登录,设备自动注册\\n· 搜索\/发现\/阅读全免费\\n· 遇到读取失败:先「重置设备池」再刷新\\n· 正文为图片型,章节按话数出图');\n}\nfunction FQ_mgCheck(){\n  try{\n    var r=FQ_mgInfo(java,source,'7113804239352105991');\n    java.toast('站点连通正常:'+r.name+'('+r.chapters+' 话)');\n  }catch(e){\n    java.toast('检查失败:'+e);\n  }\n}\nfunction FQ_mgResetDev(){\n  try{\n    source.put('fqPool','');\n    var pool=FQ_ensure(source,2);\n    java.toast('设备池已重置,当前 '+pool.length+' 个设备');\n  }catch(e){\n    java.toast('重置失败:'+e);\n  }\n}",
    "respondTime": 51858,
    "ruleBookInfo": {
        "author": "$.author",
        "coverUrl": "$.coverUrl",
        "init": "@js:(function(){var m=String(baseUrl).match(\/([0-9]{15,})\/);var bid=m?m[1]:'';if(!bid){throw new Error('无效书籍ID');}var r=FQ_mgInfo2(java,source,bid);if(!r.chapters)throw new Error('未找到书籍或目录为空');r.tocUrl='https:\/\/fanqienovel.com\/page\/'+bid;return JSON.stringify(r);})()",
        "intro": "$.intro",
        "kind": "$.kind",
        "lastChapter": "$.lastChapter",
        "name": "$.name",
        "tocUrl": "$.tocUrl"
    },
    "ruleContent": {
        "content": "@js:(function(){var m=String(baseUrl).match(\/^https?:\\\/\\\/[^\/]+\\\/page\\\/([0-9]{15,})\/);var bid=m?m[1]:'';var m2=String(baseUrl).match(\/#([0-9]+)$\/);var item=m2?m2[1]:'';if(!bid||!item)throw new Error('参数错误');var h=FQ_mgHtmlQuiet(java,source,bid,item);if(h)return h;var t=FQ_mgText(java,source,bid,item);if(t)return t;throw new Error(FQ_MSG_NOMG);})()",
        "imageStyle": "FULL"
    },
    "ruleExplore": {
        "author": "$.author",
        "bookList": "@js:(function(){var l=FQ_tabBooks(java,source,'9',1);var out=[];for(var i=0;i<l.length;i++){out.push(JSON.stringify(l[i]));}return out;})()",
        "bookUrl": "$.bookUrl",
        "coverUrl": "$.coverUrl",
        "intro": "$.intro",
        "kind": "$.kind",
        "name": "$.name"
    },
    "ruleSearch": {
        "author": "$.author",
        "bookList": "@js:(function(){var d=JSON.parse(String(result));var rd=(d.data&&d.data.ret_data)||[];var out=[];var mg=[];var other=[];for(var i=0;i<rd.length;i++){var it=rd[i];var t=String(it.title||'').split('<em>').join('').split('<\/em>').join('');if(!t)continue;var o=JSON.stringify({name:t,author:String(it.author||''),kind:String(it.category||''),intro:String(it.abstract||''),coverUrl:String(it.thumb_url||''),bookUrl:'https:\/\/fanqienovel.com\/page\/'+String(it.book_id)});if(String(it.author||'').indexOf('番茄漫画')>=0||String(it.category||'').indexOf('漫画')>=0||String(it.category||'').indexOf('漫改')>=0){mg.push(o);}else{other.push(o);}}out=mg.concat(other);return out;})()",
        "bookUrl": "$.bookUrl",
        "checkKeyWord": "非人哉",
        "coverUrl": "$.coverUrl",
        "intro": "$.intro",
        "kind": "$.kind",
        "name": "$.name"
    },
    "ruleToc": {
        "chapterList": "@js:(function(){var m=String(baseUrl).match(\/([0-9]{15,})\/);var bid=m?m[1]:'';if(!bid){throw new Error('无效书籍ID');}var l=FQ_mgToc(java,source,bid);if(!l.length)throw new Error('目录为空');var out=[];for(var i=0;i<l.length;i++){out.push(JSON.stringify({name:l[i].name,url:'https:\/\/fanqienovel.com\/page\/'+bid+String.fromCharCode(35)+l[i].url}));}return out;})()",
        "chapterName": "$.name",
        "chapterUrl": "$.url"
    },
    "searchUrl": "https:\/\/api.fanqiesdk.com\/api\/novel\/channel\/homepage\/search\/search\/v1\/?q={{key}}&offset={{(page-1)*10}}&enterfrom_aid=&enter_from=inner_search&app_name=news_article&version_name=7.0.8&app_version=7.0.8&channel=tt_huawei2019_yz&version_code=708&device_platform=android&parent_enterfrom=novel_list&novel_host=&aid=13&scm_version=1.0.0.4112&device_type=25053RT47C&device_brand=Redmi&language=zh&os_api=35&os_version=15&openudid=fqmanga&update_version_code=70899&plugin=0&tma_jssdk_version=1.10.0.0&rom_version=miui__os2.0.209.0.volcnxm",
    "weight": 0
}
广告