晴天书荒广场

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\/晴天番茄书荒广场"
}
广告