晴天书荒广场
https://www.baidu.com/晴天番茄书荒广场
分享者: 晴天 (8653)发布时间: 08/10 06:51
晴天融合订阅源,配合晴天融合书源一起使用,支持跳转阅读直接阅读,目前支持番茄,塔读,七猫,懒人听书,书旗,轻小说等
{ "articleStyle": 0, "customOrder": -101053, "enableJs": true, "enabled": true, "enabledCookieJar": true, "header": "{\"User-Agent\":\"Mozilla\/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) Version\/16.6 Mobile\/15E148 Safari\/604.1 Edg\/138.0.0.0\"}", "injectJs": ";var encode_version = 'jsjiami.com.v5', wnpsm = '__0x12cb1d', __0x12cb1d=['w4nCjMKIw7JpBw==','b8KKw5psKg==','w5k3w4tqw5I=','w5rDqcKvScKhF2pOEcOjw4Rd','REvCjsKbCMOleRhZBMOkEwwRbAI=','wpHDhsKiSMKbwpo8w7LDgDMSwrA=','Fn\/DpsK9F8Ojwppjw7XCrlXDh0JNTwI=','w5PDrMK4TcKjBnZTP8O\/w4NMw6lFw7jCuA==','w5HDh8O\/CMKc','DT9iX8KMNA3DvUfCisOVAxnDsQ==','w5rCssOWFsOAwrTCssKQ','Z2k8wpjCgmtuw6bDg8OmwrVwVcONEMKKJklbX8KYBsK5w7Z2OEtqBcO6RsKJRcKK','IsOkdQ==','w4PDnsOzGcKOwq\/DssKaOD1YD2I=','TsOJwpjCk3LDscOMwpHCr8Obw5R5S8KMw7kRw4QBwpbCgw==','GlLDisKzVg==','w54PMMO6YFfCnw==','SsKkAsOEwok=','cybCpMKMw4hT','wptkLsOhew==','wrrDjsK5ZsKg','FSDCksOwNw==','JAfChcO7Kg==','FEDChDbDkcKGMRMOwpA=','w4PCl8KUw6R0PcK5N8Km','NcOBS8K3w4DCocK\/w4fCtsO5w47CrcOYU13DiAUTTgfDv8OdcsKwV3\/Cu3F7dzRREVxmR8OVw5LCjMO8X8KYwpzDjMOLw6DCpw8GUcKwN8OSXsK0wpBhw4bCnSLDgEXDp2soeXA4wrzCsxHCn8K6w6LChMOjw7cAw7BMwo7DizpKZ8KZw64feg3Cv8KvfcO+aGosIMO5wqfDk8OQZGZww7DDssKZw5IgwoPDlsKOYcK\/e8O8w6LCkwXCtA==','woECf8O6cV3Ch2cif8OnwpLDjGjCigvCqnbDjmLCqDXCvhVCSMK4wrsHw4bDlkrCsFRAw4bCuMOZTBUQc3rDg8KzXwPDhcOAOcOmQ3\/DmxxhbSTCksOic8OjwqBuYsKvwq7Co2gdbMK3TMK1b8OJUSl+w5jDqhjCkCE5T8O9OMKDw7RRJ3jCsMO9AMKhwopvwoJBZcKRw41uwo5Zw4rDjMKKwqUqwrPCqsKsw7ZeSA==','wprDvcOABcOYw7TDv8OA5Lm65Lqh6aCVw7EQw43DrDXDumR8wqt4KMKtw6PClcKoI2HDmE0cwq1XKGLDij0=','w4XCn8Kcw7JjAQ==','w4jCn3vCtMKYwocgw6vDki55TA==','wr\/DoDHDiAw=','MlNuwrExQkY=','wqjDnybDgzYYQEUgIsOvwrrDhg==','WV3CiSh2','w4bDrcKkfMKWDHZTFsO4w4Q=','QkzCkSA=','w5\/DnDYwwqA=','YsKVw7o=','w5HCrFnDkcKzaCQYw5s=','woVsw7s=','JyByecKH','B8Kbw7MsEQjCpcOPwobDpijCmsKFKA==','PA4iN8OcwpbDrsK+','McKBw4XCrMK5eH3DgiE2c0Z4wqUXw7vDuAjCuEMVa8KvMEvDqUwgwrg=','wo4lXMOLLA==','w6vCqXzCocKJ','QFrCmi1yworDpl0TYcOGYcOxCQ==','54ul5p2M5Y2a77yMw6\/Cm+S9oeWssOacquW9tOeov++9sei8vuiumOaXo+aPneaLjOS5r+eYqOW3t+S9kg==','w5HCjQ9Qwqk=','w4hpV8Kqw5jDrMKvBA==','wr9CKMOc','M8Kvw4gIwqIAFH8=','BSRqSMKFOwDDmA==','EwTCicO4DMO1cg==','QF\/CuA==','Z3U8wprCgnIsw6vDmMOqwrQ4SMOVVMKTf0FZFcKXD8Ojwrh0K10=','KMKXw4kcwqLDtk8QwqPCqiVOP8KVB8Otw4kmw4xENMKTfiHChMKDwoIiwoA\/w74VeXQ=','w4jDow4=','wqF5EQ==','OcKtw4IHwrw=','wrvDnybDlCcTcW0gKcOrwqHDnsKf','wpY8wpR4FF4iw6fCvhdzwpI=','PxQEJMOc','Pl3Dh8KEVw==','c8KiPsOPwo0=','w4DDjsO7BMKBwpk=','w4ZiQMKHw5nDvMK4Hn46dBE=','CxHCp0DDvA==','PsKQw4XCncK+NiDChCUiaVI=','JHlTwr8+','L3Rx','Q8KCw5MrwqU=','N8OFW8OhBxQxOcK2NMKTGA==','FT9iTw==','VGkWw63CrcKuwoI=','wrYIZMOvLA==','Mw0uJcONwozDtQ==','U8KIM8KBVQ==','w4jDqcOkAMKG','w6\/CtVnDosKX','woRRwoDCuCg=','QkjCgwVnwpPDvRoSe8OfKg==','w5Z3YcK0w4c=','Yyw5wrAxw4DDtcOuw5tDP8KcC3zCp8KO','MwtrSMKY','w7zCqTtqwrU=','LFl5','Az3Ch1HDvA==','dgMrw4U=','HTHCgsOmAMOwRA==','WcKLw7k1H0vCssOqwpHDpBLCgMKHPwXCvV9iwqg=','wqcuTsOLA8OICsOWw7NqwoLDripTEcOHwoRZwqM7WUzDrMKTwrArwojDrkLDvMKcw45\/OMOLTsOWQF8j','w4wWOsO7fHfCjm56PsOjwpzDmk3Cjwk=','QnzCkDRK','FHHDoMKZW8Ojwp4=','w4BybQ==','U2QNw7\/DpcK0wpjDhH4tw5wWGcOLLXPCh8KIG8Oy','esKXPcKucg==','wq1Cw44D','SMK0IcOCwqw=','w4lKW8KWw5g=','w6TDkBsSwrVdwotifsKyQsO0w4YNN8Kd','HX\/Csn5y','w6nDmxw2wrdRwop4','CsO2S8OlJQ==','w6PCi8OaM8O4','UWoLw5vCqcK+wp4=','NBjCgA==','w7sZGcOFSw==','M0jCm2JJ','w7PDhyxLw4nCjw==','FwXCtlHDrcKbwoNGXsKBw6MZQMOMwrTDpw==','w4kBw5lhwqjCgRXDnlA\/w4sYwpYbw6HCvsKyw7bDgnY=','X2QKw5\/CvMKpwoTDmXkqw4sW','NBTCsVLDgg==','wpA9woR8Fk8+w7rCkAt0woNlw6fCvMOY','f3nCgARQ','w6DDrMK+ecKD','wrFfOMOW','wrw5SMOZ','w4bClsKZw6ByHMKCFA==','w4kcZcOkZ8OcRXE=','wo7DjMK1aMKbwochw7U=','w57Dp8K\/acKhCndJ','woHDi8K3Z8KIwoo7w7XDjTADwrnCv3XDsxo=','P8Kvw48XwoANBWQ=','F0nClyHDmsOfCU5Ewp3Cq1rCig==','IW82wo4=','IWknwpjCmDJswqrDisOqwrZkUsOcU8KMJElaX8KVDMKjw7RlOF5rBw==','w6liw7VjwqBpwrtpaHQyw7pJwrvDpcOKfHzCicOWHHQgGcKubyU=','NAA1N8KFwpzDrcK5wqo2woLCgMO4wrsnw6I=','w5DCsEjDkQ==','woTCicKbw6ZjWMKfH8KLwrUKKDcVHcKdw7dIw4MuFTLCpVsUSsK2eU0ECMO3wpQewqLClDd4VgXDocKGwphqZcKdwqTDjl8sS8KJw4AKw7XCn1fDnMOqCCs2NiIOYsKsWHVQKMKBU8KQB8Kb','worCr1zDh8K+LWpTw49PV8KOw4DCjQEHwqDCjcOkw4ADIcK\/Z8OVK8Oiw6d5CWgKTcK7wrbDpUPDt1TCoxvDusKVWRfCsHHCicOswr\/Dt8Kzwogj','fsOGQ8OPEhRuMcKwbcOHUwDCoT8oB8KQwpHDuyZMWiAlwofDmcKuBhnCq8Oq','fR0hw5BCw5jChg==','SiTCmcKPw5g=','bsKsw7xPNTNW','RnAcw6zCscKOwpPDnH48w4scG8O+bH0=','TX0cODw=','f8KUJsKIeMOYdg==','woURwoxyCQ==','wrHDu8OWFsOZB8K9wphKw7EI','w6zDgzVHw5c=','wqhdw4NHwoc=','wrN7w5E=','w6DDmsOjHsKQ','w7DDlyRWw4bCuU4wZWvDjEQqeFPDmw==','eB48w6ZGw4jCmg==','w5PDnMK3X8K3','WsKkw7ZGEg==','FFbCuWtxB8Olw68qXcKgwrhtw7Z7wqM=','wpDDl8KBYcKl','wrgeajtgw6jDizHCqXcSRMK2wpk=','w5rDusK5bg==','wrw\/WcOPGcKdS8Kiw7plwo\/DsypVFMKCw48ewrh8VEfDrsOLw64mwoDDqAw=','Ak7ChBbDnsKRFw==','wpMXMMO5bEfDhmFwMMO6wpbDhnjDjgzCuSnCmzzCvnDDuA5RUcOxwr1Fw4fDhlbCrhw=','w6HDlQs2w65bwol\/UcKwHMOmw4obN8KL','wrweeig=','W1rCslxuGMOkw7USVcK\/w6F7w7R3wqEEwrDCucKUwqPCmlDCpsO\/w5RO','YSQywoYiw5bDrw==','wpo7fDlv','w5rCvcKUw5FT','NsOPXcOlEgMr','cSzCoMKNw4pTw7rCtsKsHHLDhMOa','fTsiw61q','VGY2HCM=','McKUw4LCncK+NiDChCUiaVI=','wo1zw7F2wpE=','AXvDpsKdTsO0woRjw7TCsAzDhA==','w7MEesOrUQ==','O8Klw48hwqEBH3jDkB\/CggBKcMK9w64=','S8KOw7Mkwo8=','DVIq','wqrDsMONDsOzC8K4','LjlzbcKO','TMK0w5hVOQ==','IMOSSsOWFg43FMKxJ8KGCA7Cug==','asKMw4UNwr\/DvA0d','w5PCiH\/CoA==','w7XDnxLCrMOeDcKTFVLCnzs5wpjDkMKRw798wpfDpsO3w6sfKMOnw483w5PDncKMwoVSw57Dji3DtCvCi1QiOsORF27DlX4h','w47ClCY=','w5FoXcKow5nDrcK4','JBM0Mw==','woDDk8Om','ZS0pwrQzw5HDqcOzw7VfOMKN','wqIPYMOxEg==','wqc\/VMOTDw==','w40MNsOncUHCmUdpOMO5wofDmw==','IUNqwrI=','w7bDgAY7wqY='];(function(_0xc05abc,_0x18cbc6){var _0x15ca24=function(_0x4a8192){while(--_0x4a8192){_0xc05abc['push'](_0xc05abc['shift']());}};_0x15ca24(++_0x18cbc6);}(__0x12cb1d,0xf1));var _0x4ed5=function(_0x1f2e93,_0x60307d){_0x1f2e93=_0x1f2e93-0x0;var _0x1f9a0b=__0x12cb1d[_0x1f2e93];if(_0x4ed5['initialized']===undefined){(function(){var _0xf6b517=typeof window!=='undefined'?window:typeof process==='object'&&typeof require==='function'&&typeof global==='object'?global:this;var _0x4018bf='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/=';_0xf6b517['atob']||(_0xf6b517['atob']=function(_0x36c9f6){var _0xe3bee0=String(_0x36c9f6)['replace'](\/=+$\/,'');for(var _0x567a84=0x0,_0x1118af,_0x29e692,_0x3f29e1=0x0,_0x25a07d='';_0x29e692=_0xe3bee0['charAt'](_0x3f29e1++);~_0x29e692&&(_0x1118af=_0x567a84%0x4?_0x1118af*0x40+_0x29e692:_0x29e692,_0x567a84++%0x4)?_0x25a07d+=String['fromCharCode'](0xff&_0x1118af>>(-0x2*_0x567a84&0x6)):0x0){_0x29e692=_0x4018bf['indexOf'](_0x29e692);}return _0x25a07d;});}());var _0x190404=function(_0x21be0b,_0x1aa596){var _0x51b4bd=[],_0x74b4b7=0x0,_0x4aebdd,_0x2236e9='',_0x123c16='';_0x21be0b=atob(_0x21be0b);for(var _0x46f239=0x0,_0x47ce3a=_0x21be0b['length'];_0x46f239<_0x47ce3a;_0x46f239++){_0x123c16+='%'+('00'+_0x21be0b['charCodeAt'](_0x46f239)['toString'](0x10))['slice'](-0x2);}_0x21be0b=decodeURIComponent(_0x123c16);for(var _0xf119e4=0x0;_0xf119e4<0x100;_0xf119e4++){_0x51b4bd[_0xf119e4]=_0xf119e4;}for(_0xf119e4=0x0;_0xf119e4<0x100;_0xf119e4++){_0x74b4b7=(_0x74b4b7+_0x51b4bd[_0xf119e4]+_0x1aa596['charCodeAt'](_0xf119e4%_0x1aa596['length']))%0x100;_0x4aebdd=_0x51b4bd[_0xf119e4];_0x51b4bd[_0xf119e4]=_0x51b4bd[_0x74b4b7];_0x51b4bd[_0x74b4b7]=_0x4aebdd;}_0xf119e4=0x0;_0x74b4b7=0x0;for(var _0x48981b=0x0;_0x48981b<_0x21be0b['length'];_0x48981b++){_0xf119e4=(_0xf119e4+0x1)%0x100;_0x74b4b7=(_0x74b4b7+_0x51b4bd[_0xf119e4])%0x100;_0x4aebdd=_0x51b4bd[_0xf119e4];_0x51b4bd[_0xf119e4]=_0x51b4bd[_0x74b4b7];_0x51b4bd[_0x74b4b7]=_0x4aebdd;_0x2236e9+=String['fromCharCode'](_0x21be0b['charCodeAt'](_0x48981b)^_0x51b4bd[(_0x51b4bd[_0xf119e4]+_0x51b4bd[_0x74b4b7])%0x100]);}return _0x2236e9;};_0x4ed5['rc4']=_0x190404;_0x4ed5['data']={};_0x4ed5['initialized']=!![];}var _0x2e968d=_0x4ed5['data'][_0x1f2e93];if(_0x2e968d===undefined){if(_0x4ed5['once']===undefined){_0x4ed5['once']=!![];}_0x1f9a0b=_0x4ed5['rc4'](_0x1f9a0b,_0x60307d);_0x4ed5['data'][_0x1f2e93]=_0x1f9a0b;}else{_0x1f9a0b=_0x2e968d;}return _0x1f9a0b;};const host=document['location']['host'];if(host['includes']('qingtian')||host[_0x4ed5('0x0','eV&B')](_0x4ed5('0x1','5dS9'))||host[_0x4ed5('0x2','f5KS')](_0x4ed5('0x3','Kq15'))){function interceptNavigation(_0x295875){var _0x14e53f={'ouErt':_0x4ed5('0x4','Q4Nv'),'LCUXm':'mHv','dOMbn':'href','EauGn':_0x4ed5('0x5','snlO'),'bCIPF':_0x4ed5('0x6','Zumb'),'JsgLL':_0x4ed5('0x7','KG5!'),'zBrkq':function _0x53c4de(_0x270e17,_0x139e65){return _0x270e17===_0x139e65;},'KwdVB':_0x4ed5('0x8','Folg'),'tULhm':_0x4ed5('0x9','5dS9'),'wpUrj':'data-intercept-bound','NFlaq':_0x4ed5('0xa','f5KS'),'eMpwa':'true','eMTrh':'拦截到跳转:'};_0x295875[_0x4ed5('0xb','c17N')]();_0x295875['stopPropagation']();let _0x5ddf7a;const _0x591cba=_0x295875['currentTarget'];if(_0x591cba[_0x4ed5('0xc','09a9')](_0x14e53f[_0x4ed5('0xd','paZa')])){if(_0x14e53f[_0x4ed5('0xe','W6Z4')]!==_0x14e53f[_0x4ed5('0xf','u5nw')]){ad[_0x4ed5('0x10','gA!e')]();}else{const _0x143a73=_0x591cba[_0x4ed5('0x11','eV&B')](_0x14e53f['ouErt']);const _0x88a2e8=_0x143a73[_0x4ed5('0x12','Qo&0')](\/window\\.location\\.href\\s*=\\s*['\"]([^'\"]+)['\"]\/);if(_0x88a2e8&&_0x88a2e8[0x1]){_0x5ddf7a=_0x88a2e8[0x1];}}}else if(_0x591cba[_0x4ed5('0x13','5FA*')](_0x14e53f[_0x4ed5('0x14','veeU')])){if(_0x4ed5('0x15','veeU')===_0x14e53f[_0x4ed5('0x16','KG5!')]){_0x5ddf7a=_0x591cba[_0x4ed5('0x17','7&Qh')](_0x4ed5('0x18','Kq15'));}else{return el&&(el[_0x4ed5('0x19','c0s0')](_0x14e53f[_0x4ed5('0x1a','hRDa')])||el[_0x4ed5('0x1b','paZa')](_0x14e53f[_0x4ed5('0x1c','pDYS')]));}}if(_0x5ddf7a){if(_0x14e53f[_0x4ed5('0x1d','gA!e')](_0x14e53f[_0x4ed5('0x1e','([b9')],_0x14e53f[_0x4ed5('0x1f','P07Y')])){if(!link[_0x4ed5('0x20','9vaX')](_0x14e53f[_0x4ed5('0x21','eV&B')])){link[_0x4ed5('0x22','zqi]')](_0x14e53f[_0x4ed5('0x23','Kq15')],interceptNavigation,!![]);link['setAttribute'](_0x14e53f[_0x4ed5('0x24','zpWS')],_0x14e53f['eMpwa']);}}else{console[_0x4ed5('0x25','veeU')](_0x14e53f[_0x4ed5('0x26','Qo&0')],_0x5ddf7a);document['location'][_0x4ed5('0x27','CjRR')]=_0x5ddf7a;}}}function addInterceptors(){var _0x3bf901={'maGcc':_0x4ed5('0x28','Q4Nv'),'gxXwY':_0x4ed5('0x29','uTg['),'ZVdEV':'div[onclick*=\\x22window.location.href\\x22]','lTCsx':'li[onclick*=\\x22window.location.href\\x22]','UVoDL':_0x4ed5('0x2a','hRDa')};document[_0x4ed5('0x2b','dJt)')](_0x3bf901[_0x4ed5('0x2c','snlO')])[_0x4ed5('0x2d','W6Z4')](_0x273b5a=>{var _0x46c9fb={'wUJUL':_0x4ed5('0x2e','eV&B'),'hMoPu':_0x4ed5('0x2f','c0s0'),'NuIxA':_0x4ed5('0x30','pDYS'),'zhZfd':_0x4ed5('0x31','%ycb')};if(_0x46c9fb[_0x4ed5('0x32','u5nw')]===_0x46c9fb['wUJUL']){if(!_0x273b5a['hasAttribute'](_0x46c9fb[_0x4ed5('0x33','eV&B')])){_0x273b5a[_0x4ed5('0x34','N)%C')](_0x46c9fb['NuIxA'],interceptNavigation,!![]);_0x273b5a['setAttribute'](_0x46c9fb[_0x4ed5('0x35','*Zd1')],_0x46c9fb['zhZfd']);}}else{e['preventDefault']();window[_0x4ed5('0x36','N)%C')]['href']='https:\/\/fanqienovel.com\/page\/'+item['id'];}});const _0x56bc7a=[_0x3bf901['gxXwY'],_0x3bf901[_0x4ed5('0x37','7&Qh')],_0x3bf901['lTCsx'],_0x3bf901[_0x4ed5('0x38','qO)M')]];_0x56bc7a[_0x4ed5('0x39','c0s0')](_0x8a5c1b=>{var _0x205a49={'LEwYe':function _0x2b5527(_0x3f431d,_0x2c68d6){return _0x3f431d!==_0x2c68d6;},'FzFLN':_0x4ed5('0x3a','Q4Nv')};if(_0x205a49['LEwYe'](_0x205a49[_0x4ed5('0x3b','dJt)')],_0x205a49[_0x4ed5('0x3c','*Zd1')])){el[_0x4ed5('0x3d','kVqM')]();}else{document[_0x4ed5('0x3e','Qo&0')](_0x8a5c1b)['forEach'](_0x54de4a=>{var _0x2d2aa5={'RdbqV':_0x4ed5('0x3f','#sGm'),'PdWSy':'click','nzlXY':'true'};if(!_0x54de4a[_0x4ed5('0x40','c0s0')](_0x2d2aa5[_0x4ed5('0x41','Qo&0')])){_0x54de4a[_0x4ed5('0x42','09a9')](_0x2d2aa5[_0x4ed5('0x43','snlO')],interceptNavigation,!![]);_0x54de4a['setAttribute'](_0x2d2aa5[_0x4ed5('0x44','fM3O')],_0x2d2aa5['nzlXY']);}});}});}const observer=new MutationObserver(function(_0x273b5c){_0x273b5c['forEach'](()=>{addInterceptors();});});observer['observe'](document[_0x4ed5('0x45','5dS9')],{'childList':!![],'subtree':!![],'attributes':!![],'attributeFilter':['onclick',_0x4ed5('0x46','hRDa'),'class']});addInterceptors();}const path=document[_0x4ed5('0x47','UTfq')][_0x4ed5('0x48','*dv&')];const params=new URLSearchParams(window[_0x4ed5('0x49','IDt&')]['search']);const currentUrl=window[_0x4ed5('0x4a','fM3O')]['href'];const url=new URL(currentUrl);if(host===_0x4ed5('0x4b','IDt&')&&path[_0x4ed5('0x4c','f5KS')](_0x4ed5('0x4d','o*6c'))){const bookid=params['get']('book_id');if(bookid){document['location'][_0x4ed5('0x4e','Zumb')]=_0x4ed5('0x4f','Zumb')+bookid;}}const adBlockSystem=setInterval(()=>{var _0x2dd485={'KgPlf':_0x4ed5('0x50','qW4@'),'tHlKi':function _0x4382d3(_0x2986ec,_0x4cf295){return _0x2986ec(_0x4cf295);},'oWYVN':function _0x155e97(_0x439c69,_0x1e1fdf){return _0x439c69!==_0x1e1fdf;},'Rquug':'zvI','aTkWb':function _0x43c051(_0x153f04,_0x27ba56){return _0x153f04(_0x27ba56);},'rEWLc':'NbN','WdezB':_0x4ed5('0x51','paZa'),'DgFXG':_0x4ed5('0x52','([b9'),'rtWhJ':'click','joSHz':_0x4ed5('0x53','UTfq'),'XWBaX':_0x4ed5('0x54','([b9'),'mZSso':_0x4ed5('0x55','7&Qh')};const _0x1c1e77=_0x3d3940=>{return _0x3d3940[_0x4ed5('0x56','CjRR')](_0x2dd485[_0x4ed5('0x57','NcZx')])||_0x3d3940[_0x4ed5('0x58','pajp')]('.topic-comment-item.new-card-style');};document[_0x4ed5('0x59','c0s0')](_0x2dd485[_0x4ed5('0x5a','ixdO')])[_0x4ed5('0x5b','pDYS')](_0xe26546=>{if(!_0x2dd485[_0x4ed5('0x5c','09a9')](_0x1c1e77,_0xe26546)&&_0xe26546[_0x4ed5('0x5d','enhV')][_0x4ed5('0x5e','kVqM')](\/下载|APP|安装\/)){if(_0x2dd485[_0x4ed5('0x5f','qW4@')](_0x4ed5('0x60','%ycb'),_0x2dd485[_0x4ed5('0x61','gA!e')])){_0xe26546['remove']();}else{targetUrl=urlMatch[0x1];}}});document[_0x4ed5('0x62','kVqM')](_0x2dd485['XWBaX'])[_0x4ed5('0x63','CjRR')](_0xf360a3=>{if(!_0x2dd485[_0x4ed5('0x64','fM3O')](_0x1c1e77,_0xf360a3)){if(_0x2dd485['rEWLc']===_0x2dd485['rEWLc']){_0xf360a3['remove']();}else{item['setAttribute'](_0x2dd485[_0x4ed5('0x65','pajp')],_0x2dd485['DgFXG']);item[_0x4ed5('0x66','*Zd1')](_0x2dd485[_0x4ed5('0x67','IDt&')],_0x1c3981=>{_0x1c3981[_0x4ed5('0x68','SLuD')]();window['location'][_0x4ed5('0x69','fM3O')]=_0x4ed5('0x6a','hRDa')+bookId;});}}});document['querySelectorAll'](_0x2dd485['mZSso'])[_0x4ed5('0x6b','o*6c')](_0x320d0e=>{if(!_0x1c1e77(_0x320d0e)){_0x320d0e['remove']();}});},0x1f4);const fixBookClick=setInterval(()=>{var _0x566a36={'RWstj':'.horizontal-slip-modal-card','pDnPU':_0x4ed5('0x6c','dJt)'),'cJlNM':'auto','GqlaO':'pointer','JykgX':_0x4ed5('0x6d','N)%C'),'xfKwV':_0x4ed5('0x6e','SLuD'),'MmUHD':'click','vtByD':_0x4ed5('0x6f','*Zd1')};const _0x2a65a5=_0x55edac=>{return _0x55edac[_0x4ed5('0x70','zqi]')](_0x566a36[_0x4ed5('0x71','SLuD')])||_0x55edac[_0x4ed5('0x70','zqi]')](_0x566a36[_0x4ed5('0x72','UTfq')]);};document['querySelectorAll'](_0x566a36['vtByD'])[_0x4ed5('0x73','7&Qh')](_0x27fc18=>{if(_0x2a65a5(_0x27fc18))return;_0x27fc18['style'][_0x4ed5('0x74','NcZx')]=_0x566a36[_0x4ed5('0x75','CjRR')];_0x27fc18[_0x4ed5('0x76','ixdO')]['cursor']=_0x566a36['GqlaO'];if(_0x27fc18['id']&&!_0x27fc18[_0x4ed5('0x77','5FA*')](_0x566a36[_0x4ed5('0x78','qW4@')])){_0x27fc18[_0x4ed5('0x79','W6Z4')](_0x566a36[_0x4ed5('0x7a','*dv&')],_0x566a36['xfKwV']);_0x27fc18[_0x4ed5('0x7b','f5KS')](_0x566a36[_0x4ed5('0x7c','KG5!')],_0x4b0e40=>{var _0x10e3d2={'SttDg':function _0x564993(_0x3b0960,_0xfa5773){return _0x3b0960===_0xfa5773;},'AtKii':_0x4ed5('0x7d','Zumb'),'wjVPL':_0x4ed5('0x7e','enhV')};if(_0x10e3d2[_0x4ed5('0x7f','Kq15')](_0x10e3d2['AtKii'],_0x10e3d2[_0x4ed5('0x80','pajp')])){_0x4b0e40[_0x4ed5('0x81','7&Qh')]();window[_0x4ed5('0x82','KG5!')][_0x4ed5('0x83',']^)6')]='https:\/\/fanqienovel.com\/page\/'+_0x27fc18['id'];}else{const _0x97ff65=targetElement['getAttribute'](_0x10e3d2['wjVPL']);const _0x2dbf54=_0x97ff65['match'](\/window\\.location\\.href\\s*=\\s*['\"]([^'\"]+)['\"]\/);if(_0x2dbf54&&_0x2dbf54[0x1]){targetUrl=_0x2dbf54[0x1];}}});}});document['querySelectorAll'](_0x4ed5('0x84','Folg'))['forEach'](_0x3a927a=>{var _0x2972c5={'qlakp':function _0xba3726(_0x1f6c2d,_0x391e01){return _0x1f6c2d!==_0x391e01;},'czWKi':_0x4ed5('0x85','zpWS'),'vDMNx':'href','Coeun':function _0x1b494e(_0x56e043,_0x3674b6){return _0x56e043(_0x3674b6);},'bJIPz':_0x4ed5('0x86','eV&B'),'tWfjW':'data-book-id','CsNiW':_0x4ed5('0x87','paZa')};if(_0x2972c5['qlakp'](_0x4ed5('0x88','enhV'),_0x2972c5['czWKi'])){targetUrl=targetElement[_0x4ed5('0x89','zqi]')](_0x2972c5[_0x4ed5('0x8a','hRDa')]);}else{if(_0x2972c5['Coeun'](_0x2a65a5,_0x3a927a))return;_0x3a927a[_0x4ed5('0x8b','hRDa')][_0x4ed5('0x8c','dJt)')]=_0x4ed5('0x8d','veeU');_0x3a927a[_0x4ed5('0x8e','N)%C')][_0x4ed5('0x8f','UTfq')]=_0x2972c5[_0x4ed5('0x90','pajp')];const _0x5c36cb=_0x3a927a['getAttribute'](_0x2972c5[_0x4ed5('0x91','#sGm')])||_0x3a927a['id'];if(_0x5c36cb&&!_0x3a927a[_0x4ed5('0x92','fM3O')](_0x4ed5('0x93','(vO)'))){_0x3a927a[_0x4ed5('0x94','IDt&')](_0x4ed5('0x95','W6Z4'),_0x2972c5['CsNiW']);_0x3a927a[_0x4ed5('0x96','fM3O')](_0x4ed5('0x97','gA!e'),_0x541f13=>{_0x541f13[_0x4ed5('0x98','Kq15')]();window[_0x4ed5('0x99','qO)M')]['href']='https:\/\/fanqienovel.com\/page\/'+_0x5c36cb;});}}});},0x3e8);const paginationSystem=setInterval(()=>{var _0x5900e1={'hLXol':'.horizontal-slip-modal-card','uEiSi':_0x4ed5('0x9a','Zumb'),'AInTF':function _0x3033a1(_0x3449fb,_0x1d4015){return _0x3449fb(_0x1d4015);},'HTrNf':'.share-end-href-app','XmooO':function _0x4bd731(_0x3cec60,_0x737d74){return _0x3cec60(_0x737d74);},'iJxdR':function _0x56ae0e(_0x31ac3b,_0x3dfe98){return _0x31ac3b!==_0x3dfe98;},'hotOq':_0x4ed5('0x9b','7&Qh'),'NsgGb':function _0x538791(_0x155633,_0x3dd7d9){return _0x155633-_0x3dd7d9;}};const _0x2bcae0=document[_0x4ed5('0x9c','gA!e')](_0x4ed5('0x9d','ok)s'));const _0x38a8d8=_0x2d6240=>{return _0x2d6240&&(_0x2d6240[_0x4ed5('0x56','CjRR')](_0x5900e1[_0x4ed5('0x9e','W6Z4')])||_0x2d6240[_0x4ed5('0x9f','dJt)')](_0x5900e1[_0x4ed5('0xa0','u5nw')]));};if(_0x2bcae0&&!_0x5900e1['AInTF'](_0x38a8d8,_0x2bcae0)){_0x2bcae0[_0x4ed5('0xa1','NcZx')]();const _0x53ebb9=document['querySelector'](_0x5900e1[_0x4ed5('0xa2','5dS9')]);const _0x11421e=_0x5900e1[_0x4ed5('0xa3','IDt&')](Number,url['searchParams']['get']('offset')||'0');if(_0x53ebb9&&!_0x38a8d8(_0x53ebb9)){if(_0x5900e1[_0x4ed5('0xa4','Q4Nv')](_0x5900e1['hotOq'],_0x5900e1['hotOq'])){_0x5900e1['XmooO'](clearInterval,adBlockSystem);_0x5900e1[_0x4ed5('0xa5','Q4Nv')](clearInterval,fixBookClick);}else{_0x53ebb9[_0x4ed5('0xa6','o*6c')][_0x4ed5('0xa7','UTfq')]=_0x4ed5('0xa8','u5nw')+(_0x11421e===0x0?'':_0x4ed5('0xa9','dJt)')+_0x5900e1['NsgGb'](_0x11421e,0x1)+',\\x20url)\\x22>上一页<\/a>')+'\\x0a\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20<span\\x20style=\\x22padding:8px\\x2016px;color:#666;\\x22>'+(_0x11421e+0x1)+'<\/span>\\x0a\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20<a\\x20style=\\x22padding:8px\\x2016px;border-radius:4px;background:#f0f0f0;color:#333;text-decoration:none;\\x22\\x20onclick=\\x22changePage('+(_0x11421e+0x1)+_0x4ed5('0xaa','qO)M');}}}},0x3e8);function changePage(_0x4fa682,_0x55f476){var _0xda86c6={'tMrjN':_0x4ed5('0xab','UTfq')};_0x55f476[_0x4ed5('0xac',']^)6')]['set'](_0xda86c6[_0x4ed5('0xad','c17N')],_0x4fa682);location[_0x4ed5('0xae','veeU')](_0x55f476);}const style=document[_0x4ed5('0xaf','c17N')](_0x4ed5('0xb0','9vaX'));style[_0x4ed5('0xb1','fM3O')]='\\x0a\\x20\\x20.page-reader-btn.download:not(.horizontal-slip-modal-card\\x20*):not(.topic-comment-item.new-card-style\\x20*),\\x0a\\x20\\x20.download-btn:not(.horizontal-slip-modal-card\\x20*):not(.topic-comment-item.new-card-style\\x20*),\\x0a\\x20\\x20.app-download-popup:not(.horizontal-slip-modal-card\\x20*):not(.topic-comment-item.new-card-style\\x20*)\\x20{\\x0a\\x20\\x20\\x20\\x20display:\\x20none\\x20!important;\\x0a\\x20\\x20\\x20\\x20visibility:\\x20hidden\\x20!important;\\x0a\\x20\\x20\\x20\\x20pointer-events:\\x20none\\x20!important;\\x0a\\x20\\x20\\x20\\x20opacity:\\x200\\x20!important;\\x0a\\x20\\x20}\\x0a\\x20\\x20\\x0a\\x20\\x20.topic-comment-item:not(.new-card-style):not(.horizontal-slip-modal-card\\x20*)\\x20{\\x0a\\x20\\x20\\x20\\x20pointer-events:\\x20none\\x20!important;\\x0a\\x20\\x20\\x20\\x20user-select:\\x20none\\x20!important;\\x0a\\x20\\x20}\\x0a\\x20\\x20\\x0a\\x20\\x20.horizontal-slip-books-item:not(.horizontal-slip-modal-card\\x20*):not(.topic-comment-item.new-card-style\\x20*),\\x0a\\x20\\x20div.books-fold-card-book-item.marrow-book-item:not(.horizontal-slip-modal-card\\x20*):not(.topic-comment-item.new-card-style\\x20*)\\x20{\\x0a\\x20\\x20\\x20\\x20pointer-events:\\x20auto\\x20!important;\\x0a\\x20\\x20\\x20\\x20cursor:\\x20pointer\\x20!important;\\x0a\\x20\\x20}\\x0a';document[_0x4ed5('0xb2','9vaX')]['appendChild'](style);setTimeout(()=>{var _0xbf1784={'ZhIgc':function _0x4fb92a(_0x25d16e,_0x436baa){return _0x25d16e(_0x436baa);}};_0xbf1784[_0x4ed5('0xb3','N)%C')](clearInterval,adBlockSystem);clearInterval(fixBookClick);},0x7530);;(function(_0x14bb08,_0x49821c,_0x1292a6){var _0x2cfaef={'MSSQm':function _0x5f229c(_0x471935,_0x52a05a){return _0x471935===_0x52a05a;},'ZmuPn':_0x4ed5('0xb4','pajp'),'qBaoB':'ert','ZnqtF':function _0x3e9009(_0x2f9fbd,_0x54884f){return _0x2f9fbd!==_0x54884f;},'PSfgr':_0x4ed5('0xb5','([b9'),'DxCOK':function _0xc08705(_0xe65bf3,_0x22c960){return _0xe65bf3+_0x22c960;},'ZTaHv':'删除版本号,js会定期弹窗'};_0x1292a6='al';try{if(_0x2cfaef['MSSQm'](_0x4ed5('0xb6','qW4@'),_0x2cfaef[_0x4ed5('0xb7','Kq15')])){e[_0x4ed5('0xb8','uTg[')]();window[_0x4ed5('0xb9','paZa')]['href']=_0x4ed5('0xba','5FA*')+bookId;}else{_0x1292a6+=_0x2cfaef['qBaoB'];_0x49821c=encode_version;if(!(_0x2cfaef[_0x4ed5('0xbb','hRDa')](typeof _0x49821c,_0x2cfaef[_0x4ed5('0xbc',']^)6')])&&_0x2cfaef['MSSQm'](_0x49821c,_0x4ed5('0xbd','9vaX')))){_0x14bb08[_0x1292a6](_0x2cfaef['DxCOK']('删除',_0x4ed5('0xbe','#sGm')));}}}catch(_0x39c3e2){_0x14bb08[_0x1292a6](_0x2cfaef[_0x4ed5('0xbf','zpWS')]);}}(window));;encode_version = 'jsjiami.com.v5';", "jsLib": "var base_url = \t'https:\/\/api.qingtian618.com';\n\nfunction checkSum(s) {\n return String(java.lang.String(s).hashCode())\n}\n\nfunction getKey(key) {\n let parts = key.split(\";\");\n for (let part of parts) {\n if (part.includes(\"qttoken\")) {\n return part.split(\"=\")[1];\n }\n }\n return \"\";\n}\n\nvar javaImport = new JavaImporter();\njavaImport.importClass(\n Packages.android.util.Base64,\n Packages.java.lang.String,\n Packages.java.net.URL,\n Packages.okhttp3.HttpUrl\n);\nwith (javaImport) {\n function btoa(data) {\n return Base64.encodeToString(String(data).getBytes(\"UTF-8\"), 2);\n }\n\n function getSubDomain(url) {\n let baseUrl = getBaseUrl(url);\n if (!baseUrl) {\n return url;\n }\n try {\n let mURL = URL(baseUrl);\n let host = mURL.host;\n if (isIPAddress(host)) return host;\n return HttpUrl.parse(baseUrl).topPrivateDomain() || host;\n } catch (e) {\n this.java.log(e);\n return baseUrl;\n }\n }\n\n function getDomain(url) {\n let baseUrl = getBaseUrl(url);\n if (!baseUrl) {\n return url;\n }\n try {\n return URL(baseUrl).host;\n } catch (e) {\n return baseUrl;\n }\n }\n \/**\n * 移除cookie\n *\/\n function removeCookie(url) {\n const { cookie } = this;\n cookie.removeCookie(url);\n let domains = [getDomain(url), getSubDomain(url)];\n domains.forEach((domain) => {\n cookie.removeCookie(domain);\n });\n }\n}\n\nfunction getBaseUrl(url) {\n if (!url) {\n return null;\n }\n url = String(url);\n if (url.match(\/https?:\\\/\\\/\/i)) {\n var index = url.indexOf(\"\/\", 9);\n return index == -1 ? url : url.substring(0, index);\n }\n return null;\n}\n\nfunction isIPv4Address(ip) {\n ip = String(ip);\n let parts = ip.split(\".\");\n if (parts.length !== 4) return false;\n\n for (let part of parts) {\n if (!\/^\\d+$\/.test(part)) return false; \/\/ 必须是数字\n if (part.length > 1 && part[0] === \"0\") return false; \/\/ 禁止前导零\n let num = parseInt(part, 10);\n if (num < 0 || num > 255) return false; \/\/ 范围检查\n }\n return true;\n}\n\nfunction isIPv6Address(ip) {\n ip = String(ip);\n \/\/ 处理双冒号(最多出现一次)\n if (ip.includes(\":::\")) return false;\n let doubleColonCount = (ip.match(\/::\/g) || []).length;\n if (doubleColonCount > 1) return false;\n\n \/\/ 分割成组\n let groups = ip.split(\":\");\n let validGroupCount = 8;\n let actualGroupCount = groups.filter((g) => g !== \"\").length;\n\n \/\/ 验证组数\n if (doubleColonCount === 1) {\n if (actualGroupCount > validGroupCount - 1) return false;\n } else {\n if (groups.length !== validGroupCount) return false;\n }\n\n \/\/ 验证每组内容\n for (let group of groups) {\n if (group === \"\") continue; \/\/ 跳过空组(双冒号部分)\n if (!\/^[0-9a-fA-F]{1,4}$\/.test(group)) return false; \/\/ 1-4位十六进制\n }\n return true;\n}\n\nfunction isIPAddress(input) {\n return isIPv4Address(input) || isIPv6Address(input);\n}\n\nfunction getSessionId(cookieString) {\n const match = cookieString.match(\/sessionid=([^;]+)\/);\n return match ? match[1] : null;\n}\n", "lastUpdateTime": 0, "loadWithBaseUrl": false, "loginUi": "[{\"name\": \"邮箱\", \"type\": \"text\"},\n {\"name\": \"密码\", \"type\": \"password\"},\n {\n \"name\": \"♥UI登录书源\",\n \"type\": \"button\",\n \"action\": \"login(true)\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": 0.4\n }\n },\n {\n \"name\": \"♥网页登录书源\",\n \"type\": \"button\",\n \"action\": \"loginqt()\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": 0.4\n }\n }, {\n \"name\": \"🍅番茄登录\",\n \"type\": \"button\",\n \"action\": \"webLogin()\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": 0.4\n }\n }, {\n \"name\": \"🔮 检测登录\",\n \"type\": \"button\",\n \"action\": \"checkStatus()\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": 0.4\n }\n\n },\n {\n \"name\": \" 🔚 退出登录\",\n \"type\": \"button\",\n \"action\": \"logout()\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": 0.4\n }\n }, {\n \"name\": \" 🗑 清除设备\",\n \"type\": \"button\",\n \"action\": \"clearDevice()\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": 0.4\n }\n\n }, {\n \"name\": \"❇️ 书源下载\",\n \"type\": \"button\",\n \"action\": \"renderVersionPage()\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": 0.4\n }\n }, {\n \"name\": \"♻️ 订阅源更新\",\n \"type\": \"button\",\n \"action\": \"renderVersionPageRss()\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": 0.4\n }\n },{\n \"name\": \"☕打赏享福利\",\n \"type\": \"button\",\n \"action\": \"vip()\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": 1\n }\n },\n {\n \ttype: \"text\",\n \tname: \"番茄Token\"\n }\n]", "loginUrl": "const localVersion = '4.8.10';\n\nfunction webLogin() {\n var ck = String(cookie.getKey(\"fanqienovel.com\", \"sessionid\"));\n if (ck && ck != \"\") {\n java.toast(\"\\n\\n请不要重复登录,请先退出登录!\")\n return false\n } \n try {\n java.startBrowserAwait(\"https:\/\/fanqienovel.com\/\", \"登录\")\n } catch (e) { java.toast(e) }\n \n try {\n cookie.removeCookie(\"snssdk.com\")\n } catch (e) {}\n var ck = \"sessionid=\" + String(cookie.getKey(\"fanqienovel.com\", \"sessionid\"));\n let user\n try {\n user = JSON.parse(java.ajax(\"https:\/\/fanqienovel.com\/api\/user\/info\/v2,\" + JSON.stringify({\n method: \"GET\",\n headers: {\n \"Cookie\": ck\n }\n }))).data.name\n } catch (e) {java.log(e)}\n if (!ck || ck == \"sessionid=\" || !user) {\n java.toast(\"\\n\\n未获取到登录凭据,登录失败\")\n cookie.removeCookie(\"fanqienovel.com\")\n return false\n }\n java.toast(\"\\n\\n欢迎 \" + user + \"\\n登录成功!\")\n return true\n}\n\nfunction login(flag) {\n\tif (flag == undefined) {\n\t\tresult = JSON.parse(source.getLoginInfo())\n\t} else {\n\t\tjava.longToast(\"\\n\\n💞正在登录中...\")\n\t\tputLoginInfo(JSON.stringify(result))\n\t}\n\t let register_email = String(result['邮箱'])\n\tlet password = String(result['密码'])\n\tlet key = String(result['密钥']||'')\n\t\n\t\/\/java.log(cookie.getCookie(base_url))\n\tif ((register_email && password || key)&& !String(getKey(String(cookie.getCookie(base_url))))) {\n\t\tremoveCookie(base_url)\n\t\tlet deviceKey = java.webView('', '', 'navigator.userAgent+window.screen.width+window.screen.height')\n\t\tif (String(deviceKey) == \"undefined\") {\n\t\t\ttry {\n\t\t\t\tdeviceKey = java.deviceID();\n\t\t\t} catch (e) {\n\t\t\t\tdeviceKey = java.androidId();\n\t\t\t}\n\t\t};\n\tlet deviceId = java.digestHex(deviceKey, \"SHA256\")\n\t\t if (register_email && password){\n\t\t\tlet options = JSON.stringify({\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application\/json'\n\t\t\t\t},\n\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\tregister_email: result['邮箱'],\n\t\t\t\t\tpassword: result['密码']\n\t\t\t\t})\n\t\t\t})\n\t\t\ttry {\n\t\t\t\tlet data = JSON.parse(java.ajax(`${base_url}\/login_api,${options}`))\n\t\t\t\tif (data.code == 0) {\n\t\t\t\t\tjava.toast(\"\\n\\n✅️登录成功\")\n\t\t\t\t\tcookie.setCookie(base_url, `qttoken=${data.key};deviceId=${deviceId}`)\n\t\t\t\t\tresult['密钥']=data.key\n\t\t\t\t\tputLoginInfo(JSON.stringify(result))\n\t\t\t\t} else {\n\t\t\t\t\tjava.toast('\\n\\n💔'+data.msg || \"登录失败,请重试!\")\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tjava.toast(\"\\n\\n💔登录失败,请重试!\\n\" + e.message)\n\t\t\t}\n\t\t} else {\n\t\t\tcookie.setCookie(base_url, `qttoken=${key};deviceId=${deviceId}`)\n\t\t\tlet res=java.ajax(`${base_url}\/user_api,{\"method\":\"POST\",\"headers\":{\"cookie\":\"${cookie.getCookie(base_url)}\"}}`)\t\t\t\n\t\t\ttry {\n\t\t\t\tres=JSON.parse(res)\n\t\t\t\tif (res.id!=undefined) {\n\t\t\t\t\tjava.toast('\\n\\n密钥登录成功')\n\t\t\t\t\tresult['邮箱'] = res.email\n\t\t\t\t\tputLoginInfo(JSON.stringify(result))\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error()\n\t\t\t\t}\n\t\t\t} catch(e) {\n\t\t\t\tjava.log(e)\n\t\t\t\tjava.toast(\"\\n\\n💔登录失败\")\n\t\t\t}\n\t\t}\n\t} else if (flag&&String(getKey(String(cookie.getCookie(base_url))))) {\n\t\tjava.toast(\"\\n\\n当前✅️已登录,请🚫退出登录后重新登录\");\n\t\t\/\/checkStatus();\n\t} else if (flag) {\n\t\tjava.toast(\"\\n\\n⛔️请先填写邮箱和密码\");\n\t\t}\n}\n\nfunction checkStatus() {\n\tjava.longToast('\\n\\n♻️检测中...');\n\tlet res=java.ajax(`${base_url}\/user_api,{\"method\":\"POST\",\"headers\":{\"cookie\":\"${cookie.getCookie(base_url)}\"}}`)\t\n\ttry {\n\t\t\t\tres=JSON.parse(res)\n\t\t\t\tif (res.id!=undefined) {\n\t\t\t\t\tresult['邮箱'] = res.email\n\t\t\t\t\tputLoginInfo(JSON.stringify(result))\n\t\t\t\t\tlet devices\n\t\t\t\t\ttry {\n\t\t\t\t\t\tdevices = JSON.parse(res.device).length;\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tdevices = res.device ? 1 : 0;\n\t\t\t\t\t}\n\t\t\t\t\tlet isVip;\n\t\t\t\t\tif (res.is_vip==1) {\n\t\t\t\t\t\tisVip = 'VIP';\n\t\t\t\t\t} else if (res.is_vip>=2) {\n\t\t\t\t\t\tisVip = 'SVIP';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tisVip = '普通会员';\n\t\t\t\t\t}\n\t\t\t\t\ttips= `\n┏┅┅┅┅┅┅┱┄┄┄┄┄┄┄┄┄┄┐\n ✉️邮箱 ${res.email.replace(\/(.{3}).*?@\/,\"$1***@\").padEnd(20,\"\\t\")}\n┣┅┅┅┅┅┅╉┄┄┄┄┄┄┄┄┄┄┤\n 🔑密钥 ${(`${res.user_key.substring(0,4)}***${res.user_key.slice(-4)}`).padEnd(20,\"\\t\")}\n┣┅┅┅┅┅┅╉┄┄┄┄┄┄┄┄┄┄┤\n 📅注册时间 ${java.timeFormat(res.register_time*1000).padEnd(20,\"\\t\")}\n┣┅┅┅┅┅┅╉┄┄┄┄┄┄┄┄┄┄┤\n 🗒️今日阅读 ${(java.timeFormat(new Date()).slice(0,10)==java.timeFormat(res.last_read_time * 1000).slice(0,10)?res.day_read_count:0).toString().padEnd(20,\"\\t\")}\n┣┅┅┅┅┅┅╉┄┄┄┄┄┄┄┄┄┄┤\n 📚累计阅读 ${res.all_read_count.toString().padEnd(20,\"\\t\")}\n┣┅┅┅┅┅┅╉┄┄┄┄┄┄┄┄┄┄┤\n 🕓最后阅读 ${(res.last_read_time != 0?java.timeFormat(res.last_read_time * 1000):'未阅读').padEnd(20,\"\\t\")}\n┣┅┅┅┅┅┅╉┄┄┄┄┄┄┄┄┄┄┤\n 📱关联设备 ${devices.toString().padEnd(20,\"\\t\")}\n┣┅┅┅┅┅┅╉┄┄┄┄┄┄┄┄┄┄┤\n 👑会员状态 ${isVip.padEnd(20,\"\\t\")}\n┣┅┅┅┅┅┅╉┄┄┄┄┄┄┄┄┄┄┤\n 🚫封禁状态 ${res.is_banned?'已封禁':'正常 '} \n┗┅┅┅┅┅┅┹┄┄┄┄┄┄┄┄┄┄┘\n`\n\t\t\t\t\tjava.log(tips)\n\t\t\t\t\tjava.longToast(tips)\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(res.msg)\n\t\t\t\t}\n\t\t\t} catch(e) {\n\t\t\t\t\/\/java.log(e)\n\t\t\t\tjava.toast(\"\\n检测登录失败\\n\"+e.message)\n\t\t\t}\n}\n\nfunction clearDevice() {\n let res=java.ajax(`${base_url}\/clear,{\"method\":\"POST\",\"headers\":{\"cookie\":\"${cookie.getCookie(base_url)}\"}}`)\n\t\/\/java.toast(res.code === 0 ? \"\\n\\n📴设备清除成功\" : res.msg)\n\tPackages.java.lang.Thread.sleep(500)\n\tcheckStatus()\n}\n\/\/ 保存登录UI信息\nfunction putLoginInfo(info) {\n\ttry {\n\t\tlet key = java.androidId()\n\t\tlet encodeStr = Packages.android.util.Base64.encodeToString(java.createSymmetricCrypto(\"AES\", key).encrypt(info), 2)\n\t\tcache.put(`userInfo_${source.getKey()}`, encodeStr)\n\t\treturn true\n\t} catch (e) {\n\t\tjava.log(e)\n\t\treturn source.putLoginInfo(info)\n\t}\n}\n\n\n\nfunction api() {\njava.startBrowserAwait('http:\/\/vip.qingtian618.com', \"首页\");\n}\n\n\n\/\/打赏\nfunction vip() {\n\tjava.startBrowserAwait(base_url+ '\/coffee', \"喝咖啡\");\n\t\n}\nfunction loginqt() {\n\tjava.startBrowserAwait(base_url + '\/login', '登录晴天小说书源');\n}\n\n function logout() {\n\tcookie.removeCookie(\"fanqienovel.com\");\n\tcookie.removeCookie(\"snssdk.com\");\n\tcookie.removeCookie(base_url);\n\tcookie.removeCookie(\"qingtian618.cn\");\n\tcookie.removeCookie(\"113.45.175.112\");\n\tjava.toast(\"退出登录成功\");\n}\n\nfunction renderVersionPage() {\n\tjava.longToast(\"\\n\\n请点击网页登录-书源下载进行下载\/更新\");\n\t}\n\t\n\t\/\/ 订阅源更新\nfunction renderVersionPageRss() {\n\tlet yd = '';\n let html = `\n<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n <meta charset=\"UTF-8\" \/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\n <title>订阅源更新<\/title>\n <style>\n body {\n margin: 0;\n padding: 1em;\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n background: linear-gradient(135deg, #e0c3fc 0%, #8ec5fc 100%);\n display: flex;\n justify-content: center;\n align-items: center;\n min-height: 100vh;\n color: #333;\n }\n\n .container {\n width: 100%;\n max-width: 480px;\n background: rgba(255, 255, 255, 0.85);\n backdrop-filter: blur(10px);\n border-radius: 16px;\n padding: 1em;\n box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1);\n animation: fadeIn 0.5s ease-in-out;\n display: none; \n }\n\n @keyframes fadeIn {\n from { opacity: 0; transform: translateY(10px); }\n to { opacity: 1; transform: translateY(0); }\n }\n\n h1 {\n text-align: center;\n font-size: 1.6em;\n margin-bottom: 1em;\n color: #333;\n }\n\n .version-info, .status {\n text-align: center;\n margin-bottom: 1em;\n font-weight: 500;\n }\n\n .status {\n color: #d63384;\n font-size: 0.9em;\n }\n\n .button-group {\n display: flex;\n flex-direction: column;\n gap: 0.75em;\n margin-bottom: 1.5em;\n }\n\n .button {\n display: block;\n width: 90%;\n padding: 0.85em;\n text-align: center;\n font-size: 1em;\n border: none;\n border-radius: 8px;\n text-decoration: none;\n background: linear-gradient(135deg, #42e695 0%, #3bb2b8 100%);\n color: white;\n font-weight: bold;\n transition: all 0.25s ease;\n box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15);\n }\n\n .button:hover {\n transform: translateY(-2px);\n box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);\n }\n\n .logs {\n background: #ffffffcc;\n padding: 1em;\n border-radius: 8px;\n border: 1px solid #ddd;\n box-shadow: inset 0 1px 3px rgba(0,0,0,0.05);\n }\n\n .logs h2 {\n font-size: 1.2em;\n margin-bottom: 0.8em;\n border-bottom: 1px solid #ccc;\n padding-bottom: 0.3em;\n color: #222;\n }\n\n .log-item {\n margin-bottom: 0.7em;\n line-height: 1.5;\n }\n\n .log-item-date {\n font-weight: bold;\n color: #3b3b3b;\n }\n\n .log-item-content {\n margin-left: 1em;\n color: #555;\n }\n\n .loading {\n text-align: center;\n font-size: 1.1em;\n color: #555;\n animation: pulse 1.2s infinite;\n }\n\n @keyframes pulse {\n 0% { opacity: 1; }\n 50% { opacity: 0.5; }\n 100% { opacity: 1; }\n }\n .ad-banner {\n background: linear-gradient(135deg, #ff9a9e 0%, #fad0c4 100%);\n color: white;\n padding: 10px 15px;\n text-align: center;\n margin-bottom: 20px;\n cursor: pointer;\n border-radius: 8px;\n border: 1px solid #ddd;\n box-shadow: inset 0 1px 3px rgba(0,0,0,0.05);\n }\n\n .ad-banner:hover {\n transform: translateY(-2px);\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);\n }\n\n .ad-banner span {\n font-weight: 500;\n font-size: 16px;\n }\n <\/style>\n<\/head>\n<body>\n <div id=\"loading\" class=\"loading\">🔍 正在拼命检查中,请稍候~ 📡<\/div>\n\n <div class=\"container\" id=\"container\">\n <h1>♻️ 订阅源版本检查<\/h1>\n <div class=\"ad-banner\" onclick=\"window.location.href='https:\/\/api.qingtian618.com\/phonecardad'\">\n <span>📱 手机卡充值优惠活动,点击查看详情 →<\/span>\n <\/div>\n <div class=\"version-info\" id=\"versionInfo\">加载中...<\/div>\n <div class=\"status\" id=\"statusText\"><\/div>\n\n <div class=\"button-group\" id=\"buttonGroup\" style=\"display: none;\">\n <\/div>\n\n <div class=\"logs\" id=\"logs\" style=\"display: none;\">\n <h2>📝 更新日志<\/h2>\n <div id=\"logList\"><\/div>\n <\/div>\n <\/div>\n\n <script>\n(async function() {\n const loading = document.getElementById('loading');\n const container = document.getElementById('container');\n const versionInfo = document.getElementById('versionInfo');\n const statusText = document.getElementById('statusText');\n const updateButton = document.getElementById('updateButton');\n const buttonGroup = document.getElementById('buttonGroup');\n const logsContainer = document.getElementById('logs');\n const logList = document.getElementById('logList');\n\nconst localVer = '${String(localVersion)}';\n\/\/ 版本判断逻辑\nfunction compareVersions(vs) {\n const parts1 = localVer.split('.').map(Number);\n const parts2 = vs.split('.').map(Number);\n const maxLength = Math.max(parts1.length, parts2.length);\n for (let i = 0; i < maxLength; i++) {\n const num1 = parts1[i] || 0;\n const num2 = parts2[i] || 0;\n if (num1 > num2) return 1;\n if (num1 < num2) return -1;\n }\n return 0;\n}\n\nconst encodedEndpoints = [\n 'aHR0cHM6Ly9hcGkucWluZ3RpYW42MTguY29t', \n 'aHR0cHM6Ly92MS5xaW5ndGlhbjYxOC5jb20=', \n 'aHR0cHM6Ly92Mi5xaW5ndGlhbjYxOC5jb20=', \n 'aHR0cHM6Ly92My5xaW5ndGlhbjYxOC5jb20=', \n 'aHR0cHM6Ly92NC5xaW5ndGlhbjYxOC5jb20=', \n 'aHR0cHM6Ly92NS5xaW5ndGlhbjYxOC5jb20=', \n 'aHR0cDovLzExMy40NS4xNzUuMTEyOjg4ODg=' \n];\n\nfunction decodeEndpoint(str) {\n return atob(str);\n}\n\nasync function fetchVersionData() {\n for (const b64 of encodedEndpoints) {\n const url = decodeEndpoint(b64);\n try {\n const response = await fetch(url + '\/version', { timeout: 2000 }); \n if (response.ok) {\n return await response.json();\n }\n } catch (e) {\n console.warn(\\`接口失败:\\${url}\\`, e);\n }\n }\n throw new Error('所有更新接口都请求失败');\n}\n try {\n loading.style.display = 'block';\n\n const data = await fetchVersionData();\n const cloudVersion = String(data.rssVersion3);\n const updateLog = data.update_rss_log || {};\n\n versionInfo.innerHTML = \\`🔖当前版本:v\\${localVer} <br> 🔭最新版本:v\\${cloudVersion}\\`;\n\n logList.innerHTML = Object.entries(updateLog).map(([date, content]) => \\`\n <div class=\"log-item\">\n <div class=\"log-item-date\">\\${date}<\/div>\n <div class=\"log-item-content\">\\${content}<\/div>\n <\/div>\n \\`).join('');\n logsContainer.style.display = 'block';\n\n if (compareVersions(cloudVersion) === -1) {\n statusText.innerHTML = '<span>✨ 有新版本可用,建议立即更新!<br>${yd}<\/span>';\nconst domainMap = {\n main: 'aHR0cDovL3N5LnFpbmd0aWFuNjE4LmNvbQ==', \n d1: 'aHR0cHM6Ly9hcGkucWluZ3RpYW42MTguY29t', \n d2: 'aHR0cHM6Ly92MS5xaW5ndGlhbjYxOC5jb20=',\n d3: 'aHR0cHM6Ly92Mi5xaW5ndGlhbjYxOC5jb20=',\n d4: 'aHR0cHM6Ly92My5xaW5ndGlhbjYxOC5jb20=',\n d5: 'aHR0cHM6Ly92NC5xaW5ndGlhbjYxOC5jb20=',\n d6: 'aHR0cHM6Ly92NS5xaW5ndGlhbjYxOC5jb20='\n};\n\nfunction decode(b64) {\n return atob(b64);\n}\n\nconst path = '\/sy\/download\/晴天订阅源.json';\nconst mainPath = '\/download\/晴天订阅源.json';\n\nconst routes = [\n { name: '🚀 主线路', domain: 'main', suffix: mainPath },\n { name: '📦 备用线路1', domain: 'd1', suffix: path },\n { name: '🛰️ 备用线路2', domain: 'd2', suffix: path },\n { name: '🛰️ 备用线路3', domain: 'd3', suffix: path },\n { name: '🛰️ 备用线路4', domain: 'd4', suffix: path },\n { name: '🛰️ 备用线路5', domain: 'd5', suffix: path },\n { name: '🛰️ 备用线路6', domain: 'd6', suffix: path }\n];\n\nbuttonGroup.innerHTML = routes.map(r => {\n const fullUrl = decode(domainMap[r.domain]) + r.suffix;\n return \\`<a href=\"legado:\/\/import\/auto?src=\\${encodeURIComponent(fullUrl)}\" class=\"button\">\\${r.name}<\/a>\\`;\n}).join('');\n buttonGroup.style.display = 'flex';\n } else {\n statusText.textContent = '✅ 已是最新订阅源咯~';\n }\n\n loading.style.display = 'none';\n container.style.display = 'block';\n\n } catch (err) {\n loading.textContent = '😢 检查失败啦~ 请稍后再试==>'+err;\n console.error('版本检查失败:', err);\n }\n})();\n<\/script>\n<\/body>\n<\/html>\n`;\n java.startBrowser(`data:text\/html;base64,${java.base64Encode(html)}`, '晴天订阅源更新');\n}\n", "ruleArticles": "<js>\nif (baseUrl.includes('番茄')) {\nlet ck = (String(cookie.getKey(\"fanqienovel.com\", \"sessionid\")) ? String(cookie.getKey(\"fanqienovel.com\", \"sessionid\")) : (source.getLoginInfoMap() || {})['番茄Token']) || \"\";\nfunction getCellId() {\n let sInfo = java.ajax(java.log(base_url + \"\/book_mall_tab?ssionid=\" + ck));\n let cell_id = \"cell_id%253D6914906572011339784%2526\"\n let body = JSON.parse(sInfo).data.tab_item[0].cell_data[1].cell_data\n for (let i of body) {\n \/*java.log(JSON.stringify(i))*\/\n if (typeof i.cell_url !== 'undefined') {\n \/\/ java.log(i.cell_url)\n cell_id = i.cell_url\n break\n }\n }\n java.log(cell_id)\n cell_id = cell_id.split(\"cell_id%253D\")[1].split(\"%2526\")[0]\n java.log(cell_id)\n return cell_id\n}\nlet cell_id = getCellId();\njava.ajax(java.log(base_url + '\/book_mall_y?cell_id=' + cell_id + '&ssionid='+ck));\n} else if (baseUrl.includes('晴天')) {\n\tlet other = {\n\t\t'data':{'cell_view':{'topic_data':\n\t\t[{'topic_desc':{\n\t\t\t'topic_title':'晴天多来源发现平台',\n\t\t\t 'topic_id':'https:\/\/api.qingtian618.com'\n\t\t\t}},{'topic_desc':{\n\t\t\t'topic_title':'晴天推书',\n\t\t\t 'topic_id':'https:\/\/api.qingtian618.com\/put_book'\n\t\t\t}},{'topic_desc':{\n\t\t\t'topic_title':'晴天后台',\n\t\t\t 'topic_id':'https:\/\/api.qingtian618.com\/login'\n\t\t\t}},{'topic_desc':{\n\t\t\t'topic_title':'求打赏~',\n\t\t\t 'topic_id':'https:\/\/api.qingtian618.com\/coffee'\n\t\t\t}}]}\n\t\t}}\n\t\tother = JSON.stringify(other);\n\n\t} else {\n\t\/\/java.toast(baseUrl);\n\tlet other = {\n\t\t'data':{'cell_view':{'topic_data':\n\t\t[{'topic_desc':{\n\t\t\t'topic_title':'进入官网,支持点击书籍跳转阅读书架哦~',\n\t\t\t 'topic_id':baseUrl\n\t\t\t}}]}\n\t\t}}\n\t\tother = JSON.stringify(other);\n\t\t\/\/java.toast(other)\n\t};\n\t<\/js>\n$.data.cell_view.topic_data[*]", "ruleImage": "$.topic_desc.topic_cover", "ruleLink": "<js>\nlet ruleUrl;\nif (baseUrl.includes('番茄')) { \n\truleUrl = `https:\/\/reading.snssdk.com\/wap\/topic-share.html?topic_id={{$.topic_desc.topic_id}}&sort=smart_hot&service_id=6&session_id=0&aid=1967`\n\t} else {\n\t\truleUrl = '{{$.topic_desc.topic_id}}';\n\t\t\/\/java.toast(ruleUrl)\n\t\t}\n\truleUrl\n<\/js>", "rulePubDate": "$.topic_desc.topic_content\n@js:\nif (baseUrl.includes('番茄')) {\n\tlet data = JSON.parse(result).skeleton.data.replace(\/<\\\/?search_link>\/g, \" \")\nlet select = Packages.org.jsoup.Jsoup.parse(data).select(\"p, span\")\nlet final = Array.from(select).map(p => p.text()).join(\" \")\njava.timeFormat(java.getString('topic_desc.create_time')*1000) + (!Packages.android.text.TextUtils.isEmpty(final) ? (' | ' + final) : '')\n}", "ruleTitle": "$.topic_desc.topic_title", "shouldOverrideUrlLoading": "function extractBookId(url) {\n let match = url.match(\/[?&]book_id=([^&]+)\/) || url.match(\/page\\\/(\\d+)\/) || url.match(\/shuku\\\/(\\d+_\\d+|\\d+)(?:-\\d+)?\/) || url.match(\/query\\\/(\\d+)\/) || url.match(\/book\\\/(\\d+)\/) || url.match(\/album\\\/(\\d+)\/) || url.match(\/reader\\\/(\\d+)\/) || url.match(\/book-detail\\\/(\\d+)\/);\n if (url.includes('huanmeng')) {\n \treturn url\n \t}\n if (!match) {\n \t return null;\n }\n const bookId = match[1];\n return bookId;\n}\n\n\/\/ java.toast(url.startsWith('legadosearch:\/\/'))\nif (url.startsWith('legadosearch:\/\/')) { \n \/\/ java.toast('ab')\n java.searchBook(\n decodeURIComponent(\n url.replace('legadosearch:\/\/', '')\n )\n )\n}\nlet needBreak = false\nfunction isNewLegado() {\n try {\n return !!Packages.io.legado.app.ui.book.manga;\n } catch(e) {\n return false; \n } \n}\n\/\/java.toast(url);\n\nif (isNewLegado()) {\n\t if (url.match(\/book_id=\\d+\/) || url.match(\/\\\/page\\\/\\d+\/) || url.match(\/shuku\\\/(\\d+_\\d+|\\d+)(?:-\\d+)?\/) || url.match(\/query\\\/(\\d+)\/) || url.match(\/book\\\/(\\d+)\/) || url.match(\/album\\\/(\\d+)\/) || url.match(\/reader\\\/(\\d+)\/) || url.match(\/book-detail\\\/(\\d+)\/) || url.includes('online_detail') || url.includes('book\/info')) {\n \t\/\/java.toast(url);\n \t const bookId = java.encodeURI(java.base64Encode(extractBookId(url)));\n \t \/\/java.toast(bookId);\n \t let url2 = `https:\/\/api.qingtian618.com\/detail?book_id=${bookId}&source=%e7%95%aa%e8%8c%84`\n \t if (url.includes('shuku')) {\n \t \turl2 = `https:\/\/api.qingtian618.com\/detail?book_id=${bookId}&source=七猫`\n \t \t}\n \t \tif (url.includes('tadu')) {\n \t \turl2 = `https:\/\/api.qingtian618.com\/detail?book_id=${bookId}&source=塔读`\n \t \t}\n \t \tif (url.includes('shuqi')) {\n \t \turl2 = `https:\/\/api.qingtian618.com\/detail?book_id=${bookId}&source=书旗`\n \t \t}\n \t \tif (url.includes('lrts')) {\n \t \turl2 = `https:\/\/api.qingtian618.com\/detail?book_id=${bookId}&source=懒人听书&tab=听书`\n \t \t}\n \t \tif (url.includes('qq')) {\n \t \turl2 = `https:\/\/api.qingtian618.com\/detail?book_id=${bookId}&source=QQ`\n \t \t}\n \t \tif (url.includes('huanmengacg')) {\n \t \turl2 = `https:\/\/api.qingtian618.com\/detail?book_id=${bookId}&source=幻梦轻小说&tab=小说`\n \t \t}\n \t \tif (url.includes('online_detail')) {\n \t \turl2 = url.replace('online_detail','detail')\n \t \t}\n \t \/\/java.toast(url2.replace('%3D',''));\n \t java.addBook(url2.replace('%3D',''));\n needBreak = true;\n }\n}\n!(url.startsWith('http') || url.startsWith('legado')) || url.match(\/\\\/chapter-list\\\/\\d+\/) || needBreak", "singleUrl": false, "sortUrl": "晴天发现::晴天\n番茄::番茄\n懒人听书::https:\/\/m.lrts.me\/\n塔读::https:\/\/m.tadu.com\/\n书旗::https:\/\/t.shuqi.com\/\n七猫::https:\/\/www.qimao.com\/\n轻小说::https:\/\/www.huanmengacg.com\/", "sourceComment": "原作者 未知\n二改:\n 世界有多大 (翻页)\n 梓澄qwq (个人推荐, js注入, 拦截跳转)\n Folltoshe (js注入)\n 柚屿 (完善登录)\n 清词 (失效修复,修复有书籍无法点击跳转的情况,加强过滤)\n 期待完美的自己(兼容晴天完全版书源)\n 晴天(完善晴天订阅源)", "sourceIcon": "https:\/\/api.qingtian618.com\/favicon.ico", "sourceName": "晴天书荒广场", "sourceUrl": "https:\/\/www.baidu.com\/晴天番茄书荒广场" }