[{"bookSourceComment":"格格党网（www.ggd66.com 思思CMS·UTF-8）2026-09-09 重构\n【原站已失效】旧域名 www.ggd8.cc\/m TLS 握手被重置（手机侧与本机均不可达），已迁移至同源镜像 www.ggd66.com\n1.搜索：GET \/search\/?searchkey=关键词（表单 POST 同用），单页返回 25~100 条、无分页控件\n2.【限频对策】站点搜索限30秒\/次，实现方式=下发 Cookie ss_search_delay 标记，服务端只查标记不校验时间戳\n  → searchUrl 每次搜索前剔除该 Cookie 键（其余键原样保留）即可无等待连续搜索，已实测连搜4次全放行\n3.详情：og:novel:* meta 齐全；简介取 .bookintro 截断到 <br>（去掉站点宣传语）\n4.目录：详情页 #list-chapterAll 内 dd>a 全量内联无分页（实测最多 5951 章完整），dl 首个区是“最新章节”倒序已避开；按章节ID自动判序\n5.正文：#rtext 内逐段清洗——命中广告词时从该词处【截断】而非整段删除（站点常把广告拼在正文句尾，整删会误伤正文）；乱码域名按半角问号密集(占比>1\/3)+域名\/www.\/.vip 短行识别；全角？？？与【…】剧情内容不受影响\n6.章内分页：{章节ID}_{N}.html，nextContentUrl 只跟带下划线的链接；末页“下一页”指向下一章(无下划线)→返回空自然终止，杜绝串章\n7.发现：22 个入口=首页4榜(?tab=1~4 分发)+8分类+8完本分类+全部+全本大厅；列表解析器一次适配 bookbox\/item\/li\/最近更新 四种模板\n8.【无需登录】全部正文匿名免费可读；登录UI为可选功能(永久书架同步)，站点登录无验证码，判据=GET \/bookcase\/ 含“永久书架”\n  注意：登录成功后不写 putLoginHeader，避免把限频 Cookie 固化进登录头拖累搜索\n9.bookUrlPattern=…\/qu\/[0-9]+\/? 便于浏览器打开书籍页时一键导入\n10.列表\/详情\/目录\/正文规则全用 @js:+jsoup 直取，实体统一交 jsoup Parser.unescapeEntities 解码（String.replace 只换首个的坑已避）\n使用前建议：书架里指向 ggd8.cc 的旧书需重新搜索添加","bookSourceGroup":"AI","bookSourceName":"格格党网","bookSourceType":0,"bookSourceUrl":"https:\/\/www.ggd66.com","bookUrlPattern":"https?:\/\/www[.]ggd66[.]com\/qu\/[0-9]+\/?","customButton":false,"customOrder":354,"enabled":true,"enabledCookieJar":true,"enabledExplore":true,"eventListener":false,"exploreUrl":"热门推荐::https:\/\/www.ggd66.com\/?tab=4\n最近更新::https:\/\/www.ggd66.com\/?tab=1\n最新入库::https:\/\/www.ggd66.com\/?tab=2\n阅读排行::https:\/\/www.ggd66.com\/?tab=3\n玄幻·连载::\/sort\/1\/{{page}}\/\n武侠·连载::\/sort\/2\/{{page}}\/\n都市·连载::\/sort\/3\/{{page}}\/\n历史·连载::\/sort\/4\/{{page}}\/\n科幻·连载::\/sort\/5\/{{page}}\/\n竞技·连载::\/sort\/6\/{{page}}\/\n女生·连载::\/sort\/7\/{{page}}\/\n其他·连载::\/sort\/8\/{{page}}\/\n全部·连载::\/sort\/{{page}}\/\n完本·玄幻::\/quanben\/sort\/1\/{{page}}\/\n完本·武侠::\/quanben\/sort\/2\/{{page}}\/\n完本·都市::\/quanben\/sort\/3\/{{page}}\/\n完本·历史::\/quanben\/sort\/4\/{{page}}\/\n完本·科幻::\/quanben\/sort\/5\/{{page}}\/\n完本·竞技::\/quanben\/sort\/6\/{{page}}\/\n完本·女生::\/quanben\/sort\/7\/{{page}}\/\n完本·其他::\/quanben\/sort\/8\/{{page}}\/\n全本大厅::\/quanben\/sort\/{{page}}\/","header":"{\"User-Agent\": \"Mozilla\/5.0 (Linux; Android 14; Pixel 8) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/126.0.0.0 Mobile Safari\/537.36\"}","lastUpdateTime":"1788949753047","loginCheckJs":"(function(){try{var b=String(result.body());if(b.indexOf('搜索间隔')>=0){throw new Error('⛔ 格格党·站点搜索限频(30秒\/次)未解除，请稍候30秒再搜索');}if(b.indexOf('Attention Required')>=0){throw new Error('⛔ 格格党·访问被拦截，请稍后重试');}}catch(e){if(String(e).indexOf('格格党')>=0){throw e;}}return result;})()","loginUi":"<js>JSON.stringify([{name:'账号',type:'text',hint:'4-10位英文或数字(未注册可留空直接点注册)'},{name:'密码',type:'password',hint:'6-20位英文或数字'},{name:'邮箱',type:'text',hint:'注册用，留空自动生成'},{name:'① 登录',type:'button',action:'login()',style:{layout_flexGrow:1}},{name:'② 注册',type:'button',action:'register()',style:{layout_flexGrow:1}},{name:'③ 检查登录状态',type:'button',action:'checkLogin()',style:{layout_flexGrow:1}},{name:'④ 退出登录',type:'button',action:'logout()',style:{layout_flexGrow:1}},{name:'⑤ 检查站点连接',type:'button',action:'checkSite()',style:{layout_flexGrow:1}}]);<\/js>","loginUrl":"function HOST(){return 'https:\/\/www.ggd66.com';}function UAX(){return 'Mozilla\/5.0 (Linux; Android 14; Pixel 8) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/126.0.0.0 Mobile Safari\/537.36';}function doLoginPost(b){var opt={method:'POST',body:b,headers:{'User-Agent':UAX(),'Content-Type':'application\/x-www-form-urlencoded','Referer':HOST()+'\/login\/'},retry:1,timeout:20000};return String(java.ajax(HOST()+'\/login\/,'+JSON.stringify(opt)));}function isLogged(){try{var t=String(java.ajax(HOST()+'\/bookcase\/,'+JSON.stringify({method:'GET',headers:{'User-Agent':UAX()},retry:1,timeout:20000})));return t.indexOf('永久书架')>=0;}catch(e){return false;}}function login(){var f=result;var u=f['账号'];var p=f['密码'];if(!u||!p){java.toast('🔔 请先填写账号和密码');return;}var b='username='+encodeURIComponent(u)+'&password='+encodeURIComponent(p)+'&action=login&jumpurl='+encodeURIComponent('\/bookcase\/');try{var r=doLoginPost(b);if(r.indexOf('登陆失败')>=0){java.toast('❌ 登录失败：账号或密码错误');return;}if(isLogged()){java.toast('✅ 格格党·登录成功('+u+')，永久书架已可用');}else{java.toast('⚠️ 登录响应异常，请确认账号密码后重试');}}catch(e){java.toast('❌ 登录请求失败：'+String(e).substring(0,60));}}function register(){var f=result;var u=f['账号'];var p=f['密码'];if(!u||!p){java.toast('🔔 请先填写要注册的账号和密码');return;}if(u.length<4||u.length>10){java.toast('🔔 账号需4-10位英文或数字');return;}if(p.length<6||p.length>20){java.toast('🔔 密码需6-20位英文或数字');return;}var em=f['邮箱']||'';if(em===''){em=u+'@qq.com';}var opt={method:'POST',body:'username='+encodeURIComponent(u)+'&password='+encodeURIComponent(p)+'&repassword='+encodeURIComponent(p)+'&email='+encodeURIComponent(em)+'&action=register&jumpurl='+encodeURIComponent('\/bookcase\/'),headers:{'User-Agent':UAX(),'Content-Type':'application\/x-www-form-urlencoded','Referer':HOST()+'\/register\/'},retry:1,timeout:20000};try{var r=String(java.ajax(HOST()+'\/register\/,'+JSON.stringify(opt)));if(r.indexOf('永久书架')>=0){java.toast('✅ 注册成功并已自动登录：'+u+'（'+em+'）');}else if(r.indexOf('已注册')>=0||r.indexOf('存在')>=0){java.toast('⚠️ 该账号或邮箱已存在，请直接登录');}else{java.toast('⚠️ 注册结果未知，请用「检查登录状态」确认');}}catch(e){java.toast('❌ 注册失败：'+String(e).substring(0,60));}}function checkLogin(){if(isLogged()){java.toast('✅ 已登录：永久书架\/阅读记录云端同步可用');}else{java.toast('ℹ️ 未登录。本站看书无需登录，登录仅用于永久书架同步');}}function logout(){try{source.removeLoginHeader();}catch(e){}try{cookie.setCookie(HOST(),'');}catch(e){}java.toast('👋 已退出登录，本地书架不受影响');}function checkSite(){var hs=[HOST(),'https:\/\/www.huilingtian.com'];var i,t0,ms,ok=[];for(i=0;i<hs.length;i++){try{t0=new Date().getTime();var r=String(java.ajax(hs[i]+'\/,'+JSON.stringify({method:'GET',headers:{'User-Agent':UAX()},retry:0,timeout:15000})));ms=new Date().getTime()-t0;ok.push(hs[i].replace('https:\/\/','')+' ✅ '+ms+'ms');}catch(e){ok.push(hs[i].replace('https:\/\/','')+' ❌ 不可达');}}java.longToast(ok.join(String.fromCharCode(10)));}","respondTime":180000,"ruleBookInfo":{"author":"meta[property=og:novel:author]@content","coverUrl":"meta[property=og:image]@content","intro":"@js:(function(){var d=(typeof result!=='undefined'&&result&&typeof result.select==='function')?result:Packages.org.jsoup.Jsoup.parse(String(result));var x=d.select('.bookintro');if(x.size()<1)return '';var h=String(x.get(0).html());var i=h.indexOf('<br');if(i>0)h=h.substring(0,i);h=h.replace(new RegExp('<[^>]+>','g'),'');return Packages.org.jsoup.parser.Parser.unescapeEntities(h,true).trim();})()","kind":"meta[property=og:novel:category]@content&&meta[property=og:novel:status]@content","lastChapter":"meta[property=og:novel:lastest_chapter_name]@content","name":"meta[property=og:novel:book_name]@content"},"ruleContent":{"content":"@js:(function(){var d=(typeof result!=='undefined'&&result&&typeof result.select==='function')?result:Packages.org.jsoup.Jsoup.parse(String(result));var n=d.select('#rtext');if(n.size()<1)n=d.select('.readcontent');if(n.size()<1)return '';var el=n.get(0),i,k,x;x=el.select('script');for(i=0;i<x.size();i++){x.get(i).remove();}x=el.select('style');for(i=0;i<x.size();i++){x.get(i).remove();}x=el.select('a');for(i=0;i<x.size();i++){x.get(i).remove();}var ad=['本章完','GOOGLE搜索','御宅屋','返回顶部','请收藏本站','txt下载','最快更新','新笔趣阁','全文免费阅读就在','记住本站','首发网站','台湾小说网','本书首发','全网首发','无错章节','无乱序','最快的章节更新'];var ps=el.select('p');var t,s2,wi,q,qi,cut,buf=[];for(i=0;i<ps.size();i++){t=String(ps.get(i).text());s2=t.trim();if(s2===''||s2==='*'){continue;}cut=false;for(k=0;k<ad.length;k++){wi=s2.indexOf(ad[k]);if(wi>=0){s2=s2.substring(0,wi).trim();cut=true;}}if(cut&&s2.length<4){continue;}q=0;for(qi=0;qi<s2.length;qi++){if(s2.charAt(qi)==='?'){q++;}}if(q>=6&&q*3>s2.length){continue;}if(s2.length<60&&s2.indexOf('域名')>=0){continue;}if(s2.length<40&&(s2.indexOf('www.')>=0||s2.indexOf('.vip')>=0||s2.indexOf('.cc')>=0||s2.indexOf('.net')>=0)){continue;}buf.push(Packages.org.jsoup.parser.Parser.unescapeEntities(s2,true));}if(buf.length===0){var tx=String(el.text()).trim();if(tx!==''){buf.push(Packages.org.jsoup.parser.Parser.unescapeEntities(tx,true));}}return buf.join(String.fromCharCode(10,10));})()","nextContentUrl":"@js:(function(){var s=String(result);var i=s.indexOf('linkNext');if(i<0)return '';var j=s.indexOf('href=',i);if(j<0)return '';var q=s.charAt(j+5);if(q!==String.fromCharCode(34)&&q!==String.fromCharCode(39))return '';var u=s.substring(j+6,s.indexOf(q,j+6));if(u===''||u.indexOf('javascript')>=0)return '';var m=u.match(new RegExp('_[0-9]+[.]html$'));if(!m)return '';if(u.indexOf('http')===0)return u;var pp=String(baseUrl).split('\/');return pp[0]+'\/'+pp[1]+'\/'+pp[2]+u;})()"},"ruleExplore":{"author":"author","bookList":"@js:(function(){var d=(typeof result!=='undefined'&&result&&typeof result.select==='function')?result:Packages.org.jsoup.Jsoup.parse(String(result));var bu=String(typeof baseUrl==='undefined'?'':baseUrl);var pp=bu.split('\/');var or=pp.length>2?pp[0]+'\/'+pp[1]+'\/'+pp[2]:'';function A(u){u=String(u===null?'':u);if(u===''||u.indexOf('javascript')===0)return '';if(u.indexOf('http')===0)return u;return or+u;}function T(e){if(e===null||typeof e==='undefined')return '';return String(e.text()).trim();}function un(s){return Packages.org.jsoup.parser.Parser.unescapeEntities(String(s),true).trim();}function cut(s){s=String(s);var i=s.search(new RegExp('[:：]'));if(i>=0)s=s.substring(i+1);return s.replace('[','').replace(']','').trim();}function C(el,cls){var x=el.select(cls);return x.size()>0?T(x.get(0)):'';}var tab=(bu.match(new RegExp('[?&]tab=([0-9]+)'))||['',''])[1];var out=[];var i,k,e,o,a,s,x,au;function P(o){if(o.name&&o.url)out.push(o);}if(tab==='1'||tab==='2'||tab==='3'){var sel=tab==='1'?'#gengxin li':(tab==='2'?'#zuixin li':'#fengyou li');x=d.select(sel);for(i=0;i<x.size();i++){e=x.get(i);a=e.select('a');if(a.size()<1)continue;o={name:un(T(a.get(0))),url:A(a.get(0).attr('href')),author:'',kind:'',lastChapter:'',intro:'',coverUrl:''};if(tab==='1'){o.author=un(C(e,'.s4'));o.kind=cut(C(e,'.s1'));o.lastChapter=un(C(e,'.s3 a'));}else{s=e.select('span');if(s.size()>0)o.author=un(T(s.get(0)));o.kind=cut(String(e.ownText()).trim());if(a.size()>1)o.lastChapter=un(T(a.get(1)));}P(o);}}else if(tab==='4'){x=d.select('.item');for(i=0;i<x.size();i++){e=x.get(i);a=e.select('dt a');if(a.size()<1)continue;s=e.select('dt span');o={name:un(T(a.get(0))),url:A(a.get(0).attr('href')),author:s.size()>0?un(T(s.get(0))):'',kind:'',lastChapter:'',intro:un(C(e,'dd')),coverUrl:''};var im=e.select('img');if(im.size()>0)o.coverUrl=String(im.get(0).attr('src'));P(o);}}else{x=d.select('.bookbox');if(x.size()===0)x=d.select('.item');var hk=d.select('h2');var kind=hk.size()>0?T(hk.get(0)).replace('小说列表','').trim():'';if(kind.indexOf('与')===0)kind='';for(i=0;i<x.size();i++){e=x.get(i);a=e.select('.bookname a');if(a.size()<1)continue;o={name:un(T(a.get(0))),url:A(a.get(0).attr('href')),author:'',kind:kind,lastChapter:'',intro:'',coverUrl:''};au=e.select('.author');for(k=0;k<au.size();k++){s=T(au.get(k));if(s.indexOf('作者')===0)o.author=cut(s);}if(!o.author){s=e.select('dt span');if(s.size()>0)o.author=un(T(s.get(0)));}o.lastChapter=un(C(e,'.cat a'));var up=e.select('.update');if(up.size()>0)o.intro=cut(un(T(up.get(0))));var im2=e.select('img');if(im2.size()>0)o.coverUrl=String(im2.get(0).attr('src'));P(o);}}return out;})()","bookUrl":"url","coverUrl":"coverUrl","intro":"intro","kind":"kind","lastChapter":"lastChapter","name":"name"},"ruleSearch":{"author":"author","bookList":"@js:(function(){var d=(typeof result!=='undefined'&&result&&typeof result.select==='function')?result:Packages.org.jsoup.Jsoup.parse(String(result));var bu=String(typeof baseUrl==='undefined'?'':baseUrl);var pp=bu.split('\/');var or=pp.length>2?pp[0]+'\/'+pp[1]+'\/'+pp[2]:'';function A(u){u=String(u===null?'':u);if(u===''||u.indexOf('javascript')===0)return '';if(u.indexOf('http')===0)return u;return or+u;}function T(e){if(e===null||typeof e==='undefined')return '';return String(e.text()).trim();}function un(s){return Packages.org.jsoup.parser.Parser.unescapeEntities(String(s),true).trim();}function cut(s){s=String(s);var i=s.search(new RegExp('[:：]'));if(i>=0)s=s.substring(i+1);return s.replace('[','').replace(']','').trim();}function C(el,cls){var x=el.select(cls);return x.size()>0?T(x.get(0)):'';}var tab=(bu.match(new RegExp('[?&]tab=([0-9]+)'))||['',''])[1];var out=[];var i,k,e,o,a,s,x,au;function P(o){if(o.name&&o.url)out.push(o);}if(tab==='1'||tab==='2'||tab==='3'){var sel=tab==='1'?'#gengxin li':(tab==='2'?'#zuixin li':'#fengyou li');x=d.select(sel);for(i=0;i<x.size();i++){e=x.get(i);a=e.select('a');if(a.size()<1)continue;o={name:un(T(a.get(0))),url:A(a.get(0).attr('href')),author:'',kind:'',lastChapter:'',intro:'',coverUrl:''};if(tab==='1'){o.author=un(C(e,'.s4'));o.kind=cut(C(e,'.s1'));o.lastChapter=un(C(e,'.s3 a'));}else{s=e.select('span');if(s.size()>0)o.author=un(T(s.get(0)));o.kind=cut(String(e.ownText()).trim());if(a.size()>1)o.lastChapter=un(T(a.get(1)));}P(o);}}else if(tab==='4'){x=d.select('.item');for(i=0;i<x.size();i++){e=x.get(i);a=e.select('dt a');if(a.size()<1)continue;s=e.select('dt span');o={name:un(T(a.get(0))),url:A(a.get(0).attr('href')),author:s.size()>0?un(T(s.get(0))):'',kind:'',lastChapter:'',intro:un(C(e,'dd')),coverUrl:''};var im=e.select('img');if(im.size()>0)o.coverUrl=String(im.get(0).attr('src'));P(o);}}else{x=d.select('.bookbox');if(x.size()===0)x=d.select('.item');var hk=d.select('h2');var kind=hk.size()>0?T(hk.get(0)).replace('小说列表','').trim():'';if(kind.indexOf('与')===0)kind='';for(i=0;i<x.size();i++){e=x.get(i);a=e.select('.bookname a');if(a.size()<1)continue;o={name:un(T(a.get(0))),url:A(a.get(0).attr('href')),author:'',kind:kind,lastChapter:'',intro:'',coverUrl:''};au=e.select('.author');for(k=0;k<au.size();k++){s=T(au.get(k));if(s.indexOf('作者')===0)o.author=cut(s);}if(!o.author){s=e.select('dt span');if(s.size()>0)o.author=un(T(s.get(0)));}o.lastChapter=un(C(e,'.cat a'));var up=e.select('.update');if(up.size()>0)o.intro=cut(un(T(up.get(0))));var im2=e.select('img');if(im2.size()>0)o.coverUrl=String(im2.get(0).attr('src'));P(o);}}return out;})()","bookUrl":"url","checkKeyWord":"江山","coverUrl":"coverUrl","intro":"intro","kind":"kind","lastChapter":"lastChapter","name":"name"},"ruleToc":{"chapterList":"@js:(function(){var d=(typeof result!=='undefined'&&result&&typeof result.select==='function')?result:Packages.org.jsoup.Jsoup.parse(String(result));var bu=String(typeof baseUrl==='undefined'?'':baseUrl);var pp=bu.split('\/');var or=pp.length>2?pp[0]+'\/'+pp[1]+'\/'+pp[2]:'';function A(u){u=String(u===null?'':u);if(u===''||u.indexOf('javascript')===0)return '';if(u.indexOf('http')===0)return u;return or+u;}var n=d.select('#list-chapterAll dd a');if(n.size()<1)n=d.select('dl.chapterlist dd a');if(n.size()<1)n=d.select('.chapterlist a');var arr=[],ids=[],i,e,u,t,m;for(i=0;i<n.size();i++){e=n.get(i);u=A(e.attr('href'));t=Packages.org.jsoup.parser.Parser.unescapeEntities(String(e.text()),true).trim();if(u===''||t==='')continue;if(arr.length>0&&arr[arr.length-1].url===u)continue;m=u.match(new RegExp('\/([0-9]+)(_[0-9]+)?[.]html$'));ids.push(m?Number(m[1]):0);arr.push({title:t,url:u});}var rev=false,g;for(g=1;g<ids.length;g++){if(ids[g]<ids[g-1]){rev=true;break;}}if(rev)arr.reverse();return arr;})()","chapterName":"title","chapterUrl":"url"},"searchUrl":"<js>var U='https:\/\/www.ggd66.com\/';var cs=String(cookie.getCookie(U)).split(';'),i,s,o=[];for(i=0;i<cs.length;i++){s=cs[i].trim();if(s!==''&&s.indexOf('ss_search_delay')<0){o.push(s);}}cookie.setCookie(U,o.join('; '));U+'search\/?searchkey='+encodeURIComponent(key);<\/js>","weight":0}]