trackkun-dom 2.31.1 → 2.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +1 -1
- package/package.json +1 -1
- package/specs.json +1 -1
- package/stripper.js +1 -1
package/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(q,_){typeof exports=="object"&&typeof module<"u"?_(exports):typeof define=="function"&&define.amd?define(["exports"],_):(q=typeof globalThis<"u"?globalThis:q||self,_(q._trackkun_={}))})(this,(function(q){"use strict";function _(a){let e=!1;return new Promise((t,r)=>{Promise.all(a.map(async n=>{const s=await n;!e&&s&&(e=!0,t(s))})).then(()=>{e||t(void 0)})})}const it=/(vol(ume)?|season)(\s*|-|\.)(\d+)/i,lt=/^S([1-9])\s/i,ot=/(ch(ap(t(er)?|\.)?|\.)?|#|episode\.?|capitolo\.?|capitulo\.?|bölüm\.?)(\s*|-)(\d+([-~_,.]\d+)?)/i,ct=/\d+([-~_,.]\d+)?/,ut=/[-~_,]/;function gt(a){const e=a.match(it);if(e)return{volStr:e[0],volValueStr:e[4]};const t=a.match(lt);return t?{volStr:t[0],volValueStr:t[1]}:{}}function O(a){if(!a)return;if(!isNaN(+a))return{chap:+a};const{volStr:e,volValueStr:t}=gt(a),r=e?a.replace(e,"").trim():a,n=r.match(ot)?.[6]??r.match(ct)?.[0];if(!n)return;const s=+n.replace(ut,".");if(isNaN(s))return;const i=e&&t&&!isNaN(+t)?+t:void 0;return{vol:i===void 0||i<=0?void 0:i,chap:s}}function pt(){return Math.random().toString(16).slice(2)}async function ht({addListener:a,removeListener:e,transform:t,filter:r,handler:n,onTimeout:s,timeout:i,once:c}){return new Promise(o=>{a(g);const l=()=>c===!0&&e(g),u=i?setTimeout(()=>{l(),o(void 0),s?.()},i):void 0;async function g(h,...p){h=t?t(h):h,h!==void 0&&(!r||r(h,...p))&&(l(),o(h),n?.(h,...p),u&&clearTimeout(u))}})}async function dt(a){return(await ht({addListener:e=>window.addEventListener("message",e),removeListener:e=>window.removeEventListener("message",e),...a}))?.data}async function ft(a){const{receiverWindow:e,timeout:t,targetOrigin:r,event:n,args:s}=a,i={reqId:pt(),event:n,args:s};return(e||window)?.postMessage(i,r??"*"),(await dt({filter:c=>c?.data?.resId===i.reqId,timeout:t??3e4,once:!0}))?.result}function j(a,e){return ft({event:"tk:fetchResult",args:{url:a},timeout:e?.timeoutMs??15e3})}async function L(a,e,t){const r=await t(()=>{a=0});if(r!==void 0)return r;if(!(a<=0))return await new Promise(n=>{setTimeout(async()=>{const s=await L(a-1,e,t);n(s)},e)})}async function E(a,e,t=0){const r=e.root??document.documentElement,n=e.timeoutMs??1e4;return L(e.lazy===!0?n/50:0,50,()=>{const s=e.all===!0?Array.from(r.querySelectorAll(a)):r.querySelector(a)??void 0;return(e.all?!s?.length:!s)?void 0:s})}function Y(a,e){if(a instanceof HTMLOptionElement){const t=a.parentElement instanceof HTMLOptGroupElement?a.parentElement.parentElement:a.parentElement;if(!t||!(t instanceof HTMLSelectElement))return;const r=a.getAttribute("value")||"";if(t.value===r)return;t.value=r,t.dispatchEvent(new Event("change"));return}a instanceof HTMLAnchorElement&&e?.preventDefault!==!1&&a.addEventListener("click",t=>t.preventDefault(),{once:!0}),a.click(),a.dispatchEvent(new PointerEvent("pointerdown",{bubbles:!0,cancelable:!0,pointerType:"mouse",button:0})),a.dispatchEvent(new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:window,button:0}))}function le(a,e){if(typeof a.checkVisibility=="function")return a.checkVisibility({opacityProperty:!0,visibilityProperty:!1,contentVisibilityAuto:!1});const t=window.getComputedStyle(a);if(t.display==="none"||t.opacity&&parseFloat(t.opacity)<.1)return!1;if(!e)return!0;const r=a.parentElement;return!r||r===e?!0:le(r,e)}function mt(a,e){return a>=280&&e>=50||a>=160&&e>=280}var J;(function(a){a[a.manga=1]="manga",a[a.novel=2]="novel",a[a.anime=3]="anime"})(J||(J={}));async function vt(a,e){const t=["NAV","ASIDE","FOOTER","HEADER","BR","HR","BUTTON","A"],r="img:not(nav img, header img, footer img, aside img), canvas",n=e?.timeoutMs,s=e?.include,i=e?.paraSel,c=!s||s.includes(J.manga),o=!s||s.includes(J.novel);let l=0;return await L(n/50,50,()=>{const p=u();if(p){if(c&&h(p,e?.validateImgSize))return J.manga;if(o&&l++%3===0&&g(p))return J.novel}});function u(){for(const p of a.split(",")){const d=document.querySelector(p);if(d)return d}}function g(p){const d=[`p:not(${t.map(y=>`${y} p`).join(",")})`,i].filter(Boolean).join(",");if(!p.querySelector(d)&&(!i||!p.matches(i)))return!1;let w=0,m=0,b=0;return v(p);function v(y){const $=y.tagName;if(t.includes($)||!le(y)||window.getComputedStyle(y).position==="fixed")return!1;if($==="P"||i&&y.matches(i))return w+=y.textContent.split(" ").filter(Boolean).length,m++,b=0,!c&&w>50||m>10&&w>120||m>5&&w>250||w>400;m>0&&++b>4&&(m=0,w=0);const I=Array.from(y.children);for(let S=0;S<I.length;S++)if(v(I[S]))return!0;return!1}}function h(p,d){const w=Array.from(p.querySelectorAll(r));if(d===!1)return w.length>0;const m=Math.min(window.innerWidth*.9,500);let b=0;for(let v=0;v<w.length;v++){const y=w[v];if(!le(y,p))continue;const{width:$,height:I}=y.getBoundingClientRect();if(mt($,I)&&($>=m||(b+=I,b>=m)))return!0}return!1}}function F(a){if(a)try{return JSON.parse(a)}catch{return}}const ve={text:be,attr:$t,"attr-contain":St,value:xt,row:Ct,"bg-image":Dt,json:Mt},wt={pattern:Tt,remove:It,atob:Pt,json:Re};function f(a,e){if(a)return we(a,e,bt)}function V(a,e){if(a)return we(a,e,Rt)}function we(a,e,t){if(!a)return;const r=a.split("||").map(n=>n.trim()).filter(Boolean);for(const n of r){const s=yt(n);if(!s)continue;const i=t(e??document.documentElement,s);if(i)return i}}function yt(a){const[e,t,...r]=a.split("|");if(!t)return;const n=t?.startsWith("[")&&t.endsWith("]")?t.substring(1,t.length-1).split(","):[t];return{selector:e||void 0,extractors:n.map(oe),transformers:r.map(oe)}}function oe(a){const e=a.indexOf(":"),t=e!==-1;return{fn:t?a.substring(0,e):a,param:t?a.substring(e+1):""}}function bt(a,e){if(!e.selector)return ye(a,e);const t=jt(e.selector);for(const r of t){const n=Array.from(a.querySelectorAll(r));for(const s of n){const i=ye(s,e);if(i)return i}}}function Rt(a,e){const t=e.selector?Array.from(a.querySelectorAll(e.selector)):[a],r=[];for(const n of t)for(const s of e.extractors){const i=ve[s.fn],c=i(n,s.param),o=c?ce(c,e.transformers):void 0;if(o){r.push(o);break}}if(r.length)return r}function ye(a,e){for(const t of e.extractors){const r=ve[t.fn],n=r(a,t.param);if(n)return ce(n,e.transformers)}}function ce(a,e){let t=a;for(const r of e){if(!t)return;const n=wt[r.fn];n&&(t=n(t,r.param)?.trim())}return t}function be(a){return Array.from(a.childNodes).filter(e=>e.nodeType===3).map(e=>W(e.textContent)).filter(Boolean).join(" ").trim()||W(a.textContent)}function $t(a,e){return W(a.getAttribute(e))}function St(a,e){let t=a.getAttribute(e);if(!t){const r=a.getAttributeNames().find(n=>n.includes(e));r&&(t=a.getAttribute(r))}return W(t)}function xt(a){return a.value}function Ct(a,e){if(!e)return;const t=W(a.textContent)?.toLowerCase(),r=e.toLowerCase();if(!(t!==r&&t!==`${r}:`))return W(a.nextElementSibling?.textContent??a.nextSibling?.textContent)}function Dt(a){const e=getComputedStyle(a).backgroundImage;if(!(!e||!e.startsWith("url(")))return e.slice(5,-2)||void 0}function Mt(a,e){const t=be(a);if(t)return Re(t,e)}function Re(a,e){const t=Z(F(a),e),r=typeof t;if(r==="string")return W(t)||a;if(r==="number"||r==="boolean")return t+""}function Z(a,e){if(!a||!e)return;const t=e.indexOf("."),r=t!==-1,n=r?e.substring(0,t):e,s=r?e.substring(t+1):void 0;try{const i=a[n];return s?Z(i,s):i}catch{return}}function W(a){if(a)return a?.replace(/(\n|\t)/g," ").trim()||void 0}function Tt(a,e){if(e)try{return a.replace(new RegExp(e,"i"),"$1")}catch{}return a}function It(a,e){if(e)try{return a.replaceAll(new RegExp(e,"gi"),"")}catch{}return a}function Pt(a){try{return window.atob(a)}catch{return a}}function jt(a){const e=[];let t="",r=!1;for(let s=0;s<a.length;s++){const i=a[s];if(i==="["?r=!0:i==="]"&&(r=!1),i===","&&!r){const c=t.trim();c.length>0&&e.push(c),t=""}else t+=i}const n=t.trim();return n.length>0&&e.push(n),e}var Lt=(a=>(a[a.reading=1]="reading",a[a.paused=2]="paused",a[a.plan=3]="plan",a[a.completed=4]="completed",a[a.dropped=5]="dropped",a[a.deleted=6]="deleted",a))(Lt||{}),Bt=(a=>(a[a.ok=1]="ok",a[a.hidden=2]="hidden",a[a.deleted=3]="deleted",a))(Bt||{}),At=(a=>(a[a.aggregator=0]="aggregator",a[a.scanlator=1]="scanlator",a))(At||{}),Et=(a=>(a[a.pending=0]="pending",a[a.completed=1]="completed",a[a.offline=2]="offline",a[a.incompat=3]="incompat",a))(Et||{}),$e=(a=>(a.id="id",a.name="name",a.slug="slug",a))($e||{}),Q=(a=>(a.blank="about:blank",a.title="meta.title",a.reader="meta.reader",a))(Q||{}),H=(a=>(a[a.manga=1]="manga",a[a.novel=2]="novel",a[a.anime=3]="anime",a))(H||{});function ue(a=0){return new Promise(e=>setTimeout(e,a))}const Ut=/\d+[a-z]+\d+/i,Ot=/[a-z]+\d+[a-z]+/i,Nt=/^\d{5,}$/;function Se(a){if(!a)return;const e=[];a.split(/[-_]/).forEach(r=>{const n=r.split(".").filter(s=>s&&!Ot.test(s)&&!Ut.test(s)&&!Nt.test(s)).join(".");n&&e.push(n)});const t=e.join(" ");return O(t)}async function ge(a,e){return new Promise(t=>{const r=new Image;r.crossOrigin="anonymous",r.onerror=()=>t(void 0),r.onload=async()=>{if(r.naturalWidth<=1){t(void 0);return}const n=Math.max(1,r.naturalWidth/(e?.maxWidth??240)),s=r.naturalWidth/n,i=r.naturalHeight/n,c=document.createElement("canvas"),o=c.getContext("2d");c.width=s,c.height=i;const l=/iPad|iPhone|iPod/.test(navigator.userAgent);try{o.drawImage(r,0,0,s,i);const u=((e?.fixCanvas!==!1?zt():void 0)??HTMLCanvasElement.prototype.toDataURL).call(c,l?"image/jpeg":"image/webp",l?.99:.8);t(u.length<1e3?void 0:u.split(",").slice(-1)[0])}catch{t(void 0)}},r.src=a})}function zt(){const a=document.createElement("template");a.innerHTML="<iframe></iframe>";const e=a.content.querySelector("iframe");if(e){e?.style.setProperty("style","none"),document.body.appendChild(e);const t=e?.contentWindow?.HTMLCanvasElement?.prototype?.toDataURL;if(document.body.removeChild(e),t)return t}return HTMLCanvasElement.prototype.toDataURL}async function kt(a,e=240){const t=await Wt(a);if(t)return await new Promise(async r=>{const n=ge(t,{maxWidth:e,fixCanvas:!1}),s=setTimeout(()=>r(void 0),100),i=await n;clearTimeout(s),r(i)})}async function Wt(a){if(a.startsWith("blob:"))return a;try{const e=await fetch(a);if(e.status>=400)return;const t=await e.blob();return t.size<1e3?void 0:URL.createObjectURL(t)}catch{return}}function x(a,e){if(e==="")return a;if(!e)return;const t=e.split("||").map(r=>r.trim()).filter(Boolean);for(const r of t){const[n,...s]=r.split("|"),i=Z(a,n);if(typeof i=="number"||i){if(typeof i!="string")return i;const c=i.replace(/(\n|\t)/g," ").trim();if(c){const o=ce(c,s.map(oe));if(o)return o}}}}function ee(a){if(a?.startsWith("window")){const e=a.indexOf(".");return e===-1?void 0:x(window,a.substring(e+1))}return F(a?f(a):document.querySelector("pre")?.textContent)}function B(a,e){if(typeof a=="number")return e?e(a):a}function T(a,e){if(typeof a=="string")return e?e(a):a}function G(a,e){const t=a.map(l=>({...l,vol:l.vol===0?void 0:l.vol}));t.sort((l,u)=>l.vol===void 0||u.vol===void 0?u.chap-l.chap:u.vol-l.vol||u.chap-l.chap);const r={},n={};for(let l=t.length-1;l>=0;l--){const u=t[l],g=u.group??"";r[g]=(r[g]??0)+1;const h=u.lang??"";u.vol!==void 0?n[h]=u.vol:n[h]!==void 0&&(u.inferVol=n[h])}const s=[],i={},c=e?.preferGroup,o=l=>l.lang??"";for(const l of t){const u=o(l),g=i[u],h=s[g];if(!(h&&h.chap===l.chap&&(h.vol===l.vol||h.vol===void 0||l.vol===void 0))){i[u]=s.length,s.push(l);continue}if(!c){h.vol===void 0&&l.vol!=null&&(s[g]=l);continue}h.group!==c&&(l.group==c||h.group&&!l.group||r[l.group??""]>r[h.group??""])&&(s[g]=l)}return s}const qt=/^(a|an|one|last|\d+)\s*([a-z]+)/,_t=/^(\d+)\s*([a-z]+)/,Jt=/^\d+$/,Ht=[{seconds:1,short:"s",locales:{en:"sec",vi:"gi\xE2y",tr:"ikinci",es:"segundo",ja:"\u79D2",ko:"\uCD08",zh:"\u79D2",id:"detik",pt:"segundo"}},{seconds:60,short:"m",locales:{en:"min",vi:"ph\xFAt",tr:"dakika",es:"minuto",ja:"\u5206",ko:"\uBD84",zh:"\u5206",id:"menit",pt:"minuto"}},{seconds:3600,short:"h",locales:{en:"hour",vi:"gi\u1EDD",tr:"saat",fr:"heure",it:"ora",es:"hora",ja:"\u6642\u9593",ko:"\uC2DC\uAC04",zh:"\u5C0F\u65F6",id:"jam",pt:"hora"}},{seconds:86400,short:"d",locales:{en:"day",vi:"ng\xE0y",tr:"g\xFCn",fr:"jour",it:"giorno",es:"d\xEDa",ja:"\u65E5",ko:"\uC77C",zh:"\u5929",id:"hari",pt:"dia"}},{seconds:604800,short:"w",locales:{en:"week",vi:"tu\u1EA7n",tr:"hafta",fr:"semaine",it:"settimana",es:"semana",ja:"\u9031\u9593",ko:"\uC8FC",zh:"\u5468",id:"minggu",pt:"semana"}},{seconds:2592e3,short:"mo",locales:{en:"month",vi:"th\xE1ng",tr:"ay",fr:"mois",it:"mese",es:"mes",ja:"\u30F6\u6708",ko:"\uAC1C\uC6D4",zh:"\u6708",id:"bulan",pt:"m\xEAs"}},{seconds:31536e3,short:"y",locales:{en:"year",vi:"n\u0103m",tr:"yil",fr:"an",it:"anno",es:"a\xF1o",ja:"\u5E74",ko:"\uB144",zh:"\u5E74",id:"tahun",pt:"ano"}}],Ft=["a","an","one","last"];function xe(a,e="en"){if(!a)return;const t=a.toLowerCase().trim().replace(/ago$/,"").trim(),r=Date.now();if(t.includes("now"))return r;if(t.includes("yesterday"))return r-864e5;if(Jt.test(t))return Number(t);const n=new Date(t);if(!isNaN(n.getTime())){const i=n.getTime();return n.getHours()===0&&n.getMinutes()===0&&n.getSeconds()===0?Math.min(r,i+432e5):i}const s=e==="en"?t.match(qt):t.match(_t);if(s){const[,i,c]=s,o=e==="en"&&Ft.includes(i)?1:Number(i);if(isNaN(o))return;const l=Ht.find(u=>c===u.short||u.locales[e]&&c.startsWith(u.locales[e])||c.startsWith(u.locales.en));if(l)return r-o*l.seconds*1e3}}function Vt(a,e=location.origin){if(!a)return;const t=new URL(a.startsWith("//")?`${location.protocol}${a}`:a,location.origin+location.pathname).toString();return t.startsWith(e)?t.replace(e,""):t}function N(a,{titleSlug:e,titleId:t,lang:r}){if(!a)return"/";let n=a;return e&&(n=n.replace("{titleSlug}",e)),t&&(n=n.replace("{titleId}",t)),r&&(n=n.replace("{lang}",r)),n.endsWith("/")||(n+="/"),n.startsWith("/")||(n="/"+n),n}function pe(a){if(!a)return;let e=a;e.startsWith("//")&&(e=`https:${e}`);try{return new URL(e)}catch{return}}function U(a){if(!(!a||typeof a!="string"))return a.includes("//")?pe(a)?.pathname:a}function Gt(a,e){const t=[...e],r=[];let n=!1,s=0;const i=Math.min(a.length,100);for(let o=0;o<i;o++){if(s>=10/2){const p=10-r.length;if(p>0){const d=o+p<=a.length?a.slice(o,o+p):t.slice(0,p);r.push(...d)}break}const l=a[o],u=l.id!==void 0,g=t.findIndex(p=>u&&p.id===l.id||p.slug===l.slug||p.name==l.name),h=g===-1?void 0:t.splice(g,1)[0];!h||h.chapters[0]?.chap!==l.chapters[0]?.chap?(n=!0,r.push({...l,changed:!0})):(s++,r.push(l))}if(!n)return{hasMore:!1,rawReleases:[]};if(r.length<=10)return{hasMore:!!a[a.length-1]?.changed,rawReleases:r};const c=[];for(let o=0;o<r.length;o++){const l=r[o];(l.changed||o<10)&&c.push(l)}return{hasMore:e.length<2||e.length-t.length<2,rawReleases:c}}function Kt(a,e){const t={};return a.forEach(r=>{const n=r.chapters.reduce((s,i)=>{const c=i.lang||e||"";return s[c]||(s[c]=[]),s[c].push(i),s},{});Object.entries(n).forEach(([s,i])=>{const c=`${r.slug}:${s}`;t[c]?(t[c].chapters.push(...i),G(t[c].chapters)):t[c]={...r,lang:s===""?void 0:s,chapters:i}})}),Object.values(t)}function Ce(a,e){const t=a[0]===e?a.substring(1):a;return t[t.length-1]===e?t.substring(0,t.length-1):t}var D=(a=>(a.title="title",a.reader="reader",a.releases="releases",a.chapters="chapters",a.search="search",a))(D||{}),Xt=Object.defineProperty,Yt=(a,e,t)=>e in a?Xt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,A=(a,e,t)=>Yt(a,typeof e!="symbol"?e+"":e,t);class te{constructor(e){A(this,"headless"),A(this,"siteId"),A(this,"spec"),A(this,"siteMeta"),A(this,"tags"),A(this,"context"),A(this,"isGeneric",!1),A(this,"methodsMap",{[D.title]:()=>this.getRawTitleData(),[D.reader]:()=>this.getRawReaderData(),[D.releases]:()=>this.getRawReleasesData(),[D.search]:()=>this.getRawSearchData(),[D.chapters]:()=>this.getRawChaptersData()}),A(this,"normalizedTagsMap"),this.siteId=e.siteId,this.spec=e.spec,this.siteMeta=e.siteMeta,this.tags=e.tags,this.context=e.context??{},this.headless=e.headless===!0}async getRawPageByType(e,t=!1,r=!1){this.isGeneric=r;const n=await this.methodsMap[e](),s=!n&&(e===D.title||e===D.reader)&&await Qt(this.spec);if((r||!t)&&!n&&!s)return;const i=location.origin+location.pathname;return{type:e,is404:s,specId:this.spec.id,siteName:this.getSiteName(e,n),favUrl:ta(),htmlLang:aa(),url:i,data:this.siteMeta.oneshot&&n?this.transformOneshot(e,n):n,spec:this.spec,context:this.context}}transformOneshot(e,t){if(e==="title"){const r=t.firstUrl;if(!r)return t;const{slug:n}=this.parseReaderUrl(this.siteMeta.readerBase,new URL(r).pathname,r);return{...t,hasMoreChapters:void 0,chapters:[{chap:0,slug:n}]}}if(e==="reader"){const r=t;return{...r,chap:0,title:{...r.title,hasMoreChapters:void 0,chapters:[{chap:0,slug:r.slug}]}}}return t}parseReaderUrl(e,t,r){const n=!this.siteId,s=t.includes("/");let i=e;if(s&&!i&&(i=this.siteMeta.readerBase),i.startsWith("/")||(i="/"+i),i.endsWith("/")||(i=i+"/"),!s)return n?{basePath:"",slug:`${i}${t}`}:{basePath:i,slug:t};const c=i.includes("{");let o=t;if(o[0]!=="/"&&(o.includes("/")||n&&!c))try{o=new URL(t,location.href).pathname}catch{}if(o.endsWith("/")&&(o=o.slice(0,-1)),c){const l=i.split("/").filter(Boolean),u=o.split("/").filter(Boolean);if(l.length<u.length){const g=u[l.indexOf("{lang}")]?.toLowerCase(),h=u[l.indexOf("{titleId}")],p=u[l.indexOf("{titleSlug}")];if(n)return{basePath:"",slug:o,lang:g,titleId:h,titleSlug:p};if(i=i.replace("{lang}",g).replace("{titleId}",h).replace("{titleSlug}",p),o.startsWith(i))return{basePath:i,slug:o.replace(i,""),lang:g,titleId:h,titleSlug:p}}}else if(!n&&o.startsWith(i))return{basePath:i,slug:o.replace(i,"")};return{basePath:"",slug:o}}parseTitleUrl(e){if(typeof e!="string")return{};const t=U(e);if(t===void 0)return{};if(this.siteMeta.single)return{slug:Ce(t,"/")};const r=t?.split("/").filter(Boolean);if(!r?.length)return{};const n=this.siteMeta.titleBase.split("/").filter(Boolean),s=n.indexOf("{slug}");return(s===-1?r.length-n.length>=1:r.length===n.length)?{id:r[n.indexOf("{id}")],slug:this.siteId?s===-1?r.slice(n.length).join("/"):r[s]:t}:{slug:t}}finalizeRawReleasesData(e){const t=this.spec.releases?.title?.lang?this.siteMeta.defaultLang:void 0,r=Kt(e.rawReleases,t);if(r.length)return this.context.oldRawReleases?Gt(r,this.context.oldRawReleases):{rawReleases:r,hasMore:!0}}getTagIdsFromNames(e){if(!e?.length)return;const t=this.normalizedTagsMap??(this.normalizedTagsMap=Zt(this.tags)),r=e.map(n=>t[he(n)]).filter(Boolean);return r.length===0?void 0:Array.from(new Set(r)).sort((n,s)=>n-s)}getSiteName(e,t){if(t&&this.siteMeta.single){if(e===D.title)return t.name;if(e===D.reader)return t.title.name}const r=this.spec.name,n=(r&&f(r))??f('meta[property="og:site_name"]|attr:content');return n&&n.length>2?n:void 0}}A(te,"specId"),A(te,"siteId");function Zt(a){const e={};return a.forEach(({id:t,name:r,altNames:n})=>{e[he(r)]=t,n&&n.forEach(s=>{e[he(s)]=t})}),e}function he(a){const e=a.toLowerCase().replaceAll(/[^a-z0-9\s]/gi,"").trim().replaceAll(/\s+/g," ");return e[e.length-1]==="s"?e.substring(0,e.length-1):e}async function Qt(a){return ea()===404||a[404]&&await E(a[404],{lazy:!0,timeoutMs:5e3})?!0:document.title.toLowerCase().includes("not found")}function ea(){try{return window.performance.getEntries().find(a=>a.entryType==="navigation")?.responseStatus}catch{return}}function ta(){return f('link[rel="icon"][sizes="32x32"],link[rel="icon"][sizes="192x192"],link[rel="apple-touch-icon"]|attr:href || link[rel="icon"]|attr:href')}function aa(){return f("html|attr:lang")||"en"}class R extends te{async getRawReleasesData(){const e=await this.getRawReleases();if(e?.length)return this.finalizeRawReleasesData({rawReleases:e})}async getRawReleases(){const e=this.spec?.releases?.title;if(!e)return;if(e.json){const c=this.queryJsonRawReleases(T(e.json),e)?.filter(o=>o.chapters.length);return c?.length?c:void 0}const t=e.chapter,r=await E(e.sel,{lazy:!0,all:!0});if(!r?.length)return;const n=Date.now(),s=r.slice(0,100).map(c=>{const o=f(e.url??(c.tagName==="A"?"|attr:href":"a|attr:href"),c),l=U(o),u=f(e.name,c)??f("img|attr:alt",c),g=f(e.at,c);if(!l||!u)return;const h=xe(g,this.siteMeta.defaultLang);return{titleEl:c,id:f(e.id,c),path:l,name:u,lang:f(e.lang,c)?.toLowerCase(),at:h?Math.min(h,n):void 0}}).filter(Boolean);if(!s.length)return;const i=[];return await Promise.all(s.map(async c=>{const{path:o,titleEl:l,lang:u,at:g,...h}=c,{id:p,slug:d}=this.parseTitleUrl(o);if(!d)return;const w=h.id||p,m=await this.getChapters(t,{root:l,titleId:w,titleSlug:d,titleName:c?.name,lang:u})??[];m.length&&i.push({slug:d,chapters:u||g?m.map(b=>({...b,elIndex:void 0,lang:b.lang??u,ts:b.ts??g})):m,...h,id:w})})),i}getRawTitleData(){return this.getTitleData(this.spec.title)}async getTitleData(e){if(!e||!await this.isTitlePage(e))return;const{id:t,slug:r}=this.parseTitleUrl(location.pathname);if(this.siteMeta.single?r===void 0:!r)return;const n=t||f(e.id),s=typeof e.chapter=="string"?{sel:e.chapter}:e.chapter,i=await this.getChapters(e.chapter,{lazy:s?.lazy??!0,titleId:n,titleSlug:r,titleName:f(e.name??"h1|text"),includeHiddenChapters:this.context.includeHiddenChapters}),c=f(e.name??"h1|text");if(!c)return;const o=await this.getValidImgSrc(e.img,c),l=o&&this.context.includeImgBytes?await kt(o):void 0,u=this.getFirstChapterUrl(),g=e.firstBtn,h=V(e.tags)?.map(m=>m.split(",")).flat().map(m=>m.trim()).filter(Boolean),p=f(e.type),d=V(e.langs)?.map(m=>m.toLowerCase()),w=e.hasMore??s?.allBtn;return{id:n||f(e.id),url:location.origin+location.pathname,slug:r,name:c,langs:d?.length?d:e.langs&&this.siteMeta.defaultLang?[this.siteMeta.defaultLang]:void 0,tags:this.getTagIdsFromNames([...h??[],...p?[p]:[]]),chapters:i??[],hasMoreChapters:!i?.length&&!e.chapter?!0:w?!!document.querySelector(w):void 0,img:o,imgBytes:l,firstUrl:u,firstBtn:!u&&g&&document.querySelector(g)?g:void 0,trackers:this.getTrackersMap(e.trackers)}}getTrackersMap(e){if(!e)return;const t=typeof e=="boolean"||e.mal===""?'a[href*="myanimelist.net"]|attr:href':e.mal,r=typeof e=="boolean"||e.anl===""?'a[href*="anilist.co"]|attr:href':e.anl,n=f(t),s=f(r);if(!n&&!s)return;const i={};return n&&(i.mal=n.split("?")[0].split("#")[0].split("manga/").slice(-1)[0].split("/")[0]),s&&(i.anl=s.split("?")[0].split("#")[0].split("manga/").slice(-1)[0].split("/")[0]),i}getFirstChapterUrl(){const e=f(this.spec.title?.first);if(e){if(e.startsWith("http"))return e;try{return new URL(e,location.href).href}catch{return}}}getValidImgSrc(e,t){return L(33,30,()=>{const r=f(e)||f(`img[alt="${t.replaceAll('"','\\"')}"]|[attr:data-src,attr-contain:src]`);return!r||r.startsWith("data:")?void 0:document.querySelector(`img[srcset*="${r}"]`)?r.split(" ")[0]:r})}resolveReaderTitleSpec(){const e=this.spec.reader?.title;return typeof e=="string"?{sel:e}:e}getRawReaderTitleData(e){const t=this.resolveReaderTitleSpec();if(!t)return;const r=t.sel?document.querySelector(t.sel)??void 0:void 0;if(t.sel&&!r)return;const n=f(t.name??"|text",r);if(!n)return;const s=Vt(f(t.img,r));if(e?.slug){let l=this.siteMeta.titleBase;if(e?.id&&(l=l.replace("{id}",e.id)),!l.includes("{"))return l=l.includes("{slug}")?l.replace("{slug}",e.slug):`${l}/${e.slug}`,this.siteMeta.trailing&&!l.endsWith("/")&&(l+="/"),{name:n,img:s,url:new URL(l,location.origin).href,slug:e.slug,id:e.id||f(t.id,r)}}const i=f(t.url??"|attr:href",r),{slug:c,id:o}=this.parseTitleUrl(i);if(!(!n||!i||(this.siteMeta.single?c===void 0:!c)))return{name:n,img:s,url:new URL(i,location.origin).href,slug:c,id:o||f(t.id,r)||e?.id}}async getRawReaderData(){const{spec:e,siteMeta:t}=this;if(!e?.reader||!await this.isReaderPage(e.reader,!!e.generic))return;const r=await this.getReaderType(e.reader);if(r===void 0)return;const n=this.parseReaderUrl(t.readerBase,location.pathname,location.href),{slug:s,basePath:i,lang:c}=n,o=this.getRawReaderTitleData({id:n.titleId,slug:n.titleSlug});if(!o)return;const l=f(e.reader.group),{id:u,slug:g}=o,h=e.reader?.chapter,p=!!this.context.disableLazyChapters,d=!!this.context.includeHiddenChapters,w=await this.getChapters(h,{titleId:u,titleSlug:g,titleName:o.name,lang:c,lazy:d||!p,includeHiddenChapters:d,timeoutMs:d?3e3:25e3,includeIndex:!0,basePath:i}),m=f(e.reader.label??"h1|text"),b=m?.toLowerCase().replace(o.name.toLowerCase(),"").trim(),v=this.siteMeta.oneshot?{chap:0}:b?O(b):void 0;if(!v)return;const y=e.reader.prev?this.findAdjacentChapter({spec:e.reader.prev,basePath:i,titleUrl:o.url,titleName:o.name}):void 0,$=e.reader.next?this.findAdjacentChapter({spec:e.reader.next,basePath:i,titleUrl:o.url,titleName:o.name}):void 0,I=u??(()=>{const S=this.spec.reader?.title;if(typeof S=="string"||!S?.id)return;const C=S.sel?document.querySelector(S.sel)??void 0:void 0;if(!(S.sel&&!C))return f(S.id,C)})();return this.finalizeRawReaderData({...v,contentType:r,name:r===H.novel&&m&&m.split(" ").filter(Boolean).length>(m.toLowerCase().includes("vol")?4:2)?m:void 0,lang:c??f(e.reader.lang)?.toLowerCase()??(e.reader.lang?this.siteMeta.defaultLang:void 0),slug:s,basePath:i,group:l??f(e.reader.group),imgs:V(e.reader.imgs),title:{id:I,url:o.url,slug:g,name:o.name,langs:c?[c]:void 0,img:o.img,chapters:w??[],hasMoreChapters:!w?.length&&!d&&!!this.context.disableLazyChapters&&!!(typeof h=="string"||h?.sel)}},{prev:y,next:$})}async getRawChaptersData(){const e=this.siteMeta.chapters;if(e===Q.blank)return;const t=e===Q.reader,r=!e||e===Q.title,n=t?(await this.getRawReaderData())?.title:r?await this.getRawTitleData():void 0,s=this.context.lang,i=await(async()=>{if(n?.chapters.length&&!n.hasMoreChapters)return n.chapters;const o=this.spec.chapters?.chapter;if(!o)return n?.hasMoreChapters?void 0:n?.chapters;const l=n?.slug??this.context.titleSlug,u=n?.id??this.context.rawId;if(!o.json)return await this.getChapters(o,{titleId:u,titleSlug:l,titleName:n?.name,lazy:this.spec.chapters?.lazy,includeHiddenChapters:!0,lang:s});const g=this.spec.chapters?.paging,h=N(this.siteMeta.readerBase,{titleSlug:l,titleId:u,lang:s}),p=await this.queryJsonChaptersResult({chapterSpec:o,pagingSpec:g,titleSlug:l,titleId:u,lang:s});if(!p)return;const{chapters:d,total:w,fetchUrl:m,limit:b}=p;if(!d.length||b>=w||!g||!g.pageKey&&!g.skipKey)return d;const v=this.context.startAfter;if(v&&d[d.length-1].chap-1<=v.chap)return d;const y=g.limitValue??b,$=Math.ceil(w/y),I=y<b,S=I?1:0,C=m&&g.limitKey&&g.limitValue?m.replace(new RegExp(`${g.limitKey}=\\d+`),`${g.limitKey}=${g.limitValue}`):m??location.href,X=(await Promise.all(Array.from({length:$-S},async(re,M)=>{let P=C;g.pageKey?P=P.replace(new RegExp(`${g.pageKey}=\\d+`),`${g.pageKey}=${M+1+S}`):g.skipKey&&(P=P.replace(new RegExp(`${g.skipKey}=\\d+`),`${g.skipKey}=${(M+S)*y}`));const z=await this.fetch(P);return this.parseJsonChapters(z,{chapterSpec:o,basePath:h})??[]}))).flat();return X.length?this.organizeChapters(I?X:[...d,...X]):d})();if(!i)return;const c=s?i.filter(o=>!o.lang||o.lang===s):i;return{chapters:c,title:n?{...n,chapters:[]}:await this.getTitleData(this.spec.chapters?.title),hasMore:!1,asc:!1,total:c.length}}async getRawSearchData(){const e=this.spec.search,t=this.context.lang;if(!e)return;const r=typeof e.title=="string"?{sel:e.title}:e.title;if(r.json){const l=this.queryJsonRawReleases(T(r.json),r,t);return l?.length?{rawReleases:l}:void 0}e.delay?await ue(e.delay):e.loading&&await ue(500);const{chapter:n}=r,s=[],i=e.lazy?e.empty||e.loading?550:100:1;let c=0;const o=await L(i,50,()=>{const l=Array.from(document.querySelectorAll(r.sel));if(l.length||e.empty&&document.querySelector(e.empty)||e.loading&&!document.querySelector(e.loading)&&++c>=3)return l});if(o)return await Promise.all(o.map(async l=>{const u=f(r.url??(l.tagName==="A"?"|attr:href":"a|attr:href"),l),g=U(u),h=f(r.name,l)??f("img|attr:alt",l),{slug:p,id:d}=this.parseTitleUrl(g);if(!g||!h||!p)return;const w=f(r.lang,l);w&&t&&w!==t||s.push({id:d||f(r.id,l),slug:p,name:h,img:f(r.img??"img|[attr:data-src,attr-contain:src]",l),lang:w,chapters:await this.getChapters(n,{root:l,titleId:d,titleSlug:p,titleName:h})??[]})})),{rawReleases:s}}queryJsonRawReleases(e,t,r){const n=ee(e),s=typeof t=="string"?{sel:t}:t,i=x(n,s.sel);if(!i?.length||!Array.isArray(i))return;const c=[];return i.forEach(o=>{const l=T(x(o,s.lang))?.toLowerCase();if(l&&r&&l!==r)return;const u=x(o,s.url),{id:g,slug:h}=B(u,v=>({id:void 0,slug:v+""}))??this.parseTitleUrl(U(u)),p=T(x(o,s.name));if(!h||!p)return;const d=g||x(o,s.id),w=B(d,v=>v+"")??T(d),m=s.chapter&&typeof s.chapter!="string"?this.parseJsonChapters(o,{chapterSpec:s.chapter,basePath:N(this.siteMeta.readerBase,{titleId:w,titleSlug:h,lang:l})}):void 0,b=T(x(o,s.img),v=>{try{return new URL(v,location.origin).href}catch{return}});c.push({id:w,slug:h,name:p,lang:l,img:b,chapters:m??[]})}),c}parseJsonChapters(e,t){return this.parseJsonChaptersResult(e,t)?.chapters}parseJsonChaptersResult(e,t){if(!e)return;const r=x(e,t.chapterSpec.sel);if(!r)return;const n=Array.isArray(r)?r:[r];if(!n?.length)return;const s=[];if(n.forEach(c=>{const o=this.parseJsonChapter(c,t);o&&s.push(o)}),!s.length)return;const i=B(x(e,t.pagingSpec?.lastPage));return{chapters:this.organizeChapters(s),limit:n.length,total:i&&i>1?i*n.length:B(x(e,t.pagingSpec?.total))??n.length}}parseJsonChapter(e,{chapterSpec:t,basePath:r}){const n=x(e,t.label),s=B(n,d=>({vol:void 0,chap:d}))??O(T(n));if(!s)return;const i=x(e,t.url),c=T(i)??B(i,d=>d+""),o=c?this.parseChapterUrl(r,c):void 0,l=s.vol??x(e,t.vol),u=B(l)??T(l,d=>+d),g=x(e,t.id),h=x(e,t.at),p=h?new Date(h).getTime():void 0;return{slug:o?.slug,vol:u||void 0,chap:s.chap,id:T(g)??B(g,d=>d+""),lang:T(x(e,t.lang))?.toLowerCase(),group:T(x(e,t.group)),ts:p||void 0}}async queryJsonChapters(e){return(await this.queryJsonChaptersResult(e))?.chapters}async queryJsonChaptersResult(e){const{chapterSpec:t,pagingSpec:r}=e;let n,s;if(typeof t.json=="string"&&(t.json.startsWith("http")||t.json.startsWith("/"))){const c=await this.getFetchResult(this.replaceDynamicParams(t.json,e));if(!c)return;n=c.url,s=c.value}else s=ee(T(t.json));const i=this.parseJsonChaptersResult(s,{chapterSpec:t,pagingSpec:r,basePath:N(this.siteMeta.readerBase,e)});return i?{...i,fetchUrl:n}:void 0}replaceDynamicParams(e,t){let r=e;return t.titleSlug&&(r=r.replace("{titleSlug}",t.titleSlug)),t.titleId&&(r=r.replace("{titleId}",t.titleId)),t.lang&&(r=r.replace("{lang}",t.lang)),r}async getChapters(e,{root:t,titleId:r,titleSlug:n,titleName:s,lang:i,includeHiddenChapters:c=!1,lazy:o=!0,timeoutMs:l,includeIndex:u,basePath:g,preferGroup:h}){const p=typeof e=="string"?{sel:e}:e,d=p?.sel;if(!p||d===void 0||p.trigger&&!c)return;const w=p?.json?void 0:this.replaceDynamicParams(d,{titleSlug:n,titleId:r,lang:i});if(!w&&!p?.json)return;let m;if(c){if(p.trigger){if(m=await E(p.trigger,{timeoutMs:5e3,lazy:!0}),!m)return}else if(p.allBtn){const v=p.allBtn;o?await L(100,100,()=>{const y=document.querySelector(v);return y?(m=y,!0):document.querySelector(d)||void 0}):m=document.querySelector(v)||void 0}}if(p?.json){m&&Y(m);const v=await this.queryJsonChapters({chapterSpec:p,titleSlug:n,titleId:r,lang:i});return this.dismissHiddenReaderChapters({chapterSpec:p,triggerEl:m,root:t}),v}let b=0;return await L(o?l?l/10:33:1,300,async()=>{b!==1&&b%10<=1&&m&&(Y(m),await ue(50)),b+=1;const v=Array.from((t??document.documentElement)?.querySelectorAll(w));if(!v.length)return;const y=(v??[]).map((M,P)=>{const z=M.tagName;return{id:f(p.id,M),url:f(p.url??(z==="A"?"|attr:href":z==="OPTION"?"|attr:value":void 0),M),label:f(p.label??"|text",M)?.toLowerCase(),vol:f(p.vol,M),at:f(p.at,M),lang:f(p.lang,M),group:f(p.group,M),elIndex:P}}),$=s?.toLowerCase(),I=$&&!!y[0]?.label?.startsWith($);if(this.dismissHiddenReaderChapters({chapterSpec:p,triggerEl:m,root:t}),!v?.length)return[];const S=y.map(({label:M,vol:P})=>{if(!M)return;const z=I?M?.replace($,"").trim():M,k=O(z);if(!k||k.vol!==void 0||!P)return k;const ne=O(P)?.vol;return ne?{...k,vol:ne}:k}),C=g??N(this.siteMeta.readerBase,{titleId:r,titleSlug:n,lang:i}),X=Date.now(),re=[];if(S.forEach((M,P)=>{if(!M)return;const{id:z,url:k,at:ne,lang:jr,group:Lr,elIndex:Br}=y[P],st=xe(ne,this.siteMeta.defaultLang),se={...M,id:z,lang:jr?.toLowerCase(),group:Lr,ts:st?Math.min(X,st):void 0};u&&(se.elIndex=Br);const ie=k?this.parseChapterUrl(C,k):void 0;ie&&(se.slug=ie.slug,ie.lang&&(se.lang=ie.lang)),re.push(se)}),!!re.length)return this.organizeChapters(re,h??this.context.preferGroup)})}dismissHiddenReaderChapters({chapterSpec:e,root:t,triggerEl:r}){const n=(e.dismiss?(t??document.body).querySelector(e.dismiss):void 0)??r;n&&Y(n)}parseChapterUrl(e,t){if(t?.startsWith("#")||t?.startsWith("/#")||t?.includes("javascript"))return;if(t?.startsWith("http")&&!t.includes(`//${location.hostname}/`))return{slug:t};const r=U(t);if(r)return this.parseReaderUrl(e,r,t)}async isTitlePage(e){return!(!e||(e.sel||e.lazy)&&!await E(e.sel??e.name?.split("|")?.[0]??"h1",{lazy:!!e.lazy}))}async isReaderPage(e,t){const r=e?.sel;return t&&!r?!1:!r||!!await E(r,{lazy:!!e.lazy})}async getReaderType(e){const t=e.content;return t?vt(t,{paraSel:e?.para,validateImgSize:!this.headless,timeoutMs:15e3,include:this.isGeneric?[H.novel,H.manga]:this.siteMeta.contentTypes??[H.manga]}):e.imgs||e.imgDivs?H.manga:void 0}findAdjacentChapter({spec:e,basePath:t,titleUrl:r,titleName:n}){if(typeof e=="string"){const l=this.getAdjacentChapterSlug(f(e),{titleUrl:r,basePath:t}),u=Se(l);return u?{...u,slug:l}:void 0}const s=e.sel?document.querySelector(e.sel)??void 0:void 0;if(e.sel&&!s)return;const i=e.url?this.getAdjacentChapterSlug(f(e.url,s),{basePath:t,titleUrl:r}):void 0,c=f(e.label,s)?.toLowerCase().replace(n.toLowerCase(),""),o=O(c)??Se(i);if(o)return i===void 0?o:{...o,slug:i}}getAdjacentChapterSlug(e,t){if(!e||e.startsWith("#")||e.startsWith("/#")||e.includes("javascript"))return;const r=U(e);if(r&&!(r===location.pathname||t.titleUrl===r||t.titleUrl===`${location.origin}${r}`))return this.parseReaderUrl(t.basePath,r,e).slug||void 0}finalizeRawReaderData(e,t={}){const{prev:r,next:n}=t,s=e.title.chapters;if(!s.length)return r||n?{...e,prev:r,next:n}:e;let i,c,o,l;for(let u=0;u<s.length&&!(i&&(!r||o)&&!n&&l);u++){const g=s[u];!i&&de(e,g)?(i=g,c=u):!o&&r&&de(r,g)?o=g:!l&&n&&de(n,g)&&(l=g)}return c!==void 0&&(o??(o=s[c+1]),l??(l=s[c-1])),o&&!o.slug&&r?.slug&&(o.slug=r.slug),l&&!l.slug&&n?.slug&&(l.slug=n.slug),i&&!i.slug&&(i.slug=e.slug),{...e,inferVol:i?.inferVol,prev:o,next:l}}organizeChapters(e,t){return G(e,{preferGroup:t??this.context.preferGroup})}getFetchResult(e){return j(e)}async fetch(e){try{const t=await fetch(e,{signal:AbortSignal.timeout(2e4)});return t.ok?await t.json():void 0}catch{return}}}function de(a,e){return a.slug&&a.slug==e.slug||a.chap===e.chap&&(a.vol===e.vol||a.vol===void 0)}var ra=Object.defineProperty,na=(a,e,t)=>e in a?ra(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,sa=(a,e,t)=>na(a,e+"",t);class De extends R{async getRawReaderData(){const e=`https://${location.host}/api/`,[t,r]=await Promise.all([j(`${e}manga/info`),j(`${e}read/chapter`)]),n=t?.value,s=r?.value;if(!n||!s)return;const i=this.parseReaderUrl(this.siteMeta.readerBase,location.pathname,location.href);if(!i)return;const c=O(s.readChapter?.title);if(c)return this.finalizeRawReaderData({basePath:i.basePath,slug:i.slug,...c,imgs:s.readChapter.pages.map(o=>new URL(o.image,location.origin).href),title:{url:`${e}/manga/${n.id}`,slug:n.id,name:n.title,tags:this.getTagIdsFromNames([n.type].filter(Boolean)),chapters:this.organizeChapters(n.chapters.map(o=>({slug:o.id,chap:o.number})))}})}}sa(De,"specId","atsu");var ia=Object.defineProperty,la=(a,e,t)=>e in a?ia(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,oa=(a,e,t)=>la(a,e+"",t);class Me extends R{async getRawChaptersData(){const e=this.spec.chapters;if(!e?.paging||!e.chapter.trigger)return;const t=e.chapter.trigger,r=e.paging,n=await super.getRawTitleData();if(!n)return;const s=u=>typeof u=="string"&&u.indexOf("/chapters")!==-1&&/[?&]limit=\d+/.test(u)?u.replace(new RegExp(`${r.pageKey}=\\d+`),g=>`${r.pageKey}=${Math.max(0,+g.split("=")[1]-1)}`).replace(new RegExp(`${r.limitKey}=\\d+`),`${r.limitKey}=${r.limitValue}`):u,i=XMLHttpRequest.prototype.open;XMLHttpRequest.prototype.open=function(u,g){return arguments[1]=s(g),i.apply(this,arguments)};const c=JSON.parse,o=new Set,l=new Set;return new Promise(u=>{const g=[];let h=!1;const p=()=>{h||(h=!0,u({title:{...n,chapters:[]},chapters:this.organizeChapters(g)}))},d=this.parseJsonChapters.bind(this),w=N(this.siteMeta.readerBase,{titleSlug:n.slug});JSON.parse=new Proxy(c,{apply(m,b,v){const y=Reflect.apply(m,b,v);if(h)return y;const $=y?.result?.meta??y?.result?.pagination;if($?.perPage!==100)return y;const I=d(y,{chapterSpec:e.chapter,basePath:w});if(!I)return y;try{const S=$.page||1;o.has(S)||(o.add(S),g.push(...I),$.hasNext&&!l.has(S)?(l.add(S),setTimeout(()=>{E(t,{lazy:!0,timeoutMs:5e3}).then(C=>C?.click())},100)):p()),$.page+=1,$.perPage=20,$.lastPage=200,y.result.items=y.result.items.slice(0,20)}catch{}return y}}),setTimeout(()=>document.querySelector(t)?.click(),200)})}}oa(Me,"specId","comix");var ca=Object.defineProperty,ua=(a,e,t)=>e in a?ca(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ga=(a,e,t)=>ua(a,e+"",t);class Te extends R{async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=window.pages,r=t?.map(n=>n?.image).filter(Boolean);if(!(!Array.isArray(r)||!r.length))return{...e,imgs:r,isWebtoon:t.some(n=>n.height/n.width>2)}}}ga(Te,"specId","dynasty");var pa=Object.defineProperty,ha=(a,e,t)=>e in a?pa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,da=(a,e,t)=>ha(a,e+"",t);class Ie extends R{async getRawReaderData(){const e=await super.getRawReaderData();if(!e||!e.imgs?.length)return e;const t=e.imgs[0],r=t.lastIndexOf("/"),n=r===-1?"":t.substring(0,r+1),s=r===-1?t:t.substring(r+1),i=s.substring(s.lastIndexOf(".")),c=T(f(".total_pages|text"),l=>+l)||1,o=Array.from({length:c},(l,u)=>`${n}${u+1}${i}`);return{...e,imgs:o}}}da(Ie,"specId","imhen");var fa=Object.defineProperty,ma=(a,e,t)=>e in a?fa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,va=(a,e,t)=>ma(a,e+"",t);class Pe extends R{async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=this.spec.chapters?.chapter;if(!t)return e;const r=await j(`https://api.spacely.tech/manhwa/comixto/info/${e.title.slug}`);if(!r?.value)return e;const n=this.parseJsonChapters(r.value,{chapterSpec:t,basePath:N(e.basePath,{titleSlug:e.title.slug})});return n?.length?this.finalizeRawReaderData({...e,title:{...e.title,chapters:n}}):e}}va(Pe,"specId","inkora");var wa=Object.defineProperty,ya=(a,e,t)=>e in a?wa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ba=(a,e,t)=>ya(a,e+"",t);class je extends R{async getRawTitleData(){const e=await super.getRawTitleData();if(!e)return;const t=this.spec.chapters?.chapter;if(t){const r=await j("https://yuzuki.kagane.org/api/v2/series/{id}");if(r){const n=this.parseJsonChapters(r.value,{chapterSpec:t,basePath:N(this.siteMeta.readerBase,{titleSlug:e.slug})});if(n)return{...e,chapters:n}}}return{...e,hasMoreChapters:!0}}async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=Ra();return{...e,title:{...e.title,img:Le(e.title.slug),chapters:t}}}async getRawSearchData(){const e=await super.getRawSearchData();if(e)return{...e,rawReleases:e.rawReleases.map(t=>({...t,img:Le(t.slug)}))}}}ba(je,"specId","kagane");function Le(a){return`https://api.${location.host}/api/v1/series/${a}/thumbnail`}function Ra(){const a=["initialChapters"],e=Array.from(document.querySelectorAll("script:not([src])"));for(let t=0;t<e.length;t++){const r=e[t].textContent;if(r)for(const n of a){const s=r.indexOf(n);if(s===-1)continue;const i=r.slice(s),c=F(i.slice(i.indexOf("[{"),i.indexOf('}],\\"cached_at')+2).replaceAll("\\",""));if(!c?.length||!Array.isArray(c))return[];try{const o=[];return c.map(l=>{const u=O(l.name);u&&o.push({...u,slug:l.id,ts:l.created?new Date(l.created).getTime():void 0})}),G(o)}catch{return[]}}}return[]}var $a=Object.defineProperty,Sa=(a,e,t)=>e in a?$a(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,xa=(a,e,t)=>Sa(a,e+"",t);class fe extends R{async getRawReleasesData(){const e=this.getNewSiteMeta(this.spec.releases?.title),t=await super.getRawReleasesData();if(t)return{...t,siteMeta:e}}async getRawTitleData(){if(!await this.isTitlePage(this.spec.title))return;const e=this.getNewSiteMeta(this.spec.title,`${location.origin}${location.pathname}`),t=await super.getRawTitleData();if(t)return{...t,siteMeta:e}}async getRawReaderData(){if(!await this.isReaderPage(this.spec.reader,this.spec.generic))return;const e=this.getNewSiteMeta(this.spec.reader?.title),t=await super.getRawReaderData();if(t)return{...t,siteMeta:e}}async getRawSearchData(){const e=this.getNewSiteMeta(this.spec.search?.title),t=await super.getRawSearchData();if(t)return{...t,siteMeta:e}}getNewSiteMeta(e,t){if(t??(t=Ca(e)),!t)return;if(!this.siteId){const i={...this.siteMeta,releases:null,titleBase:"",readerBase:"",titleIdType:$e.name,trailing:t.endsWith("/"),defaultLang:f("html|attr:lang")||"en"};return this.siteMeta=i,i}const r=this.extractBasePath(t),n=this.siteMeta;if(n.titleBase===r)return;const s={...n,titleBase:r,readerBase:n.readerBase.replace(n.titleBase,r)};return this.siteMeta=s,s}extractBasePath(e){const t=e.startsWith("/")?e:U(e);return Ce(t,"/").split("/").slice(0,-1).join("/")}}xa(fe,"specId","madara");function Ca(a){if(!a)return;const e=typeof a=="string",t=e?a:a.sel,r=t?document.querySelector(t)??void 0:void 0;return f(e?"|attr:href":a.url,r)}var Da=Object.defineProperty,Ma=(a,e,t)=>e in a?Da(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ta=(a,e,t)=>Ma(a,e+"",t);class Be extends R{async getRawTitleData(){const e=await super.getRawTitleData();if(!e)return;const t=await Ae(this.context.preferGroup),r=new Set;return t.forEach(({lang:n})=>{n&&r.add(n)}),{...e,chapters:t,langs:r.size?Array.from(r):[this.siteMeta.defaultLang||"en"]}}async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=await Ae(e.group||this.context.preferGroup),r=t[0]?.lang;return this.finalizeRawReaderData({...e,lang:r,title:{...e.title,chapters:t,langs:r?[r]:void 0}})}}Ta(Be,"specId","mangaball");async function Ae(a){const e=await L(100,50,()=>{try{return ALL_CHAPTERS.length?ALL_CHAPTERS:void 0}catch{return}});if(!e)return[];const t=[];return e.forEach(r=>{r.translations.forEach(n=>{const s=n.volume;t.push({chap:r.number_float,vol:s>0?s:void 0,slug:n.id,lang:n.language,group:n.group?.name,ts:new Date(n.date).getTime()})})}),G(t,{preferGroup:a})}var Ia=Object.defineProperty,Pa=(a,e,t)=>e in a?Ia(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ja=(a,e,t)=>Pa(a,e+"",t);const La={a:.1,b:.2,c:.3,d:.4};class Ee extends R{parseTitleUrl(e){return{slug:U(e)?.split("/").filter(Boolean)[1]}}async getRawReleases(){const e=ee()?.data;if(!e)return;const t=[];return e.forEach(({relationships:r,attributes:n,id:s})=>{const i=r.find(({type:g})=>g==="manga"),c=ae(n.volume),o=K(n.chapter);if(o===void 0)return;const{title:l}=i.attributes,u=l.en??Object.values(l)[0];t.push({slug:i.id,name:u,chapters:[{slug:n.externalUrl||s,vol:c,chap:o,lang:n.translatedLanguage,ts:new Date(n.readableAt).valueOf()}]})}),t}async getRawTitleData(){const e=`https://api.${location.host}/manga/`;let[t,r]=await Promise.all([j(`${e}{id}`,{timeoutMs:5e3}),j(`${e}{id}/feed`,{timeoutMs:5e3})]);if(!t||!r){const[o,l]=await Promise.all([this.fetch(`${e}{id}`),this.fetch(`${e}{id}/feed`)]);if(!o||!l)return;t={url:"",value:o},r={url:"",value:l}}const n=r.value.data?.map?.(o=>{const{attributes:l,id:u}=o;if(typeof l!="object"||typeof u!="string"||!u)return;const{externalUrl:g,title:h,volume:p,chapter:d,translatedLanguage:w}=l;return{slug:g||u,label:h||void 0,vol:ae(p),chap:K(d),lang:w||"en",ts:new Date(l.readableAt).valueOf()}}).filter(o=>o?.chap!=null)??[],{data:s}=t.value;if(!s)return;const i=Oe({data:s,getTagIdsFromNames:o=>this.getTagIdsFromNames(o)});if(!i)return;const c=this.context.includeImgBytes&&i.img?await ge(i.img):void 0;return{...i,imgBytes:c,chapters:this.organizeChapters(n),hasMoreChapters:(r.value.total||0)>(r.value.limit||0)}}async getRawReaderData(){const e="https://api.mangadex.org/",[t,r,n]=await Promise.all([j(`${e}chapter/{id}`),j(`${e}at-home/server/{id}`),j(`${e}manga/{id}/aggregate`)]);if(!t||!r||!n)return;const s=t.value.data,{volume:i,chapter:c,externalUrl:o,translatedLanguage:l}=s.attributes||{},{baseUrl:u,chapter:{data:g,dataSaver:h,hash:p}}=r.value,d=s.relationships?.find?.(C=>C.type==="manga");if(!d)return;const w=Oe({data:d,getTagIdsFromNames:C=>this.getTagIdsFromNames(C)});if(!w||typeof n.value.volumes!="object")return;const m=Ue(n.value,{preferGroup:this.context.preferGroup})??[];(typeof c!="string"||c==="none")&&!m.length&&m.push({chap:0,slug:s.id});const b=m.findIndex(C=>C.slug===s.id),v=s.relationships?.find?.(C=>C.type==="scanlation_group"),y=u.endsWith("/")?u:u+"/",$=!!localStorage.getItem("md")?.includes?.('"dataSaver":true'),I=`${y}${$?"data-saver":"data"}/`,S=(($?h:g)??[]).map?.(C=>`${I}${p}/${C}`)??[];return{externalUrl:o,vol:ae(i),inferVol:m[b]?.inferVol,chap:K(c)||0,imgs:S,lang:l,slug:s.id,prev:m[b+1],next:m[b-1],basePath:"/chapter/",group:v?.attributes?.name,groupUrl:v?.attributes?.website,isWebtoon:d?.attributes?.tags?.some(C=>C.attributes.name.en==="Long Strip"),title:{...w,chapters:m}}}async getRawChaptersData(){const e=ee();if(!e)return;let t;try{t=Ue(e,{preferGroup:this.context.preferGroup})}catch{return}if(t)return{chapters:t,lang:this.context.lang??"en",asc:!1,hasMore:!1,total:t.length}}}ja(Ee,"specId","mangadex");function ae(a){const e=K(a);return e!==0?e:void 0}function K(a){if(typeof a!="string"||a==="none")return;const e=parseFloat(a);if(e!==e)return;const t=a[a.length-1];return e+(La[t]??0)}function Ue(a,{preferGroup:e}){if(typeof a.volumes!="object")return;const t=Object.values(a.volumes).map(({volume:r,chapters:n})=>{const s=ae(r);return Object.values(n).map(({id:i,chapter:c})=>{const o=K(c);if(o!==void 0)return{vol:s,chap:o,slug:i}})}).flat().filter(Boolean).reverse();return G(t,{preferGroup:e})}function Oe({data:a,getTagIdsFromNames:e}){const{id:t,attributes:r,relationships:n}=a;if(!t||typeof t!="string"||typeof r!="object")return;const{title:s,availableTranslatedLanguages:i,altTitles:c,tags:o,contentRating:l}=r;if(typeof s!="object"||i&&!Array.isArray(i))return;const u=Object.values(s)[0];if(!u||typeof u!="string")return;const g=Ba(),h=(i??[])?.map?.(v=>typeof v=="string"?v:void 0).filter(Boolean)??[],p=h.filter(v=>v&&(!g||g.includes(v))),d=c?.map?.(v=>{const[[,y]=[]]=Object.entries(v);return y}),w=n?.find?.(v=>v.type==="cover_art")?.attributes?.fileName,m=w?`https://mangadex.org/covers/${t}/${w}.256.jpg`:void 0,b=(o||[]).map(v=>v?.attributes?.name?.en).concat(l).filter(Boolean);return{url:`${location.origin}/title/${t}`,slug:t,name:u,altNames:d,langs:p.length>0?p:h.length>0?h:["en"],img:m,tags:e(b)}}function Ba(){const a=localStorage.getItem("md");if(!a)return;const e=F(a);if(e)try{const t=e?.userPreferences?.filteredLanguages;return t?.length?t:void 0}catch{return}}var Aa=Object.defineProperty,Ea=(a,e,t)=>e in a?Aa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ua=(a,e,t)=>Ea(a,e+"",t);class Ne extends R{async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=await j(`/api/chapters/${e.slug}/images`);if(!t)return;const r=t.value.images?.map?.(s=>s.url),n=T(Z(t.value,"manga.title"));return{...e,imgs:r,title:{...e.title,name:n??e.title.name}}}}Ua(Ne,"specId","mangadot");var Oa=Object.defineProperty,Na=(a,e,t)=>e in a?Oa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,za=(a,e,t)=>Na(a,e+"",t);class ze extends R{async getRawReaderData(){if((await E(".current-viewtype",{lazy:!0,all:!1}))?.textContent?.trim().toLowerCase()!=="volume")return await super.getRawReaderData()}async getRawChaptersData(){const e=this.context.lang??"en",t=await E(`.tab-content[data-name="chapter"] a.dropdown-item[data-code="${e.toUpperCase()}"]`,{lazy:!0,all:!1});if(t)return Y(t),await E(`.tab-content[data-name="chapter"] li.item[data-number] a[href*="/${e}/"]`,{lazy:!0,all:!1}),await super.getRawChaptersData()}async getRawSearchData(){const e=await super.getRawSearchData();if(!e)return;const t=this.context.lang??"en";return{...e,rawReleases:e.rawReleases.map(r=>({...r,lang:r.lang??t}))}}}za(ze,"specId","mangafire");var ka=Object.defineProperty,Wa=(a,e,t)=>e in a?ka(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,qa=(a,e,t)=>Wa(a,e+"",t);class ke extends R{async getRawReaderData(){const e=await super.getRawReaderData();return e&&{...e,imgs:await this.getImgs()}}parseReaderUrl(e,t,r){const{slug:n,basePath:s}=super.parseReaderUrl(e,t,r),i=n.split("/").filter(Boolean),c=i[i.length-1];return{basePath:s,slug:c.startsWith("pg-")?i.slice(0,-1).join("/"):n}}async getImgs(){const e=await L(100,20,()=>window.imgsrcs),t=window.CryptoJS,r=t.enc.Hex.parse("e11adc3949ba59abbe56e057f20f883e"),n={iv:t.enc.Hex.parse("1234567890abcdef1234567890abcdef"),padding:t.pad.ZeroPadding};return t.AES.decrypt(e,r,n).toString(t.enc.Utf8).split(",")}}qa(ke,"specId","mangago");var _a=Object.defineProperty,Ja=(a,e,t)=>e in a?_a(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ha=(a,e,t)=>Ja(a,e+"",t);class We extends R{parseTitleUrl(e){return{slug:U(e)?.split("/").filter(Boolean)[1]}}}Ha(We,"specId","mangapill");var Fa=Object.defineProperty,Va=(a,e,t)=>e in a?Fa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ga=(a,e,t)=>Va(a,e+"",t);class qe extends R{async getRawTitleData(){const e=await super.getRawTitleData();return e&&{...e,chapters:e.chapters.map(t=>({...t,slug:t.slug?.split("/").filter(Boolean).slice(-1)[0]}))}}}Ga(qe,"specId","mangaplus");var Ka=Object.defineProperty,Xa=(a,e,t)=>e in a?Ka(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ya=(a,e,t)=>Xa(a,e+"",t);class _e extends fe{async getRawReaderData(){const e=await super.getRawReaderData();if(e)return{...e,title:{...e.title,id:await this.getReaderTitleId()}}}async getReaderTitleId(){const e=await window.HISTORY?.getStored?.();if(!e||typeof e!="object")return;const t=Object.values(e).filter(Boolean);if(!t.length)return;t.sort((n,s)=>s.time-n.time);const r=t[0].manga_ID;return T(r)??B(r,n=>n+"")}}Ya(_e,"specId","mangastream");var Za=Object.defineProperty,Qa=(a,e,t)=>e in a?Za(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,er=(a,e,t)=>Qa(a,e+"",t);class Je extends R{async getRawReaderData(){const e=await super.getRawReaderData();return!e||!e.title.chapters.length?e:{...e,prev:e.prev?{...e.prev,slug:me(e.title.slug,e.prev.slug)}:void 0,next:e.next?{...e.next,slug:me(e.title.slug,e.next.slug)}:void 0,title:{...e.title,chapters:e.title.chapters.map(t=>({...t,slug:me(e.title.slug,t.slug)}))}}}}er(Je,"specId","mangatime");function me(a,e){if(e)return`/manga/${a}/chapter-${e}`}var tr=Object.defineProperty,ar=(a,e,t)=>e in a?tr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,rr=(a,e,t)=>ar(a,e+"",t);class He extends R{async getRawReaderData(){const e=await super.getRawReaderData();if(e?.imgs?.length!==1)return e;e.slug.includes("//")&&(e.slug=Fe(e.slug).split("/").filter(Boolean)[3]);const t=B(document.querySelector("select.index-page,.page_select select")?.childElementCount,p=>p-1);if(!t||t<=1)return e;const[r]=e.imgs,n=r.split(/\d+\.[a-z]{3,5}$/i)?.[0];if(!n)return e;const s=(+(f(".page_select .select|text")||"1")||1)-1,i=r.replace(n,""),[c,o]=i.split("."),l=c.length,u=+c-s,g=u+t-1,h=[];for(let p=u;p<=g;p++)h.push(`${n}${(p+"").padStart(l,"0")}${o?`.${o}`:""}`);return{...e,imgs:h}}parseChapterUrl(e,t){return this.parseReaderUrl(e,Fe(t),t)}}rr(He,"specId","mangatown");function Fe(a){return a.replace(location.origin,"").replace("//","/")}var nr=Object.defineProperty,sr=(a,e,t)=>e in a?nr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ir=(a,e,t)=>sr(a,e+"",t);class Ve extends R{async getRawReaderData(){const e=await super.getRawReaderData();return e&&{...e,slug:e.slug.split("/").slice(0,-1).join("/")||e.slug.split("/")[0]}}}ir(Ve,"specId","mangaworld");var lr=Object.defineProperty,or=(a,e,t)=>e in a?lr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,cr=(a,e,t)=>or(a,e+"",t);class Ge extends R{async getRawTitleData(){const e=await super.getRawTitleData();if(e)return{...e,hasMoreChapters:e.chapters.length===50}}}cr(Ge,"specId","mgeko");var ur=Object.defineProperty,gr=(a,e,t)=>e in a?ur(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,pr=(a,e,t)=>gr(a,e+"",t);class Ke extends R{async getRawReaderData(){const e=await L(200,50,()=>{const s=window.mangaReader;return s?.scanData&&s?.mangaData?s:void 0});if(!e)return;const{scanData:t,mangaData:r}=e,n=`/${this.siteMeta.readerBase}/`;return this.finalizeRawReaderData({basePath:n,chap:t.chapterNum,slug:t.slug,imgs:t.pages,title:{name:t.chapterTitle,slug:t.manga,url:`${location.origin}/${this.siteMeta.titleBase}/${t.manga}`,chapters:this.parseJsonChapters(r,{basePath:n,chapterSpec:{sel:"chapters",label:"num",url:"slug"}})??[]}})}}pr(Ke,"specId","moins");var hr=Object.defineProperty,dr=(a,e,t)=>e in a?hr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,fr=(a,e,t)=>dr(a,e+"",t);class Xe extends te{async getRawReleasesData(){}async getRawSearchData(){}async getRawTitleData(){const e=f("h1.title .pretty, h1.title|text"),t=f("#cover img|[attr:data-src,attr-contain:src]");if(e)return{name:e,slug:location.pathname.split("/").filter(Boolean).slice(-1)[0],url:location.origin+location.pathname,img:t,imgBytes:this.context.includeImgBytes&&t?await ge(t):void 0,chapters:[{slug:"1",chap:0}]}}async getRawReaderData(){const e=f("#image-container img|[attr:data-src,attr-contain:src]"),t=pe(e);if(!t)return;const r=t.origin,n=this.parseReaderUrl(this.siteMeta.readerBase,location.pathname,location.href);if(n?.titleSlug)try{const s=await fetch(`${location.origin}/api/v2/galleries/${n.titleSlug}`);if(!s.ok)return;const i=await s.json();if(!i)return;const c=x(i,"title.pretty")||x(i,"title.english")||i?.title?.[Object.keys(i.title)[0]];if(!c)return;const o=T(x(i,"cover.path"),u=>`https://t2.${location.hostname}${u.startsWith("/")?u:`/${u}`}`),l=i.pages.map(u=>{const g=u.path;return`${r}${g.startsWith("/")?g:`/${g}`}`});return{chap:0,slug:"1",basePath:`/g/${n.titleSlug}/`,imgs:l,title:{name:c,slug:n.titleSlug,url:`${location.origin}/g/${n.titleSlug}`,chapters:[{slug:"1",chap:0}],img:o}}}catch{return}}async getRawChaptersData(){const e=await this.getRawTitleData();if(!e)return;const{chapters:t,...r}=e;return{title:{...r,chapters:[]},chapters:t}}}fr(Xe,"specId","nhentai");var mr=Object.defineProperty,vr=(a,e,t)=>e in a?mr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,wr=(a,e,t)=>vr(a,e+"",t);class Ye extends R{async queryJsonChapters(e){const t=await super.queryJsonChapters(e);if(t)return t.map(r=>({...r,slug:r.slug?`ch-${+r.slug||r.chap}`:r.slug}))}}wr(Ye,"specId","stone");var yr=Object.defineProperty,br=(a,e,t)=>e in a?yr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Rr=(a,e,t)=>br(a,e+"",t);class Ze extends R{async getRawTitleData(){const e=await super.getRawTitleData();if(!e)return;const t=V(".info-detail__row > .genre-btn,.info__right .stats__row:first-child|text")?.map(r=>[r,...r.split(" ")]).flat();return Qe({...e,tags:this.getTagIdsFromNames(t)??[]},".episode-header .episode-cnt")}async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=`${location.origin}/series/${e.title.slug}/info`;return{...e,title:{...Qe({...e.title,url:t,tags:[]},".episode-list .js-ep-cnt"),hasMoreChapters:!1}}}parseTitleUrl(e){if(!e)return{};const t=e.split("/").filter(Boolean);return{slug:t[1]??t[0]}}}Rr(Ze,"specId","tapas");function Qe(a,e){const t=$r(e)>20;return{...a,chapters:t?[]:a.chapters,hasMoreChapters:t}}function $r(a){return+(document.querySelector(a)?.textContent?.trim().split(" ")[0]||0)}var Sr=Object.defineProperty,xr=(a,e,t)=>e in a?Sr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Cr=(a,e,t)=>xr(a,e+"",t);class et extends R{async getRawTitleData(){const e=await super.getRawTitleData();if(!e||e?.id||this.siteId&&!e.hasMoreChapters&&e.chapters.length)return e;const t=await this.getTitleId(e.name,e.slug);if(t)return{...e,id:t}}async getRawChaptersData(){const{rawId:e}=this.context;if(!e)return await super.getRawChaptersData();const t=(()=>{const r=Array.from(document.querySelectorAll("script:not([src])"));for(let n=0;n<r.length;n++){const s=r[n].textContent;if(s?.includes('"user\\":'))return s?.match(/"user\\":\{\\"id\\":\\"([^"']+)\\"/)?.[1]}})();try{const r=await fetch(`https://api.${location.host}/api/chapters?postId=${e}&skip=0&take=900&order=desc${t?`&userid=${t}`:""}`);if(!r.ok)return;const n=await r.json(),s=this.parseJsonChapters(n,{chapterSpec:{sel:"post.chapters",url:"slug",label:"number",at:"createdAt"},basePath:N(location.pathname,{titleSlug:this.context.titleSlug})});return s?{chapters:s}:void 0}catch{return}}async getTitleId(e,t){const r=`mp:id:${t}`,n=localStorage.getItem(r);if(n)return n==="_"?void 0:n;try{const s=await fetch(`https://api.${location.hostname}/api/query?page=1&perPage=10&searchTerm=${encodeURIComponent(e)}`);if(!s.ok)return;const i=await s.json(),c=e.toLowerCase(),o=i.posts.find(u=>u.postTitle.toLowerCase().trim()===c),l=B(o?.id,u=>u.toString());return localStorage.setItem(r,l??"_"),l}catch{return}}}Cr(et,"specId","vortex");var Dr=Object.defineProperty,Mr=(a,e,t)=>e in a?Dr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Tr=(a,e,t)=>Mr(a,e+"",t);class tt extends R{async getRawTitleData(){const e=new URLSearchParams(location.search),t=e.get("episode_no"),r=e.get("title_no");if(t||!r)return;const n=await super.getRawTitleData();if(!n)return;const s=location.hostname.startsWith("m."),i=location.pathname.split("/")[1];return{...n,slug:`${n.slug}?title_no=${r}`,id:r,langs:i?[i]:void 0,chapters:s?[]:n.chapters.map(c=>({...c,lang:i})),hasMoreChapters:s||(document.querySelector(".paginate")?.childElementCount??1)>1}}async getRawReaderData(){const e=new URLSearchParams(location.search),t=e.get("episode_no"),r=e.get("title_no"),n=t?+t:void 0;if(!t||!r||typeof n!="number"||isNaN(n))return;const s=document.title.split("|")[1]?.trim();if(!s)return;const i=location.pathname.split("/"),c=`${i.slice(0,4).join("/")}/list?title_no=${r}`,o=await this.getChapters({sel:"#sequence_scroll li.eg-flick-panel,#toolbar .episode_lst li[data-episode-no]",url:"a|attr:href",label:"|attr:data-episode-no || a|attr:href|pattern:.+episode_no=(\\d+).*"},{lazy:!1,titleId:r,titleSlug:c,titleName:s}),l=i[1];return{chap:n,lang:l,slug:`${location.pathname}?title_no=${r}&episode_no=${t}`,basePath:"",imgs:await this.getReaderImgs(),isWebtoon:!0,title:{id:r,url:c,slug:c,name:s,langs:[l],chapters:(o??[]).map(u=>({...u,lang:l})),hasMoreChapters:!1}}}async getReaderImgs(){const e=V("#_imageList img|[attr:data-url,attr:src]");return e?.length?e:await L(100,50,()=>window.__viewerState__?.scrollViewerParam?.imageList?.map(({url:t})=>t).filter(Boolean))}parseReaderUrl(e,t,r){if(!r)return{basePath:"",slug:t};if(r.startsWith("http://")||r.startsWith("https://")){const n=pe(r);return{basePath:"",slug:n.pathname+n.search}}return{basePath:"",slug:r}}}Tr(tt,"specId","webtoon");const Ir=[De,Me,Te,Ie,Pe,je,fe,Be,Ee,ze,ke,We,qe,_e,Ge,Ne,Je,He,Ve,Ke,Xe,Ye,Ze,et,tt];function at(a){const e=Ir.find(t=>t.specId===a.spec.id)??R;return new e(a)}async function Pr(a){const{spec:e,type:t}=a,r=a.siteMeta??e?.meta;if(e&&r){const n=t?[t]:rt(r,e.generic);if(!n.length)return;const s=at({...a,spec:e,siteMeta:r});return await _(n.map(i=>s.getRawPageByType(i,n.length===1)))}return await _((a.genericSpecs??[]).map(n=>{if(!n.meta||!n.generic)return[];const s=t?[t]:rt(n.meta,n.generic);if(!s.length)return[];const i=at({...a,spec:n,siteMeta:n.meta});return s.map(c=>i.getRawPageByType(c,!1,!0))}).flat())}function rt(a,e){if(location.pathname==="/")return a.single?[D.title]:[];const{titleBase:t,readerBase:r}=a,n=location.pathname.split("/").filter(Boolean),s=nt(n,r),i=nt(n,t);if(s&&i)return[D.reader,D.title];const c=[];return!i&&(s!==!1||e)&&c.push(D.reader),!s&&(i!==!1||e)&&c.push(D.title),!c.length&&e?[D.reader,D.title]:c}function nt(a,e){if(!e)return;const t=e.split("/").filter(Boolean),r=t.indexOf("{slug}"),n=r===t.length-1,s=!n&&r!==-1;if(n&&(t.pop(),!t.length))return;const i=a.length-t.length;if(s?i<0:i<=0)return!1;let c=!1;for(let o=0;o<t.length;o++){const l=t[o];if(l[0]!=="{"){if(l!==a[o])return!1;c=!0}}if(c&&i===(s?0:1))return!0}q.PageType=D,q.scrape=Pr}));
|
|
1
|
+
(function(_,F){typeof exports=="object"&&typeof module<"u"?F(exports):typeof define=="function"&&define.amd?define(["exports"],F):(_=typeof globalThis<"u"?globalThis:_||self,F(_._trackkun_={}))})(this,(function(_){"use strict";function F(a){let e=!1;return new Promise((t,r)=>{Promise.all(a.map(async n=>{const s=await n;!e&&s&&(e=!0,t(s))})).then(()=>{e||t(void 0)})})}const it=/(vol(ume)?|season)(\s*|-|\.)(\d+)/i,ot=/^S([1-9])\s/i,lt=/(ch(ap(t(er)?|\.)?|\.)?|#|episode\.?|capitolo\.?|capitulo\.?|bölüm\.?)(\s*|-)(\d+([-~_,.]\d+)?)/i,ct=/\d+([-~_,.]\d+)?/,ut=/[-~_,]/;function ht(a){const e=a.match(it);if(e)return{volStr:e[0],volValueStr:e[4]};const t=a.match(ot);return t?{volStr:t[0],volValueStr:t[1]}:{}}function U(a){if(!a)return;if(!isNaN(+a))return{chap:+a};const{volStr:e,volValueStr:t}=ht(a),r=e?a.replace(e,"").trim():a,n=r.match(lt)?.[6]??r.match(ct)?.[0];if(!n)return;const s=+n.replace(ut,".");if(isNaN(s))return;const i=e&&t&&!isNaN(+t)?+t:void 0;return{vol:i===void 0||i<=0?void 0:i,chap:s}}function pt(){return Math.random().toString(16).slice(2)}async function gt({addListener:a,removeListener:e,transform:t,filter:r,handler:n,onTimeout:s,timeout:i,once:c}){return new Promise(l=>{a(g);const o=()=>c===!0&&e(g),u=i?setTimeout(()=>{o(),l(void 0),s?.()},i):void 0;async function g(p,...h){p=t?t(p):p,p!==void 0&&(!r||r(p,...h))&&(o(),l(p),n?.(p,...h),u&&clearTimeout(u))}})}async function dt(a){return(await gt({addListener:e=>window.addEventListener("message",e),removeListener:e=>window.removeEventListener("message",e),...a}))?.data}async function ft(a){const{receiverWindow:e,timeout:t,targetOrigin:r,event:n,args:s}=a,i={reqId:pt(),event:n,args:s};return(e||window)?.postMessage(i,r??"*"),(await dt({filter:c=>c?.data?.resId===i.reqId,timeout:t??3e4,once:!0}))?.result}function B(a,e){return ft({event:"tk:fetchResult",args:{url:a},timeout:e?.timeoutMs??15e3})}async function A(a,e,t){const r=await t(()=>{a=0});if(r!==void 0)return r;if(!(a<=0))return await new Promise(n=>{setTimeout(async()=>{const s=await A(a-1,e,t);n(s)},e)})}async function z(a,e,t=0){const r=e.root??document.documentElement,n=e.timeoutMs??1e4;return A(e.lazy===!0?n/50:0,50,()=>{const s=e.all===!0?Array.from(r.querySelectorAll(a)):r.querySelector(a)??void 0;return(e.all?!s?.length:!s)?void 0:s})}function q(a,e){if(a instanceof HTMLOptionElement){const t=a.parentElement instanceof HTMLOptGroupElement?a.parentElement.parentElement:a.parentElement;if(!t||!(t instanceof HTMLSelectElement))return;const r=a.getAttribute("value")||"";if(t.value===r)return;t.value=r,t.dispatchEvent(new Event("change"));return}a instanceof HTMLAnchorElement&&e?.preventDefault!==!1&&a.addEventListener("click",t=>t.preventDefault(),{once:!0}),a.click(),a.dispatchEvent(new PointerEvent("pointerdown",{bubbles:!0,cancelable:!0,pointerType:"mouse",button:0})),a.dispatchEvent(new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:window,button:0}))}function le(a,e){if(typeof a.checkVisibility=="function")return a.checkVisibility({opacityProperty:!0,visibilityProperty:!1,contentVisibilityAuto:!1});const t=window.getComputedStyle(a);if(t.display==="none"||t.opacity&&parseFloat(t.opacity)<.1)return!1;if(!e)return!0;const r=a.parentElement;return!r||r===e?!0:le(r,e)}function mt(a,e){return a>=280&&e>=50||a>=160&&e>=280}var J;(function(a){a[a.manga=1]="manga",a[a.novel=2]="novel",a[a.anime=3]="anime"})(J||(J={}));async function vt(a,e){const t=["NAV","ASIDE","FOOTER","HEADER","BR","HR","BUTTON","A"],r="img:not(nav img, header img, footer img, aside img), canvas",n=e?.timeoutMs,s=e?.include,i=e?.paraSel,c=!s||s.includes(J.manga),l=!s||s.includes(J.novel);let o=0;return await A(n/50,50,()=>{const h=u();if(h){if(c&&p(h,e?.validateImgSize))return J.manga;if(l&&o++%3===0&&g(h))return J.novel}});function u(){for(const h of a.split(",")){const m=document.querySelector(h);if(m)return m}}function g(h){const m=[`p:not(${t.map(w=>`${w} p`).join(",")})`,i].filter(Boolean).join(",");if(!h.querySelector(m)&&(!i||!h.matches(i)))return!1;let v=0,d=0,b=0;return y(h);function y(w){const $=w.tagName;if(t.includes($)||!le(w)||window.getComputedStyle(w).position==="fixed")return!1;if($==="P"||i&&w.matches(i))return v+=w.textContent.split(" ").filter(Boolean).length,d++,b=0,!c&&v>50||d>10&&v>120||d>5&&v>250||v>400;d>0&&++b>4&&(d=0,v=0);const R=Array.from(w.children);for(let x=0;x<R.length;x++)if(y(R[x]))return!0;return!1}}function p(h,m){const v=Array.from(h.querySelectorAll(r));if(m===!1)return v.length>0;const d=Math.min(window.innerWidth*.9,500);let b=0;for(let y=0;y<v.length;y++){const w=v[y];if(!le(w,h))continue;const{width:$,height:R}=w.getBoundingClientRect();if(mt($,R)&&($>=d||(b+=R,b>=d)))return!0}return!1}}function G(a){if(a)try{return JSON.parse(a)}catch{return}}const ye={text:$e,attr:$t,"attr-contain":xt,value:St,row:Ct,"bg-image":Dt,json:Mt},wt={pattern:Tt,remove:Pt,atob:It,json:xe};function f(a,e){if(a)return be(a,e,bt)}function K(a,e){if(a)return be(a,e,Rt)}function be(a,e,t){if(!a)return;const r=a.split("||").map(n=>n.trim()).filter(Boolean);for(const n of r){const s=yt(n);if(!s)continue;const i=t(e??document.documentElement,s);if(i)return i}}function yt(a){const[e,t,...r]=a.split("|");if(!t)return;const n=t?.startsWith("[")&&t.endsWith("]")?t.substring(1,t.length-1).split(","):[t];return{selector:e||void 0,extractors:n.map(ce),transformers:r.map(ce)}}function ce(a){const e=a.indexOf(":"),t=e!==-1;return{fn:t?a.substring(0,e):a,param:t?a.substring(e+1):""}}function bt(a,e){if(!e.selector)return Re(a,e);const t=Bt(e.selector);for(const r of t){const n=Array.from(a.querySelectorAll(r));for(const s of n){const i=Re(s,e);if(i)return i}}}function Rt(a,e){const t=e.selector?Array.from(a.querySelectorAll(e.selector)):[a],r=[];for(const n of t)for(const s of e.extractors){const i=ye[s.fn],c=i(n,s.param),l=c?ue(c,e.transformers):void 0;if(l){r.push(l);break}}if(r.length)return r}function Re(a,e){for(const t of e.extractors){const r=ye[t.fn],n=r(a,t.param);if(n)return ue(n,e.transformers)}}function ue(a,e){let t=a;for(const r of e){if(!t)return;const n=wt[r.fn];n&&(t=n(t,r.param)?.trim())}return t}function $e(a){return Array.from(a.childNodes).filter(e=>e.nodeType===3).map(e=>N(e.textContent)).filter(Boolean).join(" ").trim()||N(a.textContent)}function $t(a,e){return N(a.getAttribute(e))}function xt(a,e){let t=a.getAttribute(e);if(!t){const r=a.getAttributeNames().find(n=>n.includes(e));r&&(t=a.getAttribute(r))}return N(t)}function St(a){return a.value}function Ct(a,e){if(!e)return;const t=N(a.textContent)?.toLowerCase(),r=e.toLowerCase();if(!(t!==r&&t!==`${r}:`))return N(a.nextElementSibling?.textContent??a.nextSibling?.textContent)}function Dt(a){const e=getComputedStyle(a).backgroundImage;if(!(!e||!e.startsWith("url(")))return e.slice(5,-2)||void 0}function Mt(a,e){const t=$e(a);if(t)return xe(t,e)}function xe(a,e){const t=ee(G(a),e),r=typeof t;if(r==="string")return N(t)||a;if(r==="number"||r==="boolean")return t+""}function ee(a,e){if(!a||!e)return;const t=e.indexOf("."),r=t!==-1,n=r?e.substring(0,t):e,s=r?e.substring(t+1):void 0;try{const i=a[n];return s?ee(i,s):i}catch{return}}function N(a){if(a)return a?.replace(/(\n|\t)/g," ").trim()||void 0}function Tt(a,e){if(e)try{return a.replace(new RegExp(e,"i"),"$1")}catch{}return a}function Pt(a,e){if(e)try{return a.replaceAll(new RegExp(e,"gi"),"")}catch{}return a}function It(a){try{return window.atob(a)}catch{return a}}function Bt(a){const e=[];let t="",r=!1;for(let s=0;s<a.length;s++){const i=a[s];if(i==="["?r=!0:i==="]"&&(r=!1),i===","&&!r){const c=t.trim();c.length>0&&e.push(c),t=""}else t+=i}const n=t.trim();return n.length>0&&e.push(n),e}function he(a,e){const t=document;if(a.startsWith("//")){const r=document.evaluate(a,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;return r instanceof HTMLElement?r:void 0}return t.querySelector(a)??void 0}var jt=(a=>(a[a.reading=1]="reading",a[a.paused=2]="paused",a[a.plan=3]="plan",a[a.completed=4]="completed",a[a.dropped=5]="dropped",a[a.deleted=6]="deleted",a))(jt||{}),At=(a=>(a[a.ok=1]="ok",a[a.hidden=2]="hidden",a[a.deleted=3]="deleted",a))(At||{}),Et=(a=>(a[a.aggregator=0]="aggregator",a[a.scanlator=1]="scanlator",a))(Et||{}),Se=(a=>(a.id="id",a.name="name",a.slug="slug",a))(Se||{}),te=(a=>(a.blank="about:blank",a.title="meta.title",a.reader="meta.reader",a))(te||{}),V=(a=>(a[a.manga=1]="manga",a[a.novel=2]="novel",a[a.anime=3]="anime",a))(V||{}),Lt=(a=>(a[a.pending=0]="pending",a[a.completed=1]="completed",a[a.offline=2]="offline",a[a.incompat=3]="incompat",a))(Lt||{});function X(a=0){return new Promise(e=>setTimeout(e,a))}function ae(a){if(a)return parseInt(a.replace(/\D*/,""))||void 0}const Ut=/\d+[a-z]+\d+/i,zt=/[a-z]+\d+[a-z]+/i,Ot=/^\d{5,}$/;function Ce(a){if(!a)return;const e=[];a.split(/[-_]/).forEach(r=>{const n=r.split(".").filter(s=>s&&!zt.test(s)&&!Ut.test(s)&&!Ot.test(s)).join(".");n&&e.push(n)});const t=e.join(" ");return U(t)}async function pe(a,e){return new Promise(t=>{const r=new Image;r.crossOrigin="anonymous",r.onerror=()=>t(void 0),r.onload=async()=>{if(r.naturalWidth<=1){t(void 0);return}const n=Math.max(1,r.naturalWidth/(e?.maxWidth??240)),s=r.naturalWidth/n,i=r.naturalHeight/n,c=document.createElement("canvas"),l=c.getContext("2d");c.width=s,c.height=i;const o=/iPad|iPhone|iPod/.test(navigator.userAgent);try{l.drawImage(r,0,0,s,i);const u=((e?.fixCanvas!==!1?qt():void 0)??HTMLCanvasElement.prototype.toDataURL).call(c,o?"image/jpeg":"image/webp",o?.99:.8);t(u.length<1e3?void 0:u.split(",").slice(-1)[0])}catch{t(void 0)}},r.src=a})}function qt(){const a=document.createElement("template");a.innerHTML="<iframe></iframe>";const e=a.content.querySelector("iframe");if(e){e?.style.setProperty("style","none"),document.body.appendChild(e);const t=e?.contentWindow?.HTMLCanvasElement?.prototype?.toDataURL;if(document.body.removeChild(e),t)return t}return HTMLCanvasElement.prototype.toDataURL}async function Nt(a,e=240){const t=await kt(a);if(t)return await new Promise(async r=>{const n=pe(t,{maxWidth:e,fixCanvas:!1}),s=setTimeout(()=>r(void 0),100),i=await n;clearTimeout(s),r(i)})}async function kt(a){if(a.startsWith("blob:"))return a;try{const e=await fetch(a);if(e.status>=400)return;const t=await e.blob();return t.size<1e3?void 0:URL.createObjectURL(t)}catch{return}}function D(a,e){if(e==="")return a;if(!e)return;const t=e.split("||").map(r=>r.trim()).filter(Boolean);for(const r of t){const[n,...s]=r.split("|"),i=ee(a,n);if(typeof i=="number"||i){if(typeof i!="string")return i;const c=i.replace(/(\n|\t)/g," ").trim();if(c){const l=ue(c,s.map(ce));if(l)return l}}}}function re(a){if(a?.startsWith("window")){const e=a.indexOf(".");return e===-1?void 0:D(window,a.substring(e+1))}return G(a?f(a):document.querySelector("pre")?.textContent)}function E(a,e){if(typeof a=="number")return e?e(a):a}function T(a,e){if(typeof a=="string")return e?e(a):a}function Y(a,e){const t=a.map(o=>({...o,vol:o.vol===0?void 0:o.vol}));t.sort((o,u)=>o.vol===void 0||u.vol===void 0?u.chap-o.chap:u.vol-o.vol||u.chap-o.chap);const r={},n={};for(let o=t.length-1;o>=0;o--){const u=t[o],g=u.group??"";r[g]=(r[g]??0)+1;const p=u.lang??"";u.vol!==void 0?n[p]=u.vol:n[p]!==void 0&&(u.inferVol=n[p])}const s=[],i={},c=e?.preferGroup,l=o=>o.lang??"";for(const o of t){const u=l(o),g=i[u],p=s[g];if(!(p&&p.chap===o.chap&&(p.vol===o.vol||p.vol===void 0||o.vol===void 0))){i[u]=s.length,s.push(o);continue}if(!c){p.vol===void 0&&o.vol!=null&&(s[g]=o);continue}p.group!==c&&(o.group==c||p.group&&!o.group||r[o.group??""]>r[p.group??""])&&(s[g]=o)}return s}const Wt=/^(a|an|one|last|\d+)\s*([a-z]+)/,_t=/^(\d+)\s*([a-z]+)/,Ft=/^\d+$/,Jt=[{seconds:1,short:"s",locales:{en:"sec",vi:"gi\xE2y",tr:"ikinci",es:"segundo",ja:"\u79D2",ko:"\uCD08",zh:"\u79D2",id:"detik",pt:"segundo"}},{seconds:60,short:"m",locales:{en:"min",vi:"ph\xFAt",tr:"dakika",es:"minuto",ja:"\u5206",ko:"\uBD84",zh:"\u5206",id:"menit",pt:"minuto"}},{seconds:3600,short:"h",locales:{en:"hour",vi:"gi\u1EDD",tr:"saat",fr:"heure",it:"ora",es:"hora",ja:"\u6642\u9593",ko:"\uC2DC\uAC04",zh:"\u5C0F\u65F6",id:"jam",pt:"hora"}},{seconds:86400,short:"d",locales:{en:"day",vi:"ng\xE0y",tr:"g\xFCn",fr:"jour",it:"giorno",es:"d\xEDa",ja:"\u65E5",ko:"\uC77C",zh:"\u5929",id:"hari",pt:"dia"}},{seconds:604800,short:"w",locales:{en:"week",vi:"tu\u1EA7n",tr:"hafta",fr:"semaine",it:"settimana",es:"semana",ja:"\u9031\u9593",ko:"\uC8FC",zh:"\u5468",id:"minggu",pt:"semana"}},{seconds:2592e3,short:"mo",locales:{en:"month",vi:"th\xE1ng",tr:"ay",fr:"mois",it:"mese",es:"mes",ja:"\u30F6\u6708",ko:"\uAC1C\uC6D4",zh:"\u6708",id:"bulan",pt:"m\xEAs"}},{seconds:31536e3,short:"y",locales:{en:"year",vi:"n\u0103m",tr:"yil",fr:"an",it:"anno",es:"a\xF1o",ja:"\u5E74",ko:"\uB144",zh:"\u5E74",id:"tahun",pt:"ano"}}],Vt=["a","an","one","last"];function De(a,e="en"){if(!a)return;const t=a.toLowerCase().trim().replace(/ago$/,"").trim(),r=Date.now();if(t.includes("now"))return r;if(t.includes("yesterday"))return r-864e5;if(Ft.test(t))return Number(t);const n=new Date(t);if(!isNaN(n.getTime())){const i=n.getTime();return n.getHours()===0&&n.getMinutes()===0&&n.getSeconds()===0?Math.min(r,i+432e5):i}const s=e==="en"?t.match(Wt):t.match(_t);if(s){const[,i,c]=s,l=e==="en"&&Vt.includes(i)?1:Number(i);if(isNaN(l))return;const o=Jt.find(u=>c===u.short||u.locales[e]&&c.startsWith(u.locales[e])||c.startsWith(u.locales.en));if(o)return r-l*o.seconds*1e3}}function Ht(a,e=location.origin){if(!a)return;const t=new URL(a.startsWith("//")?`${location.protocol}${a}`:a,location.origin+location.pathname).toString();return t.startsWith(e)?t.replace(e,""):t}function k(a,{slug:e,id:t,lang:r}){if(!a)return"/";let n=a;return e&&(n=n.replace("{titleSlug}",e)),t&&(n=n.replace("{titleId}",t)),r&&(n=n.replace("{lang}",r)),n.endsWith("/")||(n+="/"),n.startsWith("/")||(n="/"+n),n}function ge(a){if(!a)return;let e=a;e.startsWith("//")&&(e=`https:${e}`);try{return new URL(e)}catch{return}}function L(a){if(!(!a||typeof a!="string"))return a.includes("//")?ge(a)?.pathname:a}function Gt(a,e){const t=[...e],r=[];let n=!1,s=0;const i=Math.min(a.length,100);for(let l=0;l<i;l++){if(s>=10/2){const h=10-r.length;if(h>0){const m=l+h<=a.length?a.slice(l,l+h):t.slice(0,h);r.push(...m)}break}const o=a[l],u=o.id!==void 0,g=t.findIndex(h=>u&&h.id===o.id||h.slug===o.slug||h.name==o.name),p=g===-1?void 0:t.splice(g,1)[0];!p||p.chapters[0]?.chap!==o.chapters[0]?.chap?(n=!0,r.push({...o,changed:!0})):(s++,r.push(o))}if(!n)return{hasMore:!1,rawReleases:[]};if(r.length<=10)return{hasMore:!!a[a.length-1]?.changed,rawReleases:r};const c=[];for(let l=0;l<r.length;l++){const o=r[l];(o.changed||l<10)&&c.push(o)}return{hasMore:e.length<2||e.length-t.length<2,rawReleases:c}}function Kt(a,e){const t={};return a.forEach(r=>{const n=r.chapters.reduce((s,i)=>{const c=i.lang||e||"";return s[c]||(s[c]=[]),s[c].push(i),s},{});Object.entries(n).forEach(([s,i])=>{const c=`${r.slug}:${s}`;t[c]?(t[c].chapters.push(...i),Y(t[c].chapters)):t[c]={...r,lang:s===""?void 0:s,chapters:i}})}),Object.values(t)}function Me(a,e){const t=a[0]===e?a.substring(1):a;return t[t.length-1]===e?t.substring(0,t.length-1):t}var M=(a=>(a.title="title",a.reader="reader",a.releases="releases",a.chapters="chapters",a.search="search",a))(M||{}),Xt=Object.defineProperty,Yt=(a,e,t)=>e in a?Xt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,j=(a,e,t)=>Yt(a,typeof e!="symbol"?e+"":e,t);class ne{constructor(e){j(this,"headless"),j(this,"siteId"),j(this,"spec"),j(this,"siteMeta"),j(this,"tags"),j(this,"context"),j(this,"isGeneric",!1),j(this,"methodsMap",{[M.title]:()=>this.getRawTitleData(),[M.reader]:()=>this.getRawReaderData(),[M.releases]:()=>this.getRawReleasesData(),[M.search]:()=>this.getRawSearchData(),[M.chapters]:()=>this.getRawChaptersData()}),j(this,"normalizedTagsMap"),this.siteId=e.siteId,this.spec=e.spec,this.siteMeta=e.siteMeta,this.tags=e.tags,this.context=e.context??{},this.headless=e.headless===!0}async getRawPageByType(e,t=!1,r=!1){this.isGeneric=r;const n=await this.methodsMap[e](),s=!n&&(e===M.title||e===M.reader)&&await Zt(this.spec);if(!((r||!t)&&!n&&!s))return{type:e,is404:s,specId:this.spec.id,siteName:this.getSiteName(e,n),favUrl:ta(),htmlLang:aa(),url:location.href,data:this.siteMeta.oneshot&&n?this.transformOneshot(e,n):n,spec:this.spec,context:this.context}}transformOneshot(e,t){if(e==="title"){const r=t.firstUrl;if(!r)return t;const{slug:n}=this.parseReaderUrl(this.siteMeta.readerBase,new URL(r).pathname,r);return{...t,hasMoreChapters:void 0,chapters:[{chap:0,slug:n}]}}if(e==="reader"){const r=t;return{...r,chap:0,title:{...r.title,hasMoreChapters:void 0,chapters:[{chap:0,slug:r.slug}]}}}return t}parseReaderUrl(e,t,r){const n=!this.siteId,s=t.includes("/");let i=e;if(s&&!i&&(i=this.siteMeta.readerBase),i.startsWith("/")||(i="/"+i),i.endsWith("/")||(i=i+"/"),!s)return n?{basePath:"",slug:`${i}${t}`}:{basePath:i,slug:t};const c=i.includes("{");let l=t;if(l[0]!=="/"&&(l.includes("/")||n&&!c))try{l=new URL(t,location.href).pathname}catch{}if(l.endsWith("/")&&(l=l.slice(0,-1)),c){const o=i.split("/").filter(Boolean),u=l.split("/").filter(Boolean);if(o.length<u.length){const g=u[o.indexOf("{lang}")]?.toLowerCase(),p=u[o.indexOf("{titleId}")],h=u[o.indexOf("{titleSlug}")];if(n)return{basePath:"",slug:l,lang:g,titleId:p,titleSlug:h};if(i=i.replace("{lang}",g).replace("{titleId}",p).replace("{titleSlug}",h),l.startsWith(i))return{basePath:i,slug:l.replace(i,""),lang:g,titleId:p,titleSlug:h}}}else if(!n&&l.startsWith(i))return{basePath:i,slug:l.replace(i,"")};return{basePath:"",slug:l}}parseTitleUrl(e){if(typeof e!="string")return{};const t=L(e);if(t===void 0)return{};if(this.siteMeta.single)return{slug:Me(t,"/")};const r=t?.split("/").filter(Boolean);if(!r?.length)return{};const n=this.siteMeta.titleBase.split("/").filter(Boolean),s=n.indexOf("{slug}");return(s===-1?r.length-n.length>=1:r.length===n.length)?{id:r[n.indexOf("{id}")],slug:this.siteId?s===-1?r.slice(n.length).join("/"):r[s]:t}:{slug:t}}finalizeRawReleasesData(e){const t=this.spec.releases?.title?.lang?this.siteMeta.defaultLang:void 0,r=Kt(e.rawReleases,t);if(r.length)return this.context.oldRawReleases?Gt(r,this.context.oldRawReleases):{rawReleases:r,hasMore:!0}}getTagIdsFromNames(e){if(!e?.length)return;const t=this.normalizedTagsMap??(this.normalizedTagsMap=Qt(this.tags)),r=e.map(n=>t[de(n)]).filter(Boolean);return r.length===0?void 0:Array.from(new Set(r)).sort((n,s)=>n-s)}getSiteName(e,t){if(t&&this.siteMeta.single){if(e===M.title)return t.name;if(e===M.reader)return t.title.name}const r=this.spec.name,n=(r&&f(r))??f('meta[property="og:site_name"]|attr:content');return n&&n.length>2?n:void 0}}j(ne,"specId"),j(ne,"siteId");function Qt(a){const e={};return a.forEach(({id:t,name:r,altNames:n})=>{e[de(r)]=t,n&&n.forEach(s=>{e[de(s)]=t})}),e}function de(a){const e=a.toLowerCase().replaceAll(/[^a-z0-9\s]/gi,"").trim().replaceAll(/\s+/g," ");return e[e.length-1]==="s"?e.substring(0,e.length-1):e}async function Zt(a){return ea()===404||a[404]&&await z(a[404],{lazy:!0,timeoutMs:5e3})?!0:document.title.toLowerCase().includes("not found")}function ea(){try{return window.performance.getEntries().find(a=>a.entryType==="navigation")?.responseStatus}catch{return}}function ta(){return f('link[rel="icon"][sizes="32x32"],link[rel="icon"][sizes="192x192"],link[rel="apple-touch-icon"]|attr:href || link[rel="icon"]|attr:href')}function aa(){return f("html|attr:lang")||"en"}class C extends ne{async getRawReleasesData(){const e=await this.getRawReleases();if(e?.length)return this.finalizeRawReleasesData({rawReleases:e})}async getRawReleases(){const e=this.spec?.releases?.title;if(!e)return;if(e.json){const c=this.queryJsonRawReleases(T(e.json),e)?.filter(l=>l.chapters.length);return c?.length?c:void 0}const t=e.chapter,r=await z(e.sel,{lazy:!0,all:!0});if(!r?.length)return;const n=Date.now(),s=r.slice(0,100).map(c=>{const l=f(e.url??(c.tagName==="A"?"|attr:href":"a|attr:href"),c),o=L(l),u=f(e.name,c)??f("img|attr:alt",c),g=f(e.at,c);if(!o||!u)return;const p=De(g,this.siteMeta.defaultLang);return{titleEl:c,id:f(e.id,c),path:o,name:u,lang:f(e.lang,c)?.toLowerCase(),at:p?Math.min(p,n):void 0}}).filter(Boolean);if(!s.length)return;const i=[];return await Promise.all(s.map(async c=>{const{path:l,titleEl:o,lang:u,at:g,...p}=c,{id:h,slug:m}=this.parseTitleUrl(l);if(!m)return;const v=p.id||h,d=this.queryChapters({chapterSpec:t,root:o,titleInfo:{id:v,slug:m,name:c?.name,lang:u}});d&&i.push({slug:m,chapters:u||g?d.map(b=>({...b,elIndex:void 0,lang:b.lang??u,ts:b.ts??g})):d,...p,id:v})})),i}getRawTitleData(){return this.getTitleData(this.spec.title)}async getTitleData(e){if(!e||!await this.isTitlePage(e))return;const{id:t,slug:r}=this.parseTitleUrl(location.pathname);if(this.siteMeta.single?r===void 0:!r)return;const n=t||f(e.id),s=typeof e.chapter=="string"?{sel:e.chapter}:e.chapter,i=(await this.getChaptersResult(e.chapter,{lazy:!!this.context.includeHiddenChapters||(s?.lazy??!0),titleInfo:{id:n,slug:r,name:f(e.name??"h1|text")},includeHiddenChapters:this.context.includeHiddenChapters}))?.chapters,c=f(e.name??"h1|text");if(!c)return;const l=await this.getValidImgSrc(e.img,c),o=l&&this.context.includeImgBytes?await Nt(l):void 0,u=this.getFirstChapterUrl(),g=e.firstBtn,p=K(e.tags)?.map(v=>v.split(",")).flat().map(v=>v.trim()).filter(Boolean),h=f(e.type),m=K(e.langs)?.map(v=>v.toLowerCase());return{id:n||f(e.id),url:location.origin+location.pathname,slug:r,name:c,langs:m?.length?m:e.langs&&this.siteMeta.defaultLang?[this.siteMeta.defaultLang]:void 0,tags:this.getTagIdsFromNames([...p??[],...h?[h]:[]]),chapters:i??[],hasMoreChapters:!i?.length&&!e.chapter||(e.hasMore?!!document.querySelector(e.hasMore):void 0)||(!this.context.includeHiddenChapters&&s?.allBtn?!!he(s.allBtn):void 0),img:l,imgBytes:o,firstUrl:u,firstBtn:!u&&g&&document.querySelector(g)?g:void 0,trackers:this.getTrackersMap(e.trackers)}}getTrackersMap(e){if(!e)return;const t=typeof e=="boolean"||e.mal===""?'a[href*="myanimelist.net"]|attr:href':e.mal,r=typeof e=="boolean"||e.anl===""?'a[href*="anilist.co"]|attr:href':e.anl,n=f(t),s=f(r);if(!n&&!s)return;const i={};return n&&(i.mal=n.split("?")[0].split("#")[0].split("manga/").slice(-1)[0].split("/")[0]),s&&(i.anl=s.split("?")[0].split("#")[0].split("manga/").slice(-1)[0].split("/")[0]),i}getFirstChapterUrl(){const e=f(this.spec.title?.first);if(e){if(e.startsWith("http"))return e;try{return new URL(e,location.href).href}catch{return}}}getValidImgSrc(e,t){return A(33,30,()=>{const r=f(e)||f(`img[alt="${t.replaceAll('"','\\"')}"]|[attr:data-src,attr-contain:src]`);return!r||r.startsWith("data:")?void 0:document.querySelector(`img[srcset*="${r}"]`)?r.split(" ")[0]:r})}resolveReaderTitleSpec(){const e=this.spec.reader?.title;return typeof e=="string"?{sel:e}:e}getRawReaderTitleData(e){const t=this.resolveReaderTitleSpec();if(!t)return;const r=t.sel?document.querySelector(t.sel)??void 0:void 0;if(t.sel&&!r)return;const n=f(t.name??"|text",r);if(!n)return;const s=Ht(f(t.img,r));if(e?.slug){let o=this.siteMeta.titleBase;if(e?.id&&(o=o.replace("{id}",e.id)),!o.includes("{"))return o=o.includes("{slug}")?o.replace("{slug}",e.slug):`${o}/${e.slug}`,this.siteMeta.trailing&&!o.endsWith("/")&&(o+="/"),{name:n,img:s,url:new URL(o,location.origin).href,slug:e.slug,id:e.id||f(t.id,r)}}const i=f(t.url??"|attr:href",r),{slug:c,id:l}=this.parseTitleUrl(i);if(!(!n||!i||(this.siteMeta.single?c===void 0:!c)))return{name:n,img:s,url:new URL(i,location.origin).href,slug:c,id:l||f(t.id,r)||e?.id}}async getRawReaderData(){const{spec:e,siteMeta:t}=this;if(!e?.reader||!await this.isReaderPage(e.reader,!!e.generic))return;const r=await this.getReaderType(e.reader);if(!r)return;const n=this.parseReaderUrl(t.readerBase,location.pathname,location.href),{slug:s,basePath:i,lang:c}=n,l=this.getRawReaderTitleData({id:n.titleId,slug:n.titleSlug});if(!l)return;const o=f(e.reader.group),{id:u,slug:g}=l,p=e.reader?.chapter,h=!!this.context.disableLazyChapters,m=!!this.context.includeHiddenChapters,v=(await this.getChaptersResult(p,{titleInfo:{id:u,slug:g,name:l.name,lang:c},lazy:m||!h,includeHiddenChapters:m,timeoutMs:m?3e3:25e3,includeIndex:!0,basePath:i}))?.chapters,d=f(e.reader.label??"h1|text"),b=d?.toLowerCase().replace(l.name.toLowerCase(),"").trim(),y=this.siteMeta.oneshot?{chap:0}:b?U(b):void 0;if(!y)return;const w=e.reader.prev?this.findAdjacentChapter({spec:e.reader.prev,basePath:i,titleUrl:l.url,titleName:l.name}):void 0,$=e.reader.next?this.findAdjacentChapter({spec:e.reader.next,basePath:i,titleUrl:l.url,titleName:l.name}):void 0,R=u??(()=>{const x=this.spec.reader?.title;if(typeof x=="string"||!x?.id)return;const S=x.sel?document.querySelector(x.sel)??void 0:void 0;if(!(x.sel&&!S))return f(x.id,S)})();return this.finalizeRawReaderData({...y,contentType:r,name:r===V.novel&&d&&d.split(" ").filter(Boolean).length>(d.toLowerCase().includes("vol")?4:2)?d:void 0,lang:c??f(e.reader.lang)?.toLowerCase()??(e.reader.lang?this.siteMeta.defaultLang:void 0),slug:s,basePath:i,group:o??f(e.reader.group),imgs:K(e.reader.imgs),title:{id:R,url:l.url,slug:g,name:l.name,langs:c?[c]:void 0,img:l.img,chapters:v??[],hasMoreChapters:!v?.length&&!m&&!!this.context.disableLazyChapters&&!!(typeof p=="string"||p?.sel)}},{prev:w,next:$})}async getRawChaptersData(){const e=this.siteMeta.chapters;if(e===te.blank)return;const t=this.context.lang,r=e===te.reader,n=!e||e===te.title,s=r?(await this.getRawReaderData())?.title:n?await this.getRawTitleData():void 0,i=await(async()=>{if(s?.chapters.length&&!s.hasMoreChapters)return s.chapters;const l={id:s?.id??this.context.rawId,slug:s?.slug??this.context.titleSlug,name:s?.name,lang:t},o=this.spec.chapters;if(o?.chapter?.json)return await this.getRawChaptersFromJson({chapterSpec:o.chapter,pagingSpec:o.paging,titleInfo:l});const u=o?.chapter??(n?this.spec.title?.chapter:void 0),g=o?.pages;return u?await this.getRawChaptersFromDom({chapterSpec:typeof u=="string"?{sel:u}:u,pagesSpec:g,titleInfo:l}):s?.chapters})();if(!i)return;const c=t?i.filter(l=>!l.lang||l.lang===t):i;return{chapters:c,title:s?{...s,chapters:[]}:await this.getTitleData(this.spec.chapters?.title),hasMore:!1,asc:!1,total:c.length}}async getRawChaptersFromDom({chapterSpec:e,pagesSpec:t,titleInfo:r}){const n=k(this.siteMeta.readerBase,r),s=await this.getChaptersResult(e,{titleInfo:r,lazy:!0,includeHiddenChapters:!0,basePath:n});if(!s||!t)return s?.chapters;const i=s.chapters,c=this.context.after??this.context.startAfter;if(c&&i[i.length-1].chap-1<=c.chap)return i;const l=ae(f(t.total));if(l&&s.size>=l)return i;let o=ae(f(t.lastPage));if(o&&o<=1||(o??(o=l?Math.ceil(l/s.size):void 0),!o))return i;let u=i[0]?.slug;const g=async()=>{await X(100);for(let w=0;w<140;w++){await X(50);const $=this.queryChapters({chapterSpec:e,titleInfo:r,basePath:n}),R=$?.[0].slug;if(!(!R||R===u))return u=R,$}};if(!c){let w=1;const $=()=>{if(t.nextBtn){const R=document.querySelector(t.nextBtn);if(R)return R}if(t.sel){const R=w+1,x=Array.from(document.querySelectorAll(t.sel)).find(S=>ae(f(m,S))===R);if(x)return x}};for(let R=2;R<=o;R++){const x=$();if(!x)break;q(x),w++;const S=await g();if(!S)break;i.push(...S)}return this.organizeChapters(i)}const p=c.chap;if(p>=i[i.length-1].chap)return i;if(p<=1&&t.lastBtn){const w=document.querySelector(t.lastBtn);return w?(q(w),await g()):void 0}const h=Array.from({length:o},()=>{});h[0]=i;const m=t?.num??"|text";let v=0,d=0,b=o-1;const y=o-1;for(let w=0;w<y;w++){const $=h[d],R=h[b],x=$?.[0]?.chap??i[0].chap,S=R?.[R.length-1]?.chap??1,ie=1-(p-S+1)/(x-S+1),H=b-d+1;let I=Math.min(b,d+Math.ceil(ie*H));I===b&&R?I--:I===d&&I++;const O=[],we=t.sel?Array.from(document.querySelectorAll(t.sel)):void 0;if(we?.length&&we.length>1&&we.forEach(P=>{const oe=ae(f(m,P));oe&&O.push({el:P,index:oe-1})}),!O.length){if(I>v&&t.nextBtn){const P=document.querySelector(t.nextBtn);P&&O.push({index:++v,el:P})}else if(I<v&&t.prevBtn){const P=document.querySelector(t.prevBtn);P&&O.push({index:--v,el:P})}}if(t.lastBtn&&b===o-1&&!h[h.length-1]){const P=document.querySelector(t.lastBtn);P&&O.push({el:P,index:o-1})}if(!O.length)return;const Z=O.find(P=>P.index===I)??O.sort((P,oe)=>Math.abs(I-P.index)-Math.abs(I-oe.index))[0];if(h[Z.index]||Z.index<=d||Z.index>=b&&R)return $;q(Z.el),v=Z.index;const W=await g();if(!W)return;if(W[0].chap>p&&p>=W[W.length-1].chap)return W;if(h[v]=W,W[0].chap<=p?b=v:d=v,Math.abs(b-d)<=1)return $}}async getRawChaptersFromJson({chapterSpec:e,pagingSpec:t,titleInfo:r}){const n=k(this.siteMeta.readerBase,r),s=await this.queryJsonChaptersResult({chapterSpec:e,pagingSpec:t,titleInfo:r});if(!s)return;const{chapters:i,total:c,fetchUrl:l,limit:o}=s;if(!i.length||o>=c||!t||!t.pageKey&&!t.skipKey)return i;const u=this.context.after??this.context.startAfter;if(u&&i[i.length-1].chap-1<=u.chap)return i;const g=t.limitValue??o,p=Math.ceil(c/g),h=g<o,m=h?1:0,v=l&&t.limitKey&&t.limitValue?l.replace(new RegExp(`${t.limitKey}=\\d+`),`${t.limitKey}=${t.limitValue}`):l??location.href,d=(await Promise.all(Array.from({length:p-m},async(b,y)=>{let w=v;t.pageKey?t.pageKey.split("||").map(R=>R.trim()).forEach(R=>{w=w.replace(new RegExp(`(\\?|&)${R}=\\d+`),x=>`${x[0]}${R}=${y+1+m}`)}):t.skipKey&&t.skipKey.split("||").map(R=>R.trim()).forEach(R=>{w=w.replace(new RegExp(`(\\?|&)${R}=\\d+`),x=>`${x[0]}${R}=${(y+m)*g}`)});const $=await this.fetch(w);return this.parseJsonChapters($,{chapterSpec:e,basePath:n})??[]}))).flat();return d.length?this.organizeChapters(h?d:[...i,...d]):i}async getRawSearchData(){const e=this.spec.search,t=this.context.lang;if(!e)return;const r=typeof e.title=="string"?{sel:e.title}:e.title;if(r.json){const o=this.queryJsonRawReleases(T(r.json),r,t);return o?.length?{rawReleases:o}:void 0}e.delay?await X(e.delay):e.loading&&await X(500);const{chapter:n}=r,s=[],i=e.lazy?e.empty||e.loading?550:100:1;let c=0;const l=await A(i,50,()=>{const o=Array.from(document.querySelectorAll(r.sel));if(o.length||e.empty&&document.querySelector(e.empty)||e.loading&&!document.querySelector(e.loading)&&++c>=3)return o});if(l)return await Promise.all(l.map(async o=>{const u=f(r.url??(o.tagName==="A"?"|attr:href":"a|attr:href"),o),g=L(u),p=f(r.name,o)??f("img|attr:alt",o),{slug:h,id:m}=this.parseTitleUrl(g);if(!g||!p||!h)return;const v=f(r.lang,o);v&&t&&v!==t||s.push({id:m||f(r.id,o),slug:h,name:p,img:f(r.img??"img|[attr:data-src,attr-contain:src]",o),lang:v,chapters:n?this.queryChapters({chapterSpec:typeof n=="string"?{sel:n}:n,root:o,titleInfo:{id:m,slug:h,name:p,lang:v}})??[]:[]})})),{rawReleases:s}}queryJsonRawReleases(e,t,r){const n=re(e),s=typeof t=="string"?{sel:t}:t,i=D(n,s.sel);if(!i?.length||!Array.isArray(i))return;const c=[];return i.forEach(l=>{const o=T(D(l,s.lang))?.toLowerCase();if(o&&r&&o!==r)return;const u=D(l,s.url),{id:g,slug:p}=E(u,y=>({id:void 0,slug:y+""}))??this.parseTitleUrl(L(u)),h=T(D(l,s.name));if(!p||!h)return;const m=g||D(l,s.id),v=E(m,y=>y+"")??T(m),d=s.chapter&&typeof s.chapter!="string"?this.parseJsonChapters(l,{chapterSpec:s.chapter,basePath:k(this.siteMeta.readerBase,{id:v,slug:p,lang:o})}):void 0,b=T(D(l,s.img),y=>{try{return new URL(y,location.origin).href}catch{return}});c.push({id:v,slug:p,name:h,lang:o,img:b,chapters:d??[]})}),c}parseJsonChapters(e,t){return this.parseJsonChaptersResult(e,t)?.chapters}parseJsonChaptersResult(e,t){if(!e)return;const r=D(e,t.chapterSpec.sel);if(!r)return;const n=Array.isArray(r)?r:[r];if(!n?.length)return;const s=[];if(n.forEach(c=>{const l=this.parseJsonChapter(c,t);l&&s.push(l)}),!s.length)return;const i=E(D(e,t.pagingSpec?.lastPage));return{chapters:this.organizeChapters(s),limit:n.length,total:i&&i>1?i*n.length:E(D(e,t.pagingSpec?.total))??n.length}}parseJsonChapter(e,{chapterSpec:t,basePath:r}){const n=D(e,t.label),s=E(n,m=>({vol:void 0,chap:m}))??U(T(n));if(!s)return;const i=D(e,t.url),c=T(i)??E(i,m=>m+""),l=c?this.parseChapterUrl(r,c):void 0,o=s.vol??D(e,t.vol),u=E(o)??T(o,m=>+m),g=D(e,t.id),p=D(e,t.at),h=p?new Date(p).getTime():void 0;return{slug:l?.slug,vol:u||void 0,chap:s.chap,id:T(g)??E(g,m=>m+""),lang:T(D(e,t.lang))?.toLowerCase(),group:T(D(e,t.group)),ts:h||void 0}}async queryJsonChapters(e){return(await this.queryJsonChaptersResult(e))?.chapters}async queryJsonChaptersResult(e){const{chapterSpec:t,pagingSpec:r}=e;let n,s;if(typeof t.json=="string"&&(t.json.startsWith("http")||t.json.startsWith("/"))){const c=await this.getFetchResult(this.replaceDynamicParams(t.json,e.titleInfo));if(!c)return;n=c.url,s=c.value}else s=re(T(t.json));const i=this.parseJsonChaptersResult(s,{chapterSpec:t,pagingSpec:r,basePath:k(this.siteMeta.readerBase,e.titleInfo)});return i?{...i,fetchUrl:n}:void 0}replaceDynamicParams(e,t){let r=e;return t.slug&&(r=r.replace("{titleSlug}",t.slug)),t.id&&(r=r.replace("{titleId}",t.id)),t.lang&&(r=r.replace("{lang}",t.lang)),r}queryChapters(e){return this.queryChaptersResult(e)?.chapters}queryChaptersResult({root:e,chapterSpec:t,titleInfo:r,basePath:n,includeIndex:s,group:i,minSize:c}){const l=Array.from((e??document.documentElement)?.querySelectorAll(t.sel));if(c&&l.length<=c)return;const o=(l??[]).map((d,b)=>{const y=d.tagName;return{id:f(t.id,d),url:f(t.url??(y==="A"?"|attr:href":y==="OPTION"?"|attr:value":void 0),d),label:f(t.label??"|text",d)?.toLowerCase(),vol:f(t.vol,d),at:f(t.at,d),lang:f(t.lang,d),group:f(t.group,d),elIndex:b}}),u=r.name?.toLowerCase(),g=u&&!!o[0]?.label?.startsWith(u),p=o.map(({label:d,vol:b})=>{if(!d)return;const y=g?d?.replace(u,"").trim():d,w=U(y);if(!w||w.vol!==void 0||!b)return w;const $=U(b)?.vol;return $?{...w,vol:$}:w}),h=Date.now(),m=[],v=n??k(this.siteMeta.readerBase,r);if(p.forEach((d,b)=>{if(!d)return;const{id:y,url:w,at:$,lang:R,group:x,elIndex:S}=o[b],ie=De($,this.siteMeta.defaultLang),H={...d,id:y,lang:R?.toLowerCase(),group:x,ts:ie?Math.min(h,ie):void 0};s&&(H.elIndex=S);const I=w?this.parseChapterUrl(v,w):void 0;I&&(H.slug=I.slug,I.lang&&(H.lang=I.lang)),m.push(H)}),!!m.length)return{chapters:this.organizeChapters(m,i??this.context.preferGroup),size:m.length}}async getChaptersResult(e,{root:t,titleInfo:r,includeHiddenChapters:n=!1,lazy:s=!0,timeoutMs:i,includeIndex:c,basePath:l,preferGroup:o}){const u=typeof e=="string"?{sel:e}:e,g=u?.sel;if(!u||g===void 0||u.trigger&&!n)return;const p=u?.json?g:this.replaceDynamicParams(g,r);let h;if(n){if(u.trigger){if(h=await z(u.trigger,{timeoutMs:5e3,lazy:!0}),!h)return}else if(u.allBtn){const d=u.allBtn;s?await A(100,100,()=>{const b=he(d);return b?(h=b,!0):(t??document).querySelector(p)||void 0}):h=he(d)||void 0}}if(u?.json){h&&q(h);const d=await this.queryJsonChaptersResult({chapterSpec:u,titleInfo:r});return this.dismissHiddenReaderChapters({chapterSpec:u,triggerEl:h,root:t}),d?{chapters:d.chapters,size:d.total}:void 0}const m=h&&u.allBtn?(t??document.documentElement)?.querySelectorAll(p).length:void 0;let v=0;return await A(s?i?i/10:33:1,300,async()=>{v!==1&&v%10<=1&&h&&(q(h),await X(50)),v+=1;const d=this.queryChaptersResult({chapterSpec:{sel:p,...u},basePath:l,titleInfo:r,includeIndex:c,group:o,minSize:m});if(d)return this.dismissHiddenReaderChapters({chapterSpec:u,triggerEl:h,root:t}),d})}dismissHiddenReaderChapters({chapterSpec:e,root:t,triggerEl:r}){const n=(e.dismiss?(t??document.body).querySelector(e.dismiss):void 0)??r;n&&q(n)}parseChapterUrl(e,t){if(t?.startsWith("#")||t?.startsWith("/#")||t?.includes("javascript"))return;if(t?.startsWith("http")&&!t.includes(`//${location.hostname}/`))return{slug:t};const r=L(t);if(r)return this.parseReaderUrl(e,r,t)}async isTitlePage(e){return!(!e||(e.sel||e.lazy)&&!await z(e.sel??e.name?.split("|")?.[0]??"h1",{lazy:!!e.lazy}))}async isReaderPage(e,t){const r=e?.sel;return t&&!r?!1:!r||!!await z(r,{lazy:!!e.lazy})}async getReaderType(e){const t=e.content;return t?vt(t,{paraSel:e?.para,validateImgSize:!this.headless,timeoutMs:15e3,include:this.isGeneric?[V.novel,V.manga]:this.siteMeta.contentTypes??[V.manga]}):e.imgs||e.imgDivs?V.manga:void 0}findAdjacentChapter({spec:e,basePath:t,titleUrl:r,titleName:n}){if(typeof e=="string"){const o=this.getAdjacentChapterSlug(f(e),{titleUrl:r,basePath:t}),u=Ce(o);return u?{...u,slug:o}:void 0}const s=e.sel?document.querySelector(e.sel)??void 0:void 0;if(e.sel&&!s)return;const i=e.url?this.getAdjacentChapterSlug(f(e.url,s),{basePath:t,titleUrl:r}):void 0,c=f(e.label,s)?.toLowerCase().replace(n.toLowerCase(),""),l=U(c)??Ce(i);if(l)return i===void 0?l:{...l,slug:i}}getAdjacentChapterSlug(e,t){if(!e||e.startsWith("#")||e.startsWith("/#")||e.includes("javascript"))return;const r=L(e);if(r&&!(r===location.pathname||t.titleUrl===r||t.titleUrl===`${location.origin}${r}`))return this.parseReaderUrl(t.basePath,r,e).slug||void 0}finalizeRawReaderData(e,t={}){const{prev:r,next:n}=t,s=e.title.chapters;if(!s.length)return r||n?{...e,prev:r,next:n}:e;let i,c,l,o;for(let u=0;u<s.length&&!(i&&(!r||l)&&!n&&o);u++){const g=s[u];!i&&fe(e,g)?(i=g,c=u):!l&&r&&fe(r,g)?l=g:!o&&n&&fe(n,g)&&(o=g)}return c!==void 0&&(l??(l=s[c+1]),o??(o=s[c-1])),l&&!l.slug&&r?.slug&&(l.slug=r.slug),o&&!o.slug&&n?.slug&&(o.slug=n.slug),i&&!i.slug&&(i.slug=e.slug),{...e,inferVol:i?.inferVol,group:e.group??i?.group,prev:l,next:o}}organizeChapters(e,t){return Y(e,{preferGroup:t??this.context.preferGroup})}getFetchResult(e){return B(e)}async fetch(e){try{const t=await fetch(e,{signal:AbortSignal.timeout(2e4)});return t.ok?await t.json():void 0}catch{return}}}function fe(a,e){return a.slug&&a.slug==e.slug||a.chap===e.chap&&(a.vol===e.vol||a.vol===void 0)}var ra=Object.defineProperty,na=(a,e,t)=>e in a?ra(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,sa=(a,e,t)=>na(a,e+"",t);class Te extends C{async getRawReaderData(){const e=`https://${location.host}/api/`,[t,r]=await Promise.all([B(`${e}manga/info`),B(`${e}read/chapter`)]),n=t?.value,s=r?.value;if(!n||!s)return;const i=this.parseReaderUrl(this.siteMeta.readerBase,location.pathname,location.href);if(!i)return;const c=U(s.readChapter?.title);if(c)return this.finalizeRawReaderData({basePath:i.basePath,slug:i.slug,...c,imgs:s.readChapter.pages.map(l=>new URL(l.image,location.origin).href),title:{url:`${e}/manga/${n.id}`,slug:n.id,name:n.title,tags:this.getTagIdsFromNames([n.type].filter(Boolean)),chapters:this.organizeChapters(n.chapters.map(l=>({slug:l.id,chap:l.number})))}})}}sa(Te,"specId","atsu");var ia=Object.defineProperty,oa=(a,e,t)=>e in a?ia(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,la=(a,e,t)=>oa(a,e+"",t);class Pe extends C{async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=window.pages,r=t?.map(n=>n?.image).filter(Boolean);if(!(!Array.isArray(r)||!r.length))return{...e,imgs:r,isWebtoon:t.some(n=>n.height/n.width>2)}}}la(Pe,"specId","dynasty");var ca=Object.defineProperty,ua=(a,e,t)=>e in a?ca(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ha=(a,e,t)=>ua(a,e+"",t);class Ie extends C{async getRawReaderData(){const e=await super.getRawReaderData();if(!e||!e.imgs?.length)return e;const t=e.imgs[0],r=t.lastIndexOf("/"),n=r===-1?"":t.substring(0,r+1),s=r===-1?t:t.substring(r+1),i=s.substring(s.lastIndexOf(".")),c=T(f(".total_pages|text"),o=>+o)||1,l=Array.from({length:c},(o,u)=>`${n}${u+1}${i}`);return{...e,imgs:l}}}ha(Ie,"specId","imhen");var pa=Object.defineProperty,ga=(a,e,t)=>e in a?pa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,da=(a,e,t)=>ga(a,e+"",t);class Be extends C{async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=this.spec.chapters?.chapter;if(!t)return e;const r=await B(`https://api.spacely.tech/manhwa/comixto/info/${e.title.slug}`);if(!r?.value)return e;const n=this.parseJsonChapters(r.value,{chapterSpec:t,basePath:k(e.basePath,{slug:e.title.slug})});return n?.length?this.finalizeRawReaderData({...e,title:{...e.title,chapters:n}}):e}}da(Be,"specId","inkora");var fa=Object.defineProperty,ma=(a,e,t)=>e in a?fa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,va=(a,e,t)=>ma(a,e+"",t);class je extends C{async getRawTitleData(){const e=await super.getRawTitleData();if(!e)return;const t=this.spec.chapters?.chapter;if(t){const r=await B("https://yuzuki.kagane.org/api/v2/series/{id}");if(r){const n=this.parseJsonChapters(r.value,{chapterSpec:t,basePath:k(this.siteMeta.readerBase,{slug:e.slug})});if(n)return{...e,chapters:n}}}return{...e,hasMoreChapters:!0}}async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=wa();return{...e,title:{...e.title,img:Ae(e.title.slug),chapters:t}}}async getRawSearchData(){const e=await super.getRawSearchData();if(e)return{...e,rawReleases:e.rawReleases.map(t=>({...t,img:Ae(t.slug)}))}}}va(je,"specId","kagane");function Ae(a){return`https://api.${location.host}/api/v1/series/${a}/thumbnail`}function wa(){const a=["initialChapters"],e=Array.from(document.querySelectorAll("script:not([src])"));for(let t=0;t<e.length;t++){const r=e[t].textContent;if(r)for(const n of a){const s=r.indexOf(n);if(s===-1)continue;const i=r.slice(s),c=G(i.slice(i.indexOf("[{"),i.indexOf('}],\\"cached_at')+2).replaceAll("\\",""));if(!c?.length||!Array.isArray(c))return[];try{const l=[];return c.map(o=>{const u=U(o.name);u&&l.push({...u,slug:o.id,ts:o.created?new Date(o.created).getTime():void 0})}),Y(l)}catch{return[]}}}return[]}var ya=Object.defineProperty,ba=(a,e,t)=>e in a?ya(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ra=(a,e,t)=>ba(a,e+"",t);class me extends C{async getRawReleasesData(){const e=this.getNewSiteMeta(this.spec.releases?.title),t=await super.getRawReleasesData();if(t)return{...t,siteMeta:e}}async getRawTitleData(){if(!await this.isTitlePage(this.spec.title))return;const e=this.getNewSiteMeta(this.spec.title,`${location.origin}${location.pathname}`),t=await super.getRawTitleData();if(t)return{...t,siteMeta:e}}async getRawReaderData(){if(!await this.isReaderPage(this.spec.reader,this.spec.generic))return;const e=this.getNewSiteMeta(this.spec.reader?.title),t=await super.getRawReaderData();if(t)return{...t,siteMeta:e}}async getRawSearchData(){const e=this.getNewSiteMeta(this.spec.search?.title),t=await super.getRawSearchData();if(t)return{...t,siteMeta:e}}getNewSiteMeta(e,t){if(t??(t=$a(e)),!t)return;if(!this.siteId){const i={...this.siteMeta,releases:null,titleBase:"",readerBase:"",titleIdType:Se.name,trailing:t.endsWith("/"),defaultLang:f("html|attr:lang")||"en"};return this.siteMeta=i,i}const r=this.extractBasePath(t),n=this.siteMeta;if(n.titleBase===r)return;const s={...n,titleBase:r,readerBase:n.readerBase.replace(n.titleBase,r)};return this.siteMeta=s,s}extractBasePath(e){const t=e.startsWith("/")?e:L(e);return Me(t,"/").split("/").slice(0,-1).join("/")}}Ra(me,"specId","madara");function $a(a){if(!a)return;const e=typeof a=="string",t=e?a:a.sel,r=t?document.querySelector(t)??void 0:void 0;return f(e?"|attr:href":a.url,r)}var xa=Object.defineProperty,Sa=(a,e,t)=>e in a?xa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ca=(a,e,t)=>Sa(a,e+"",t);class Ee extends C{async getRawTitleData(){const e=await super.getRawTitleData();if(!e)return;const t=await Le(this.context.preferGroup),r=new Set;return t.forEach(({lang:n})=>{n&&r.add(n)}),{...e,chapters:t,langs:r.size?Array.from(r):[this.siteMeta.defaultLang||"en"]}}async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=await Le(e.group||this.context.preferGroup),r=t[0]?.lang;return this.finalizeRawReaderData({...e,lang:r,title:{...e.title,chapters:t,langs:r?[r]:void 0}})}}Ca(Ee,"specId","mangaball");async function Le(a){const e=await A(100,50,()=>{try{return ALL_CHAPTERS.length?ALL_CHAPTERS:void 0}catch{return}});if(!e)return[];const t=[];return e.forEach(r=>{r.translations.forEach(n=>{const s=n.volume;t.push({chap:r.number_float,vol:s>0?s:void 0,slug:n.id,lang:n.language,group:n.group?.name,ts:new Date(n.date).getTime()})})}),Y(t,{preferGroup:a})}var Da=Object.defineProperty,Ma=(a,e,t)=>e in a?Da(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ta=(a,e,t)=>Ma(a,e+"",t);const Pa={a:.1,b:.2,c:.3,d:.4};class Ue extends C{parseTitleUrl(e){return{slug:L(e)?.split("/").filter(Boolean)[1]}}async getRawReleases(){const e=re()?.data;if(!e)return;const t=[];return e.forEach(({relationships:r,attributes:n,id:s})=>{const i=r.find(({type:g})=>g==="manga"),c=se(n.volume),l=Q(n.chapter);if(l===void 0)return;const{title:o}=i.attributes,u=o.en??Object.values(o)[0];t.push({slug:i.id,name:u,chapters:[{slug:n.externalUrl||s,vol:c,chap:l,lang:n.translatedLanguage,ts:new Date(n.readableAt).valueOf()}]})}),t}async getRawTitleData(){const e=`https://api.${location.host}/manga/`;let[t,r]=await Promise.all([B(`${e}{id}`,{timeoutMs:5e3}),B(`${e}{id}/feed`,{timeoutMs:5e3})]);if(!t||!r){const[l,o]=await Promise.all([this.fetch(`${e}{id}`),this.fetch(`${e}{id}/feed`)]);if(!l||!o)return;t={url:"",value:l},r={url:"",value:o}}const n=r.value.data?.map?.(l=>{const{attributes:o,id:u}=l;if(typeof o!="object"||typeof u!="string"||!u)return;const{externalUrl:g,title:p,volume:h,chapter:m,translatedLanguage:v}=o;return{slug:g||u,label:p||void 0,vol:se(h),chap:Q(m),lang:v||"en",ts:new Date(o.readableAt).valueOf()}}).filter(l=>l?.chap!=null)??[],{data:s}=t.value;if(!s)return;const i=Oe({data:s,getTagIdsFromNames:l=>this.getTagIdsFromNames(l)});if(!i)return;const c=this.context.includeImgBytes&&i.img?await pe(i.img):void 0;return{...i,imgBytes:c,chapters:this.organizeChapters(n),hasMoreChapters:(r.value.total||0)>(r.value.limit||0)}}async getRawReaderData(){const e="https://api.mangadex.org/",[t,r,n]=await Promise.all([B(`${e}chapter/{id}`),B(`${e}at-home/server/{id}`),B(`${e}manga/{id}/aggregate`)]);if(!t||!r||!n)return;const s=t.value.data,{volume:i,chapter:c,externalUrl:l,translatedLanguage:o}=s.attributes||{},{baseUrl:u,chapter:{data:g,dataSaver:p,hash:h}}=r.value,m=s.relationships?.find?.(S=>S.type==="manga");if(!m)return;const v=Oe({data:m,getTagIdsFromNames:S=>this.getTagIdsFromNames(S)});if(!v||typeof n.value.volumes!="object")return;const d=ze(n.value,{preferGroup:this.context.preferGroup})??[];(typeof c!="string"||c==="none")&&!d.length&&d.push({chap:0,slug:s.id});const b=d.findIndex(S=>S.slug===s.id),y=s.relationships?.find?.(S=>S.type==="scanlation_group"),w=u.endsWith("/")?u:u+"/",$=!!localStorage.getItem("md")?.includes?.('"dataSaver":true'),R=`${w}${$?"data-saver":"data"}/`,x=(($?p:g)??[]).map?.(S=>`${R}${h}/${S}`)??[];return{externalUrl:l,vol:se(i),inferVol:d[b]?.inferVol,chap:Q(c)||0,imgs:x,lang:o,slug:s.id,prev:d[b+1],next:d[b-1],basePath:"/chapter/",group:y?.attributes?.name,groupUrl:y?.attributes?.website,isWebtoon:m?.attributes?.tags?.some(S=>S.attributes.name.en==="Long Strip"),title:{...v,chapters:d}}}async getRawChaptersData(){const e=re();if(!e)return;let t;try{t=ze(e,{preferGroup:this.context.preferGroup})}catch{return}if(t)return{chapters:t,lang:this.context.lang??"en",asc:!1,hasMore:!1,total:t.length}}}Ta(Ue,"specId","mangadex");function se(a){const e=Q(a);return e!==0?e:void 0}function Q(a){if(typeof a!="string"||a==="none")return;const e=parseFloat(a);if(e!==e)return;const t=a[a.length-1];return e+(Pa[t]??0)}function ze(a,{preferGroup:e}){if(typeof a.volumes!="object")return;const t=Object.values(a.volumes).map(({volume:r,chapters:n})=>{const s=se(r);return Object.values(n).map(({id:i,chapter:c})=>{const l=Q(c);if(l!==void 0)return{vol:s,chap:l,slug:i}})}).flat().filter(Boolean).reverse();return Y(t,{preferGroup:e})}function Oe({data:a,getTagIdsFromNames:e}){const{id:t,attributes:r,relationships:n}=a;if(!t||typeof t!="string"||typeof r!="object")return;const{title:s,availableTranslatedLanguages:i,altTitles:c,tags:l,contentRating:o}=r;if(typeof s!="object"||i&&!Array.isArray(i))return;const u=Object.values(s)[0];if(!u||typeof u!="string")return;const g=Ia(),p=(i??[])?.map?.(y=>typeof y=="string"?y:void 0).filter(Boolean)??[],h=p.filter(y=>y&&(!g||g.includes(y))),m=c?.map?.(y=>{const[[,w]=[]]=Object.entries(y);return w}),v=n?.find?.(y=>y.type==="cover_art")?.attributes?.fileName,d=v?`https://mangadex.org/covers/${t}/${v}.256.jpg`:void 0,b=(l||[]).map(y=>y?.attributes?.name?.en).concat(o).filter(Boolean);return{url:`${location.origin}/title/${t}`,slug:t,name:u,altNames:m,langs:h.length>0?h:p.length>0?p:["en"],img:d,tags:e(b)}}function Ia(){const a=localStorage.getItem("md");if(!a)return;const e=G(a);if(e)try{const t=e?.userPreferences?.filteredLanguages;return t?.length?t:void 0}catch{return}}var Ba=Object.defineProperty,ja=(a,e,t)=>e in a?Ba(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Aa=(a,e,t)=>ja(a,e+"",t);class qe extends C{async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=new URLSearchParams(location.search).get("source"),r=await B(`/api/${t==="user"?"uploads":"chapters"}/${e.slug}/images`);if(!r)return;const n=r.value.images?.map?.(i=>i.url),s=T(ee(r.value,"manga.title"));return{...e,slug:t?`${e.slug}?source=${t}`:e.slug,imgs:n,title:{...e.title,name:s??e.title.name}}}parseJsonChapter(e,t){const r=super.parseJsonChapter(e,t),n=D(e,"source")==="user";if(!(!r||!n))return r.slug+="?source=user",r}}Aa(qe,"specId","mangadot");var Ea=Object.defineProperty,La=(a,e,t)=>e in a?Ea(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ua=(a,e,t)=>La(a,e+"",t);class Ne extends C{async getRawReaderData(){if((await z(".current-viewtype",{lazy:!0,all:!1}))?.textContent?.trim().toLowerCase()!=="volume")return await super.getRawReaderData()}async getRawChaptersData(){const e=this.context.lang??"en",t=await z(`.tab-content[data-name="chapter"] a.dropdown-item[data-code="${e.toUpperCase()}"]`,{lazy:!0,all:!1});if(t)return q(t),await z(`.tab-content[data-name="chapter"] li.item[data-number] a[href*="/${e}/"]`,{lazy:!0,all:!1}),await super.getRawChaptersData()}async getRawSearchData(){const e=await super.getRawSearchData();if(!e)return;const t=this.context.lang??"en";return{...e,rawReleases:e.rawReleases.map(r=>({...r,lang:r.lang??t}))}}}Ua(Ne,"specId","mangafire");var za=Object.defineProperty,Oa=(a,e,t)=>e in a?za(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ke=(a,e,t)=>Oa(a,typeof e!="symbol"?e+"":e,t);class We extends C{constructor(){super(...arguments),ke(this,"isVariantSite",location.hostname!=="www.mangago.me")}async getRawTitleData(){const e=await super.getRawTitleData();if(!e||!this.isVariantSite)return e;const t=f('a[href*="/status/"]|attr:href|remove:/$|remove:.+/');if(t)return{...e,slug:t}}getRawReaderTitleData(e){if(!this.isVariantSite)return super.getRawReaderTitleData(e);const t=f('a[href*="/read-manga/"]|attr:href'),r=t?t.split("/read-manga/")[1].split("/")[0]:f('.page script|text|pattern:.+mid="(.+)",.+');if(r)return{slug:r,name:r.replaceAll("_"," ").replaceAll(" s ","'s ").split(" ").filter(Boolean).map(n=>`${n[0].toUpperCase()}${n.substring(1)}`).join(" "),url:`https://www.mangago.me/read-manga/${r}`}}parseReaderUrl(e,t,r){if(!this.isVariantSite){const{slug:n,basePath:s}=super.parseReaderUrl(e,t,r),i=n.split("/").filter(Boolean),c=i[i.length-1];return{basePath:s,slug:c.startsWith("pg-")?i.slice(0,-1).join("/"):n}}return{basePath:"",slug:`${location.origin}/${t.split("/").filter(Boolean).slice(0,3).join("/")}${this.siteMeta.trailing?"/":""}`}}}ke(We,"specId","mangago");var qa=Object.defineProperty,Na=(a,e,t)=>e in a?qa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ka=(a,e,t)=>Na(a,e+"",t);class _e extends C{parseTitleUrl(e){return{slug:L(e)?.split("/").filter(Boolean)[1]}}}ka(_e,"specId","mangapill");var Wa=Object.defineProperty,_a=(a,e,t)=>e in a?Wa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Fa=(a,e,t)=>_a(a,e+"",t);class Fe extends C{async getRawTitleData(){const e=await super.getRawTitleData();return e&&{...e,chapters:e.chapters.map(t=>({...t,slug:t.slug?.split("/").filter(Boolean).slice(-1)[0]}))}}}Fa(Fe,"specId","mangaplus");var Ja=Object.defineProperty,Va=(a,e,t)=>e in a?Ja(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ha=(a,e,t)=>Va(a,e+"",t);class Je extends me{async getRawReaderData(){const e=await super.getRawReaderData();if(e)return{...e,title:{...e.title,id:await this.getReaderTitleId()}}}async getReaderTitleId(){const e=await window.HISTORY?.getStored?.();if(!e||typeof e!="object")return;const t=Object.values(e).filter(Boolean);if(!t.length)return;t.sort((n,s)=>s.time-n.time);const r=t[0].manga_ID;return T(r)??E(r,n=>n+"")}}Ha(Je,"specId","mangastream");var Ga=Object.defineProperty,Ka=(a,e,t)=>e in a?Ga(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Xa=(a,e,t)=>Ka(a,e+"",t);class Ve extends C{async getRawReaderData(){const e=await super.getRawReaderData();return!e||!e.title.chapters.length?e:{...e,prev:e.prev?{...e.prev,slug:ve(e.title.slug,e.prev.slug)}:void 0,next:e.next?{...e.next,slug:ve(e.title.slug,e.next.slug)}:void 0,title:{...e.title,chapters:e.title.chapters.map(t=>({...t,slug:ve(e.title.slug,t.slug)}))}}}}Xa(Ve,"specId","mangatime");function ve(a,e){if(e)return`/manga/${a}/chapter-${e}`}var Ya=Object.defineProperty,Qa=(a,e,t)=>e in a?Ya(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Za=(a,e,t)=>Qa(a,e+"",t);class He extends C{async getRawReaderData(){const e=await super.getRawReaderData();if(e?.imgs?.length!==1)return e;e.slug.includes("//")&&(e.slug=Ge(e.slug).split("/").filter(Boolean)[3]);const t=E(document.querySelector("select.index-page,.page_select select")?.childElementCount,h=>h-1);if(!t||t<=1)return e;const[r]=e.imgs,n=r.split(/\d+\.[a-z]{3,5}$/i)?.[0];if(!n)return e;const s=(+(f(".page_select .select|text")||"1")||1)-1,i=r.replace(n,""),[c,l]=i.split("."),o=c.length,u=+c-s,g=u+t-1,p=[];for(let h=u;h<=g;h++)p.push(`${n}${(h+"").padStart(o,"0")}${l?`.${l}`:""}`);return{...e,imgs:p}}parseChapterUrl(e,t){return this.parseReaderUrl(e,Ge(t),t)}}Za(He,"specId","mangatown");function Ge(a){return a.replace(location.origin,"").replace("//","/")}var er=Object.defineProperty,tr=(a,e,t)=>e in a?er(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ar=(a,e,t)=>tr(a,e+"",t);class Ke extends C{async getRawReaderData(){const e=await super.getRawReaderData();return e&&{...e,slug:e.slug.split("/").slice(0,-1).join("/")||e.slug.split("/")[0]}}}ar(Ke,"specId","mangaworld");var rr=Object.defineProperty,nr=(a,e,t)=>e in a?rr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,sr=(a,e,t)=>nr(a,e+"",t);class Xe extends C{async getRawTitleData(){const e=await super.getRawTitleData();if(e)return{...e,hasMoreChapters:e.chapters.length===50}}}sr(Xe,"specId","mgeko");var ir=Object.defineProperty,or=(a,e,t)=>e in a?ir(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,lr=(a,e,t)=>or(a,e+"",t);class Ye extends C{async getRawReaderData(){const e=await A(200,50,()=>{const s=window.mangaReader;return s?.scanData&&s?.mangaData?s:void 0});if(!e)return;const{scanData:t,mangaData:r}=e,n=`/${this.siteMeta.readerBase}/`;return this.finalizeRawReaderData({basePath:n,chap:t.chapterNum,slug:t.slug,imgs:t.pages,title:{name:t.chapterTitle,slug:t.manga,url:`${location.origin}/${this.siteMeta.titleBase}/${t.manga}`,chapters:this.parseJsonChapters(r,{basePath:n,chapterSpec:{sel:"chapters",label:"num",url:"slug"}})??[]}})}}lr(Ye,"specId","moins");var cr=Object.defineProperty,ur=(a,e,t)=>e in a?cr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,hr=(a,e,t)=>ur(a,e+"",t);class Qe extends ne{async getRawReleasesData(){}async getRawSearchData(){}async getRawTitleData(){const e=f("h1.title .pretty, h1.title|text"),t=f("#cover img|[attr:data-src,attr-contain:src]");if(e)return{name:e,slug:location.pathname.split("/").filter(Boolean).slice(-1)[0],url:location.origin+location.pathname,img:t,imgBytes:this.context.includeImgBytes&&t?await pe(t):void 0,chapters:[{slug:"1",chap:0}]}}async getRawReaderData(){const e=f("#image-container img|[attr:data-src,attr-contain:src]"),t=ge(e);if(!t)return;const r=t.origin,n=this.parseReaderUrl(this.siteMeta.readerBase,location.pathname,location.href);if(n?.titleSlug)try{const s=await fetch(`${location.origin}/api/v2/galleries/${n.titleSlug}`);if(!s.ok)return;const i=await s.json();if(!i)return;const c=D(i,"title.pretty")||D(i,"title.english")||i?.title?.[Object.keys(i.title)[0]];if(!c)return;const l=T(D(i,"cover.path"),u=>`https://t2.${location.hostname}${u.startsWith("/")?u:`/${u}`}`),o=i.pages.map(u=>{const g=u.path;return`${r}${g.startsWith("/")?g:`/${g}`}`});return{chap:0,slug:"1",basePath:`/g/${n.titleSlug}/`,imgs:o,title:{name:c,slug:n.titleSlug,url:`${location.origin}/g/${n.titleSlug}`,chapters:[{slug:"1",chap:0}],img:l}}}catch{return}}async getRawChaptersData(){const e=await this.getRawTitleData();if(!e)return;const{chapters:t,...r}=e;return{title:{...r,chapters:[]},chapters:t}}}hr(Qe,"specId","nhentai");var pr=Object.defineProperty,gr=(a,e,t)=>e in a?pr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,dr=(a,e,t)=>gr(a,e+"",t);class Ze extends C{async queryJsonChapters(e){const t=await super.queryJsonChapters(e);if(t)return t.map(r=>({...r,slug:r.slug?`ch-${+r.slug||r.chap}`:r.slug}))}}dr(Ze,"specId","stone");var fr=Object.defineProperty,mr=(a,e,t)=>e in a?fr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,vr=(a,e,t)=>mr(a,e+"",t);class et extends C{async getRawTitleData(){const e=await super.getRawTitleData();if(!e)return;const t=K(".info-detail__row > .genre-btn,.info__right .stats__row:first-child|text")?.map(r=>[r,...r.split(" ")]).flat();return tt({...e,tags:this.getTagIdsFromNames(t)??[]},".episode-header .episode-cnt")}async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=`${location.origin}/series/${e.title.slug}/info`;return{...e,title:{...tt({...e.title,url:t,tags:[]},".episode-list .js-ep-cnt"),hasMoreChapters:!1}}}parseTitleUrl(e){if(!e)return{};const t=e.split("/").filter(Boolean);return{slug:t[1]??t[0]}}}vr(et,"specId","tapas");function tt(a,e){const t=wr(e)>20;return{...a,chapters:t?[]:a.chapters,hasMoreChapters:t}}function wr(a){return+(document.querySelector(a)?.textContent?.trim().split(" ")[0]||0)}var yr=Object.defineProperty,br=(a,e,t)=>e in a?yr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Rr=(a,e,t)=>br(a,e+"",t);class at extends C{async getRawTitleData(){const e=new URLSearchParams(location.search),t=e.get("episode_no"),r=e.get("title_no");if(t||!r)return;const n=await super.getRawTitleData();if(!n)return;const s=location.hostname.startsWith("m."),i=location.pathname.split("/")[1];return{...n,slug:`${n.slug}?title_no=${r}`,id:r,langs:i?[i]:void 0,chapters:s?[]:n.chapters.map(c=>({...c,lang:i})),hasMoreChapters:s||(document.querySelector(".paginate")?.childElementCount??1)>1}}async getRawReaderData(){const e=new URLSearchParams(location.search),t=e.get("episode_no"),r=e.get("title_no"),n=t?+t:void 0;if(!t||!r||typeof n!="number"||isNaN(n))return;const s=document.title.split("|")[1]?.trim();if(!s)return;const i=location.pathname.split("/"),c=`${i.slice(0,4).join("/")}/list?title_no=${r}`,l=this.queryChapters({chapterSpec:{sel:"#sequence_scroll li.eg-flick-panel,#toolbar .episode_lst li[data-episode-no]",url:"a|attr:href",label:"|attr:data-episode-no || a|attr:href|pattern:.+episode_no=(\\d+).*"},titleInfo:{id:r,slug:c,name:s}}),o=i[1];return{chap:n,lang:o,slug:`${location.pathname}?title_no=${r}&episode_no=${t}`,basePath:"",imgs:await this.getReaderImgs(),isWebtoon:!0,title:{id:r,url:c,slug:c,name:s,langs:[o],chapters:(l??[]).map(u=>({...u,lang:o})),hasMoreChapters:!1}}}async getReaderImgs(){const e=K("#_imageList img|[attr:data-url,attr:src]");return e?.length?e:await A(100,50,()=>window.__viewerState__?.scrollViewerParam?.imageList?.map(({url:t})=>t).filter(Boolean))}parseReaderUrl(e,t,r){if(!r)return{basePath:"",slug:t};if(r.startsWith("http://")||r.startsWith("https://")){const n=ge(r);return{basePath:"",slug:n.pathname+n.search}}return{basePath:"",slug:r}}}Rr(at,"specId","webtoon");const $r=[Te,Pe,Ie,Be,je,me,Ee,Ue,Ne,We,_e,Fe,Je,Xe,qe,Ve,He,Ke,Ye,Qe,Ze,et,at];function rt(a){const e=$r.find(t=>t.specId===a.spec.id)??C;return new e(a)}async function xr(a){const{spec:e,type:t}=a;let r=a.siteMeta??e?.meta;if(e&&r){a.siteVariant&&(r={...r,...a.siteVariant});const n=t?[t]:nt(r,e.generic);if(!n.length)return;const s=rt({...a,spec:e,siteMeta:r});return await F(n.map(i=>s.getRawPageByType(i,n.length===1)))}return await F((a.genericSpecs??[]).map(n=>{if(!n.meta||!n.generic)return[];const s=t?[t]:nt(n.meta,n.generic);if(!s.length)return[];const i=rt({...a,spec:n,siteMeta:n.meta});return s.map(c=>i.getRawPageByType(c,!1,!0))}).flat())}function nt(a,e){if(location.pathname==="/")return a.single?[M.title]:[];const{titleBase:t,readerBase:r}=a,n=location.pathname.split("/").filter(Boolean),s=st(n,r),i=st(n,t);if(s&&i)return[M.reader,M.title];const c=[];return!i&&(s!==!1||e)&&c.push(M.reader),!s&&(i!==!1||e)&&c.push(M.title),!c.length&&e?[M.reader,M.title]:c}function st(a,e){if(!e)return;const t=e.split("/").filter(Boolean),r=t.indexOf("{slug}"),n=r===t.length-1,s=!n&&r!==-1;if(n&&(t.pop(),!t.length))return;const i=a.length-t.length;if(s?i<0:i<=0)return!1;let c=!1;for(let l=0;l<t.length;l++){const o=t[l];if(o[0]!=="{"){if(o!==a[l])return!1;c=!0}}if(c&&i===(s?0:1))return!0}_.PageType=M,_.scrape=xr}));
|
package/package.json
CHANGED
package/specs.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"404":"[data-text=\"404\"]","id":"asura2","releases":{"title":{"sel":"a[href*=\"/comics/\"]:has(img) + div","name":"a|text","url":"a|attr:href","chapter":{"sel":"a + div a","url":"|attr:href","label":"span|text","at":"time|text"}}},"title":{"name":"body:not(:has([data-text=\"404\"])) h1|text","img":"#desktop-cover-container img|attr-contain:src","tags":"a[href*=\"/browse?genres=\"]|text","chapter":{"lazy":false,"sel":"[opts*=\"ChapterListReact\"] a","url":"|attr:href","label":"span|text","at":".text-right span|text"}},"reader":{"title":{"sel":"script[type=\"application/ld+json\"]","url":"|json:itemListElement.2.item","name":"|json:itemListElement.2.name"},"label":"script[type=\"application/ld+json\"]|json:itemListElement.3.name","content":"div:has(> [data-page])","imgDivs":"[data-page], [data-page] ~ div","prev":"a:has([d=\"M15 19l-7-7 7-7\"])|attr:href","next":"a:has(svg:not(.rotate-180) [d=\"M9 5l7 7-7 7\"])|attr:href","chapter":{"json":"astro-island|attr:props","sel":"chapterList.1","url":"1.number.1","label":"1.number.1","at":"1.created_at.1"}},"search":{"title":{"sel":"a[href*=\"/comics/\"]:has(img)","url":"|attr:href","name":"img|attr:alt"}}},{"404":"#content > .wrapper > .notf img, body:empty","id":"mangastream","generic":true,"name":"meta[itemprop=\"name\"]|attr:content","meta":{"releases":"","titleBase":"series","readerBase":"","searchBase":"?s=","idBase":"?p=","titleIdType":"id","defaultLang":"en","trailing":true},"releases":{"title":{"sel":".listupd .utao .uta, .bixbox .bs.styletere","id":"a.series[rel]|attr:rel","name":"h4, .info .tt, .tt a, .series > h3|text","url":"a|attr:href","chapter":{"sel":".luf ul li, .chapter-list > a, .chfiv > li","label":"a .fivchap, a, .epxs|text","url":"a|attr:href || |attr:href","at":"a .fivtime, a + span, .epxdate, .newchtimeluffy|text"}}},"title":{"sel":"#chapterlist > ul","id":".bookmark[data-id]|attr:data-id || #rating-form input[name=\"bs_table_id\"]|attr:value","name":"h1.entry-title|text","img":".thumb img|attr-contain:src","type":".imptdt a[href*=\"type=\"]|text || .imptdt:first-of-type i|text","tags":".postbody .mgen > a|text","chapter":{"sel":"#chapterlist > ul > li","url":"a|attr:href","label":".chapternum|text","at":".chapterdate|text"}},"reader":{"sel":"#readerarea","content":"body","id":".ctop option:checked|attr:data-id","label":"h1.entry-title|text","title":{"sel":".headpost .allc a, [itemprop=\"itemListElement\"] [content=\"2\"] ~ a","name":"|text","url":"|attr:href"},"prev":"a.ch-prev-btn:not(.disabled)|attr:href","next":"a.ch-next-btn:not(.disabled)|attr:href","chapter":{"sel":".ctop #chapter option:not([disabled]):not([value=\"\"])","id":"|attr:data-id","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":".listupd .bsx","name":".bigor .tt|text","url":"a|attr:href","img":"img|attr-contain:src"}}},{"404":".error-404.not-found","id":"madara","generic":true,"name":"meta[property=\"og:site_name\"]|attr:content || a.logo|attr:title","meta":{"releases":"","titleBase":"manga","readerBase":"manga/{titleSlug}","idBase":"?p=","searchBase":"?post_type=wp-manga&s=","defaultLang":"en","titleIdType":"id","trailing":true},"releases":{"title":{"sel":".page-listing-item .page-item-detail, .lastest-content .page-item-detail","id":"[data-post-id]|attr:data-post-id","name":"h3 a, .item-summary h3|text","url":"a|attr:href","chapter":{"sel":".chapter-item","label":".chapter a|text","url":".chapter a|attr:href","at":".c-new-tag|attr:title || .post-on|text"}}},"title":{"sel":"body.manga-page","id":"#manga-chapters-holder|attr:data-id || .rating-post-id|attr:value || [data-action=\"bookmark\"]|attr:data-post","name":"h1|text","img":".summary_image .img-responsive, .summary_image img, .series-img img|[attr:data-src,attr-contain:src]","tags":"a[rel=\"tag\"][href*=\"genre\"],a[rel=\"tag\"][href*=\"tag\"],.genres-content|text","type":".post-content_item .summary-heading|row:type","chapter":{"sel":".wp-manga-chapter, .chapter-ul > li","url":"a|attr:href","label":"a, .chapter-title-date > p|text","at":".c-new-tag|attr:title || .chapter-release-date i|text"}},"reader":{"sel":".entry-content .read-container","content":"body","label":".breadcrumb li.active|text","title":{"sel":".breadcrumb li:nth-last-of-type(2) a","id":"#manga-reading-nav-head|attr:data-id","name":"|text","url":"|attr:href"},"prev":"a.btn.prev_page|attr:href","next":"a.btn.next_page|attr:href","chapter":{"sel":"#manga-reading-nav-head select.single-chapter-select > option:not([disabled])","label":"|text","url":"|attr:data-redirect"}},"search":{"title":{"sel":".c-tabs-item__content","name":"h3 a|text","url":"a|attr:href","chapter":{"sel":".tab-meta","label":".chapter a|text","url":".chapter a|attr:href","at":".c-new-tag|attr:title || .post-on|text"}}}},{"id":"single01","generic":true,"meta":{"releases":null,"titleBase":"","readerBase":"chapter","defaultLang":"en","titleIdType":"name","trailing":true,"searchable":false,"noTags":true,"single":true},"title":{"sel":".main-content:has(h1 + a.btn-read) .content > .chapters","name":"meta[property=\"og:site_name\"]|attr:content","img":"img.cover-image|attr-contain:src","chapter":{"sel":".chapters > a","url":"|attr:href","label":"p.t|text","at":".chapter-date|text"}},"reader":{"lazy":true,"sel":"body:has(.chapter-selector option:checked):has(main > .thumb-wrapper + h1)","label":".chapter-selector option:checked|text","title":{"name":"meta[property=\"og:site_name\"]|attr:content","url":"a[title=\"Home\"]|attr:href"},"content":".images","chapter":{"sel":".chapter-nav:has(~.images) .chapter-selector option","url":"|attr:value","label":"|text"}}},{"id":"single02","generic":true,"meta":{"releases":null,"titleBase":"","readerBase":"manga","titleIdType":"name","trailing":true,"searchable":false,"noTags":true,"single":true},"title":{"sel":"body:has(#masthead):has(#primary #main #Chapters_List)","name":"#primary #main article header.entry-header > h1|text","img":"figure img|attr-contain:src","chapter":{"sel":"#Chapters_List a","url":"|attr:href","label":"|text"}},"reader":{"sel":"body:has(#masthead):has(.trail-items)","label":"h1|text","title":{"url":"#site-title a|attr:href","name":"#site-title a|text|remove:manga\\sonline$"},"content":".entry-content","prev":".nav-previous a,.wp-next-post-navi-pre a|attr:href","next":".nav-next a,.wp-next-post-navi-next a|attr:href"}},{"id":"single03","generic":true,"meta":{"releases":null,"titleBase":"","readerBase":"manga","titleIdType":"name","trailing":true,"searchable":false,"single":true},"title":{"sel":"body:has(.nnc-nav):has(#manga-info-right):has(#chapters-list-holder)","name":".info-desc h1|text|remove:manga\\sonline","img":".manga-thumb|attr-contain:src","tags":".genre-list > span|text","chapter":{"sel":"#chapters-list-holder > a","url":"|attr:href","label":".chapter-name|text","at":".chapter-date|text"}},"reader":{"sel":".mangosm-manga-nav","label":".mangosm-manga-nav-select option:checked|text","title":{"url":"#comic-breadcrumbs .item-home a|attr:href","name":"h1.entry-title|text|remove:,.+$"},"content":".entry-content","chapter":{"sel":".mangosm-manga-nav-select option","label":"|text","url":"|attr:value"}}},{"id":"single04","generic":true,"meta":{"releases":null,"titleBase":"","readerBase":"manga","titleIdType":"name","trailing":true,"searchable":false,"single":true},"title":{"sel":"body:has(.all-chapters):has(.home-hero)","name":"h1|text|remove:manga\\sonline$","img":".home-hero|bg-image","chapter":{"sel":".all-chapters li a","url":"|attr:href","label":"|text"}},"reader":{"sel":"body:has(.chapter-images):has(.home-hero-bc li)","title":{"name":"h1|text|remove:manga$","url":"a|attr:href"},"label":".home-hero-bc li:last-child|text","content":".chapter-images","imgs":".chapterImg|attr-contain:src","chapter":{"sel":".manga-chapter #chapterSelect option","url":"|attr:value","label":"|text"}}},{"id":"single05","generic":true,"meta":{"releases":null,"titleBase":"","readerBase":"manga","titleIdType":"name","trailing":true,"searchable":false,"single":true},"title":{"sel":"body:has(.profile-manga):has(.main-chapter):has(.cover_managa)","name":"h1|text","img":".cover_managa img|attr-contain:src","tags":"a[href*=\"manga-genre\"]|text","chapter":{"sel":".main-chapter a:has(div)","url":"|attr:href","label":"div div:first-child|text"}},"reader":{"sel":"body:has(h1#chapter-heading):has(.reading-content):has(.about_section)","title":{"url":".breadcrumb li a|attr:href","name":"[property=\"og:site_name\"]|attr:content"},"label":".single-chapter-select option:checked|text","content":".reading-content","imgs":".image-container img|attr-contain:src","chapter":{"sel":".header .single-chapter-select option","url":"|attr:data-redirect","label":"|text"}}},{"id":"single06","generic":true,"meta":{"releases":null,"titleBase":"","readerBase":"chapters","chapters":"chapters","titleIdType":"name","trailing":false,"searchable":false,"single":true,"noTags":true},"title":{"sel":"body:has(#chapter-sort-select option[value=\"oldest\"]):has(h2 + a[href=\"/chapters\"])","name":"nav a[href=\"/\"] span|text","tags":".bg-surface-secondary.rounded-full|text","hasMore":"button + div + button:not([disabled])","first":"main a[href*=\"/chapters/\"]|attr:href","chapter":{"sel":".grid a[href*=\"/chapters/\"]","url":"|attr:href","label":"div div|text"}},"reader":{"lazy":true,"sel":"body:has(div + nav[aria-label=\"Breadcrumb\"] ol li a[href=\"/chapters/\"]):has(.fixed [role=\"heading\"] .lucide-list)","title":{"name":"nav a[href=\"/\"] span|text","url":"nav a[href=\"/\"]|attr:href","img":"meta[property=\"og:image\"]|attr:content"},"label":"nav li:last-child span:last-child|text","content":"main","prev":"a[title=\"Previous Chapter\"]|attr:href","next":"a[title=\"Next Chapter\"]|attr:href"},"chapters":{"chapter":{"sel":"main .lg\\:hidden a","url":"|attr:href","label":"|text|remove:^.+/chapters/"}}},{"404":".elapi > a[href*=\"/search?q=\"]","id":"mangahub","releases":{"title":{"sel":".list-group-item .media","name":"h4.media-heading a|text","url":".media-heading a|attr:href","at":".media-heading .small|text","chapter":{"sel":".media-body > a","label":"|text","url":"|attr:href"}}},"title":{"sel":"#chapters-tab .tab-content","name":"#mangadetail h1|text","img":"#mangadetail img.manga-thumb|attr-contain:src","tags":"#mangadetail a.genre-label|text","chapter":{"sel":"#chapters-tab li.list-group-item","label":"a > span:first-child > span:first-child|text","url":"a:not([title])|attr:href || a:not([rel])|attr:href || a|attr:href","at":"small|text"}},"reader":{"content":"#mangareader .container-fluid, #mangareader","label":"h3|text","prev":".chapter-pager .previous a[href*=\"/chapter/\"]|attr:href","next":".chapter-pager .next a[href*=\"/chapter/\"]|attr:href","title":{"sel":"h3 a","name":"|text","url":"|attr:href"},"chapter":{"sel":".pager-dropdown .dropdown-menu > li > a","label":"|text","url":"|attr:href"}},"search":{"title":{"sel":".media-manga","name":"h4 a|text","url":"h4 a|attr:href","img":"img|attr-contain:src","chapter":{"sel":".media-body","label":"a[href*=\"/chapter/\"]|text","url":"a[href*=\"/chapter/\"]|attr:href"}}}},{"id":"mangadex","search":{"lazy":true,"loading":"[indeterminate] svg","title":{"sel":"a.manga-card-dense","url":"|attr:href","name":"a.title span|text","img":".cover img|attr-contain:src"}}},{"404":"#error > .attention","id":"mangago","releases":{"title":{"sel":"ul#search_list > li > div","name":"a.thm-effect|attr:title","url":"a.thm-effect|attr:href","chapter":{"sel":"a.chico","label":"|text","url":"|attr:href"}}},"title":{"name":".w-title h1|text","img":".article .cover img,#information img|attr-contain:src","tags":".manga_right a[href*=\"/genre/\"],.manga_info ul.uk-list a[href*=\"/genre/\"]|text","chapter":{"sel":"#chapter_table tbody tr, table.uk-table tbody tr","label":"h4 a b, a.chico b|text || a.chico|text","url":"h4 a, a.chico|attr:href","at":"td:last-child|text"}},"reader":{"content":"body","label":"#navi h3 span:last-child,#series + a.chapter|text","title":{"sel":"#navi a#series,#reader-nav .nav li:first-child a","name":"|text","url":"|attr:href"},"chapter":{"sel":".pagebar.top ul.dropdown-menu.chapter > li > a,#series ~ ul.chapter li a","label":"|text","url":"|attr:href"}},"search":{"title":{"sel":"#search_list > li .box","name":"a.thm-effect|attr:title","url":"a.thm-effect|attr:href","chapter":{"sel":"a.chico","label":"|text","url":"|attr:href"}}}},{"id":"tapas","title":{"id":".button--subscribe|attr:data-tiara-event-meta-series-id","name":".info .title|text","img":".thumb img|attr:src","first":".episode-list__item a|attr:href","chapter":{"sel":".episode-list .episode-list__item > a","url":"|attr:data-id","label":"|attr:data-scene-number"}},"reader":{"content":".viewer__body","id":"div[id^=\"episode-\"][data-ep-id]|attr:data-ep-id","label":"div[id^=\"episode-\"][data-ep-scene]|attr:data-ep-scene","title":{"id":".subscribe-btn|attr:data-id","url":".subscribe-btn|attr:data-id","name":".series-info .title|text","img":".series-info .thumb img|attr:src"},"chapter":{"sel":".episode-list .list-body > li[data-id]","url":"|attr:data-id","label":".info__label|text"}},"chapters":{"chapter":{"json":true,"sel":"data.episodes","url":"id","label":"pending_scene","at":"publish_date"},"paging":{"total":"data.pagination.total","limitKey":"max_limit","pageKey":"page"}},"search":{"title":{"sel":".search-item-wrap","url":"a|attr:href","name":"img|attr:alt|remove:#\\.*\\?#","img":"img|attr-contain:src"}}},{"id":"mangafire","releases":{"title":{"sel":".unit > .inner","id":"a[data-tip]|attr:data-tip|remove:\\?.+","name":".info a|text","url":"a|attr:href","chapter":{"sel":"ul.content li a","label":"span:first-child|text","url":"|attr:href","at":"span:last-child"}}},"title":{"id":".bookmark[data-id]|attr:data-id","name":".info h1[itemprop=\"name\"]|text","img":".poster img|attr-contain:src","tags":"#info-rating a[href*=\"/genre/\"]|text","langs":".tab-content[data-name=\"chapter\"] a.dropdown-item[data-code]|attr:data-code","chapter":{"sel":".tab-content[data-name=\"chapter\"] li.item[data-number]","url":"a|attr:href","label":"|attr:data-number","at":"a span:last-child|text"}},"reader":{"content":"#page-wrapper","imgDivs":".page","lstrip":".setting-tab.page-layout [data-value=\"longstrip\"].active","lstripBtn":".setting-tab.page-layout [data-value=\"longstrip\"]","label":"#number-panel ul li a[href*=\"/read/\"][data-number].active|attr:data-number","title":{"sel":"#ctrl-menu .head a","id":"body|attr:data-id","url":"|attr:href","name":"|text"},"chapter":{"sel":"#number-panel ul li a[href*=\"/read/\"][data-number]","label":"|attr:data-number","url":"|attr:href"}},"search":{"title":{"sel":".unit","id":"a[data-tip]|attr:data-tip|remove:\\?.+","url":"a|attr:href","name":".info a|text","img":"a img|attr-contain:src","chapter":{"sel":".unit .content[data-name=\"chap\"] a","url":"|attr:href","label":"span|text","at":"span:last-child"}}}},{"id":"webtoon","title":{"name":"h1.subj,.detail_info > p.subj,.info > h3.subj,.subject|text","img":"meta[property=\"og:image\"]|attr:content","tags":".info > h2.genre,.detail_info > p.genre,.info > p.genre,.tag_box .tag|text","first":"a#_btnEpisode,a._readEpisodeBtn|attr:href","chapter":{"sel":"li._episodeItem","label":"|attr:data-episode-no","url":"a|attr:href","at":".date|text"}}},{"404":"#notfound .notfound-404","id":"mgeko","releases":{"title":{"sel":"#latest-updates .novel-list.chapters > li > a","url":"|attr:href","name":"|attr:title","chapter":{"sel":"div:has(.chapter-title)","label":".chapter-title|text","at":".novel-stats span:first-child|text"}}},"title":{"name":".cover img|attr:alt","img":".cover img|[attr:data-src,attr-contain:src]","tags":".categories .property-item|text","first":"a#readchapterbtn|attr:href","chapter":{"sel":".chapter-list > li a","url":"|attr:href","label":".chapter-title,.chapter-number|text","at":"time|attr:datetime || .chapter-stats|text"}},"reader":{"imgs":"center:has(> #chapter-reader) img|attr-contain:src","label":".chapter-header .titles h2|text","next":"center .nextchap:not(.isDisabled)|attr:href","prev":"center .prevchap:not(.isDisabled)|attr:href","title":{"sel":".chapter-header .titles h1 a","name":"|text","url":"|attr:href"},"chapter":{"sel":"center center #cars option","label":"|text","url":"|attr:value"}},"chapters":{"chapter":{"sel":".chapter-list > li a","url":"|attr:href","label":".chapter-title,.chapter-number|text","at":"time|attr:datetime || .chapter-stats|text"}},"search":{"title":{"sel":".novel-item","url":"a|attr:href","name":"h4|text","img":"img|[attr:data-src,attr-contain:src]","chapter":{"sel":".novel-stats","label":"strong|text"}}}},{"404":"#main > .error-404","id":"mangack","releases":{"title":{"sel":".latestmanga .Latest_chapter_update","url":"a|attr:href","name":".latest-title a|text","chapter":{"sel":"tr:last-child center","label":"a|text","url":"a|attr:href","at":".chapter-date|text"}}},"title":{"id":"input[name=\"follow_manga\"]|attr:value","name":"h1.entry-title|text","img":".manga-cover-wrap img|attr:src","tags":".infobox a[href*=\"/genres/\"]|text","type":".infobox a[href*=\"/comic-type/\"]|text","chapter":{"sel":".chapterslist > li","url":"a|attr:href","label":"a|text","at":".entry-date|text"}},"reader":{"content":".post-content","label":".entry-title|text","title":{"sel":".latest-title a","name":"|text","url":"|attr:href"},"prev":".prev-post a|attr:href","next":".next-post a|attr:href"},"search":{"title":{"sel":".Latest_chapter_update","url":"a|attr:href","img":"img|attr-contain:src","name":"h4 a|text"}}},{"id":"katana","releases":{"title":{"sel":"#book_list > .item","id":"|attr:data-id","url":"a|attr:href","name":"a|text","chapter":{"sel":".chapter a","url":"|attr:href","label":"|text"}}},"title":{"id":".bookmark_bt[data-id]|attr:data-id","name":".info h1|text","img":".cover img|attr:src","tags":".info .genres a|text","chapter":{"sel":".chapters tbody > tr","url":"a|attr:href","label":"a|text","at":".update_time|text"}},"reader":{"content":"#imgs","label":"select[name=\"chapter_select\"] option:checked|text","prev":".nav_button.prev:not([disabled])|attr:href","next":".nav_button.next:not([disabled])|attr:href","title":{"sel":"#breadcrumb_wrap li:nth-child(2) a","id":".bookmark_chapter_bt[data-id]|attr:data-id","name":"span|text","url":"|attr:href"},"chapter":{"sel":".nav_chapters_wrap:first-child select[name=\"chapter_select\"] option","url":"|attr:value","label":"|text"}},"search":{"title":{"sel":"#book_list .item","url":"a|attr:href","img":"img|attr-contain:src","name":"h3 a|text","chapter":{"sel":"div:has(> div > .chapter)","url":"a|attr:href","label":"a|text","at":".update_time|text"}}}},{"id":"truyenqq","releases":{"title":{"sel":"#list_new > li","name":".book_name h3 a|text","url":".book_name h3 a|attr:href","id":".book_name h3 a|attr:href|remove:.+-","chapter":{"sel":".last_chapter a","label":"|text","url":"|attr:href"}}},"title":{"id":".btn-subscribe|attr:data-id","name":".book_info h1|text","img":".book_avatar img|attr-contain:src","tags":".book_info li a[href*=\"/the-loai/\"]|text","chapter":{"sel":".works-chapter-list .works-chapter-item","label":".name-chap a|text","url":".name-chap a|attr:href","at":".time-chap|text"}},"reader":{"content":".chapter_content","label":"ol.breadcrumb > li:last-of-type a span|text","prev":".chapter_control a.prev|attr:href","next":".chapter_control a.next|attr:href","title":{"sel":"ol.breadcrumb > li:nth-of-type(2) a","id":".btn-subscribe|attr:data-id","name":"span|text","url":"|attr:href"},"chapter":{"trigger":".chapter_list","sel":"#popup_content .chapter-list > a, .chapter_list > option","label":"|text","url":"|attr:href || |attr:value"}},"search":{"title":{"sel":".list_grid > li","name":"h3 a|text","url":"h3 a|attr:href","img":"img|attr-contain:src","chapter":{"sel":".last_chapter a","url":"|attr:href","label":"|text"}}}},{"id":"uzay","releases":{"title":{"sel":"section[aria-label=\"new series\"] ~ section .header + div > div","url":"a|attr:href","name":"h2|text","chapter":{"sel":"a.mobile-list-item","url":"|attr:href","label":"h3 span:first-child b|text","at":"h3 span:nth-child(2)|text"}}},"title":{"name":".content-details > h1|text","img":".content-info > img|attr:src","tags":".content-details a[href*=\"?categories=\"]|text","chapter":{"sel":".list-episode > a","url":"|attr:href","label":"h3 b|text","at":"span:last-child|text"}},"reader":{"content":".manga-episode-card","label":".header h1 + h2|text","prev":"[aria-label=\"episode-navbar\"] div:not(last-child) > a[href]|attr:href","next":"[aria-label=\"episode-navbar\"] div:last-child > a[href]|attr:href","title":{"sel":".header h1:has(> a) a","url":"|attr:href","name":"|text"}}},{"id":"mangaworld","releases":{"title":{"sel":".comics-grid > .entry","name":".manga-title|text","url":"a|attr:href","chapter":{"sel":"div:has(> .xanh)","label":"a|text","url":"a|attr:href","at":"i|text"}}},"title":{"name":"h1.name|text","img":".thumb img|attr:src","tags":".meta-data a[href*=\"?genre=\"]|text","type":".meta-data a[href*=\"?type=\"]|text","chapter":{"sel":".chapters-wrapper .chapter > a","url":"|attr:href","label":"span|text","at":"i|text"}},"reader":{"content":"#page","label":"h1|text","lstrip":"select.mode option[value=\"LIST\"]:checked","lstripBtn":"select.mode option[value=\"LIST\"]","title":{"sel":"a[href*=\"/manga/\"]","name":"|text|remove:Ritorna\\sa","url":"|attr:href"},"chapter":{"sel":"#controls-1 select.chapter option","label":"|text","url":"|value"}},"search":{"title":{"sel":".comics-grid .entry","url":"a|attr:href","img":"img|attr-contain:src","name":".manga-title|text"}}},{"id":"leercapitulo","releases":{"title":{"sel":".media.mainpage-manga","url":"a|attr:href","name":"h4.manga-newest|text","chapter":{"sel":".hotup-list > span a","url":"|attr:href","label":"|text"}}},"title":{"name":"h1.title-manga|text","img":".cover-detail img|attr:src","tags":".description-update a[href*=\"/genre/\"]|text","chapter":{"sel":".chapter-list a.xanh","url":"|attr:href","label":"|text"}},"reader":{"content":".comic_wraCon","label":"h2.chapter-title:first-child|text","prev":"a.pre,a.LeftArrow|attr:href","next":"a.next,a.RightArrow|attr:href","lstrip":"select.loadImgType option[value=\"1\"]:checked","lstripBtn":"select.loadImgType option[value=\"1\"]","title":{"sel":"h2.chapter-title:nth-of-type(2) a","url":"|attr:href","name":"|text"},"chapter":{"sel":"h1 + .row select[rel=\"chap-select\"] option","url":"|attr:value","label":"|text"}}},{"id":"mangaplus","releases":{"title":{"sel":"[class*=\"UpdatedTitle-module_titleWrapper_\"]","url":"a|attr:href","name":"[class*=\"UpdatedTitle-module_titleName_\"]|text","chapter":{"sel":"[class*=\"UpdatedTitle-module_chapterTitle_\"]","label":"|text"}}},"title":{"lazy":true,"sel":"h1[class*=\"TitleDetailHeader-module_title_\"]","name":"h1[class*=\"TitleDetailHeader-module_title_\"]|text","img":"img[class*=\"TitleDetailHeader-module_coverImage_\"]|attr:src","chapter":{"sel":"[class*=\"ChapterListItem-module_chapterListItem_\"]","url":"a[class*=\"ChapterListItem-module_commentContainer_\"]|attr:href","label":"[class*=\"ChapterListItem-module_name_\"]|text","at":"[class*=\"ChapterListItem-module_date_\"]|text"}},"reader":{"content":"[class*=\"Viewer-module_viewerContainer_\"]","label":"[class*=\"Navigation-module_chapterTitle_\"]|text","lstrip":"input#mode-vertical:checked","lstripBtn":"input#mode-vertical","title":{"sel":"a:has(> [class*=\"Navigation-module_title_\"])","url":"|attr:href","name":"h1|text"},"chapter":{"sel":"ul > li[class*=\"SideMenu-module_chapter_\"]","label":"|text"}},"search":{"lazy":true,"empty":"p[class*=\"nothingMatched\"]","title":{"sel":"a[class^=\"AllTitle\"]","url":"|attr:href","name":"p|text","img":"img|[attr:data-src,attr-contain:src]"}}},{"id":"flame","releases":{"title":{"sel":"[class*=\"SeriesCard_chapterCardContainer__\"]","url":"a|attr:href","name":".mantine-Stack-root a|text","chapter":{"sel":"a:has(> [class*=\"SeriesCard_chapterPillWrapper__\"])","url":"|attr:href","label":"p:first-child|text","at":"p:not(:first-child)|text"}}},"title":{"name":"main h1|text","img":"img[alt=\"Cover\"]|attr:src","tags":"a[href*=\"/genre/\"] span|text","type":"p[class*=\"SeriesPage_infoField__\"]|row:type","first":".mantine-Paper-root p + a[href*=\"/series/\"]|attr:href","chapter":{"sel":"a[class*=\"ChapterCard_chapterWrapper__\"]","url":"|attr:href","label":"p:first-child|text","at":"p:not(:first-child)|text"}},"reader":{"content":"body","label":"p[class*=\"TopChapterNavbar_chapter_title__\"]|text","prev":{"sel":"button:has(.bi-arrow-left)"},"next":{"sel":"button:has(.bi-arrow-right)"},"title":{"sel":"[class*=\"TopChapterNavbar_inner__\"]","name":"[class*=\"TopChapterNavbar_series_title__\"]|text","url":"a|attr:href"},"chapter":{"trigger":"button:has(.bi-card-list)","dismiss":".mantine-Modal-overlay, .mantine-CloseButton-root","sel":"[class*=\"ChapterCard_chapterWrapper__\"]","url":"|attr:href","label":"p:first-child|text","at":"p:not(:first-child)|text"}}},{"id":"vortex","generic":true,"meta":{"releases":null,"titleBase":"series","readerBase":"series/{titleSlug}","searchBase":"series?searchTerm=","titleIdType":"slug","defaultLang":"en","trailing":false,"noTags":true},"releases":{"title":{"sel":"div:has(> a):has(.lucide-star):not(:has(img))","url":"a|attr:href","name":"a|text","chapter":{"sel":"div a","url":"|attr:href","label":"span|text","at":"time|attr:datetime"}}},"title":{"sel":"[itemtype=\"http://schema.org/CreativeWorkSeries\"]","name":"h1[itemprop=\"name\"]|text || h1|text","img":"[itemprop=\"image\"] img|attr:src","type":"h1:has(> svg)|row:type","first":"a[href*=\"/series/\"]:has(button)|attr:href","hasMore":"[opts*=\"SeriesChaptersPanelIsland\"] button .lucide-chevron-down","chapter":{"lazy":false,"sel":"a[href*=\"/series/{titleSlug}/\"]:has(img)","url":"|attr:href","label":"h3, div span|text","at":"time|attr:datetime || span + div:last-child div, h3 + div span|text"}},"reader":{"sel":"a:has(img):has([itemprop=\"dateCreated\"])","content":"section:has(.image-container),main,body","label":"h1[itemprop=\"headline\"],button:has(.lucide-chevron-down)|text","prev":{"sel":"[aria-label=\"Prev\"], [aria-label=\"Anterior\"]","url":"|attr:href"},"next":{"sel":"[aria-label=\"Next\"], [aria-label=\"Siguiente\"]","url":"|attr:href"},"title":{"sel":"a[href*=\"/series\"]:has(img)","name":"p|text || div:has(~ time)|text|remove:\\sChapter.+","url":"|attr:href"},"chapter":{"trigger":"button:has(.lucide-chevron-down)","sel":"[data-radix-popper-content-wrapper] [role=\"option\"], [data-radix-scroll-area-viewport] button, button:has(.lucide-chevron-down) ~ .absolute div button","label":"div div span|text || span:last-child|text || |text"}},"search":{"lazy":true,"loading":"button > .animate-spin","title":{"sel":"div:has(> div > a[href*=\"/series/\"])","url":"a|attr:href","name":"a h1|text","img":"a img|attr-contain:src","chapter":{"sel":"a:has(time)","url":"|attr:href","label":"p|text","at":"time|attr:datetime"}}}},{"id":"weebcentral","releases":{"title":{"sel":"[x-data*=\"sub_feed_shown\"] section article","url":"a:first-child|attr:href","name":"div:not(:has(span)) div|text","chapter":{"sel":"a:not(:first-child)","url":"|attr:href","label":"div:not(:first-child) span|text","at":"time|attr:datetime"}}},"title":{"name":"h1|text","img":"picture img|attr:src","tags":"li a[href*=\"?included_tag=\"]|text","type":"li a[href*=\"?included_type=\"]|text","hasMore":"#chapter-list a","first":"[x-data]:has(> a[href*=\"chapters/\"]):last-child a|attr:href"},"reader":{"content":"[hx-include*=\"reading_style\"]","imgs":"[hx-include*=\"reading_style\"] img|attr-contain:src","label":"[hx-target=\"#chapter-select-body\"] span|text","lstripBtn":"input[value=\"long_strip\"]","lstrip":"input[value=\"long_strip\"]:checked","prev":{"sel":"button[\\@click=\"prevPage()\"]"},"next":{"sel":"button[\\@click=\"nextPage()\"]"},"title":{"sel":"#nav-top a[href*=\"/series/\"]","url":"|attr:href","name":"span|text"},"chapter":{"trigger":"button[hx-target=\"#chapter-select-body\"]"}},"chapters":{"chapter":{"sel":"a[href*=\"/chapters/\"]","url":"|attr:href","label":"span span|text","at":"time|attr:datetime"}},"search":{"lazy":true,"empty":"main [role=\"alert\"]","title":{"sel":"article:has(a img)","url":"a|attr:href","name":"a:not(:has(img))|text","img":"a img|attr-contain:src"}}},{"id":"lua","releases":{"title":{"sel":"div:has(> div > a[href*=\"/series/\"]):has(a > h5)","url":"a|attr:href","name":"h5|text","chapter":{"sel":"a + div a","url":"|attr:href","label":"span:first-child|text","at":"span:not(:first-child)|text"}}},"title":{"name":"h1|text","img":"main div > img[src]|attr-contain:src","hasMore":"[aria-current=\"page\"]","chapter":{"sel":"a[href*=\"/series/\"]:has(> li)","url":"|attr:href","label":"div > span:first-child|text","at":"div > span:not(:first-child)|text"}},"reader":{"label":"h1|text","prev":"a[href*=\"/series/\"]:has(> button [data-icon=\"chevron-left\"])|attr:href","next":"a[href*=\"/series/\"]:has(> button [data-icon=\"chevron-right\"])|attr:href","content":"body","title":{"sel":"nav:has(h1)","name":"h2|text","url":"a:has(svg[data-icon=\"house\"])|attr:href"},"chapter":{"trigger":"button:has(> [data-icon=\"list\"])","sel":"#headlessui-portal-root ul a[href*=\"/series/\"]:has(> li)","url":"|attr:href","label":"span:first-child|text","at":"span:not(first-child)|text"}},"chapters":{"chapter":{"json":true,"sel":"","label":"chapter_name","url":"chapter_slug","at":"created_at"}}},{"id":"mangak","releases":{"title":{"sel":"article","name":"img|attr:title","url":"a|attr:href","chapter":{"sel":"article a ~ div a:has(> span)","url":"|attr:href","label":"span|text"}}},"title":{"sel":"[aria-label=\"Manga sections\"]","name":"h1|text","tags":"a[href*=\"/genres/\"]|text","hasMore":"div:has(> [data-chapter-row]) ~ div button","first":"a:has([d=\"M7 5v14l12-7Z\"])|attr:href","chapter":{"sel":"a[data-chapter-row]","url":"|attr:href","label":"div div|text","at":"div span span|text"}},"reader":{"label":"[aria-label=\"Back\"] ~ span:last-of-type|text","title":{"sel":"[aria-label=\"Back\"] ~ a:nth-of-type(2)","url":"|attr:href","name":"|text"},"content":"#images","imgDivs":"[data-page-idx]","chapter":{"json":"https://api.mangak.io/titles/{titleId}/chapters","sel":"data.chapters","url":"slug","label":"name","at":"updated_at"}},"search":{"lazy":true,"loading":".animate-spin","title":{"sel":"article","name":"img|attr:title","url":"a|attr:href","chapter":{"sel":"article a ~ div a:has(> span)","url":"|attr:href","label":"span|text"}}}},{"id":"rolia","releases":{"title":{"sel":"#manga-grid .group","url":"a|attr:href","name":"a|attr:title","chapter":{"sel":"a ~ div:has(a)","url":"a|attr:href","label":"a|text","at":"span|text"}}},"title":{"id":"[data-manga-id]|attr:data-manga-id","name":"h1|text","img":"img[alt*=\"Cover background\"]|attr-contain:src","tags":"a[href*=\"/tag/\"]|text","first":"a#start-reading-btn|attr:href"},"reader":{"title":{"url":"a[href*=\"/manga/\"][title]|attr:href","name":"a[href*=\"/manga/\"][title]|attr:title","id":"[data-manga-id]|attr:data-manga-id"},"label":"#chapter-select option:checked|text","content":"#chapter-images-container","imgs":".comic-image-container img|[attr:data-src,attr-contain:src]","chapter":{"sel":"#chapter-select option","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":"a[href*=\"/manga/\"]","url":"|attr:href","name":"h3|text"}}},{"id":"lelscanfr","releases":{"title":{"sel":"div:has(> #card-real)","url":"a|attr:href","name":"h2|text","chapter":{"sel":"#card-real + div div:has(a)","label":"b|text","url":"a|attr:href","at":"a + span|text"}}},"title":{"name":"main h2|text","img":"main img[alt]|attr-contain:src","tags":"main a[href*=\"genre=\"]|text","type":"a[href*=\"type=\"]|text","hasMore":"ul.pagination","chapter":{"sel":"#chapters-list > a","url":"|attr:href","label":"div:first-child > span|text","at":"div:nth-child(2) > span"}},"reader":{"label":"h2|text","title":{"sel":"h3 a","url":"|attr:href","name":"|text"},"content":"#chapter-container, main","lstrip":"#reading-types option[value=\"long\"]:checked","lstripBtn":"#reading-types option[value=\"long\"]","prev":"div:has(#chapter-select) + div a:first-child[href*=\"/manga/\"]|attr:href","next":"div:has(#chapter-select) + div a:last-child[href*=\"/manga/\"]|attr:href","chapter":{"sel":"div:has(~ #chapter-container) #chapter-select option","label":"|text","url":"|text"}}},{"id":"phoenix","releases":{"title":{"sel":".main__latest-releases-card","url":"a|attr:href","name":"h3 text","chapter":{"sel":"a.main__latest-releases-card-chapter","url":"|attr:href","label":".main__latest-releases-card-chapter-number|text","at":".main__latest-releases-card-chapter-date|text"}}},"title":{"name":"h1|text","img":"img.project__cover|attr-contain:src","chapter":{"sel":"a.project__chapter","url":"|attr:href","label":".project__chapter-title|text","at":".project__chapter-date|text"}},"reader":{"label":".chapter__nav-chapter-title-number|text","title":{"sel":"a.chapter__nav-chapter","url":"|attr:href","name":".chapter__nav-title|text"},"content":".chapter-images__container","prev":"a.chapter__previous|attr:href","next":"a.chapter__next|attr:href","chapter":{"trigger":".chapter-images__controls-chapter","sel":".chapter-list .chapter_item a","url":"|attr:href","label":"|text"}}},{"id":"manhwaz","title":{"name":".post-title h1|text","img":".summary_image img[alt]|attr-contain:src","tags":".genres-content a[rel=\"tag\"]|text","chapter":{"sel":".wp-manga-chapter","label":"a|text","url":"a|attr:href","at":".chapter-release-date i|text"}},"reader":{"label":".breadcrumb .active|text","title":{"sel":".breadcrumb li:has(+ .active) a","url":"|attr:href","name":"|text"},"content":"#chapter_content, .reading-content","prev":".nav-previous a|attr:href","next":".nav-next a|attr:href","chapter":{"sel":"#manga-reading-nav-head .single-chapter-select option","url":"|attr:value","label":"|text"}},"search":{"title":{"sel":".page-item-detail","url":"a|attr:href","name":"h3 a|text","img":"img|attr-contain:src","chapter":{"sel":".chapter-item ","url":"a|attr:href","label":"a|text","at":".post-on|text"}}}},{"id":"dynasty","title":{"name":"h2.tag-title b|text","img":".cover img|attr-contain:src","tags":".tag-tags a.label|text","chapter":{"sel":".chapter-list dd:has(> a.name)","url":"a|attr:href","label":"a|text","at":"small|text"}},"reader":{"label":"h3#chapter-title b|text","title":{"sel":"h3#chapter-title a","url":"|attr:href","name":"|text"},"content":"#image","prev":"a#prev_link|attr:href","next":"a#next_link|attr:href"},"search":{"title":{"sel":".chapter-list a.name","url":"|attr:href","name":"|text"}}},{"id":"fmteam","releases":{"title":{"sel":".item:has(h5 a)","name":"h5 a|text","url":"h5 a|attr:href","chapter":{"sel":"a[href*=\"/read/\"]","label":"|text","url":"|attr:href"}}},"title":{"lazy":true,"sel":"#comic","name":"#comic .card-header|text","img":"#comic .card-body .thumbnail-full img|attr-contain:src","type":"#comic .card-body div:has(> label)|row:format","tags":"#comic .card-body div:has(> label)|row:genres","chapter":{"sel":"div:has(> div > .chapter a[href*=\"/read/\"])","label":"a[href*=\"/read/\"]|text","url":"a[href*=\"/read/\"]|attr:href","at":"div:last-child[title]|attr:title"}},"reader":{"title":{"sel":"#reader-controls-title a","name":"|text","url":"|attr:href"},"label":"select[name=\"jump-chapter\"] option:checked|text","content":"#reader-images","imgDivs":"#reader-images [data-page]","lstrip":".active > [data-value=\"long-strip\"]","lstripBtn":"[data-value=\"long-strip\"]","prev":"#chapter-link-left[href*=\"/read\"]|attr:href","next":"#chapter-link-right[href*=\"/read\"]|attr:href","chapter":{"sel":"select[name=\"jump-chapter\"] option","label":"|text","url":"|attr:value"}}},{"id":"readallcomics","title":{"name":"h1 b|text","img":".description-archive img|attr-contain:src","tags":"h1 ~ div p strong|text","chapter":{"sel":".list-story li a","url":"|attr:href","label":"|text"}},"reader":{"sel":"center > p:has(> img)","label":"h3 strong|text","title":{"sel":".pinbin-category a","name":"|text","url":"|attr:href"},"content":"center > p:has(> img)","imgs":"center > p > img|[attr:data-jh-lazy-img,attr-contain:src]","chapter":{"sel":"center:has(> p > img) ~ div center select option","label":"|text","url":"|attr:value"}}},{"id":"philia","releases":{"title":{"sel":"main .unit","name":"a.c-title|text","url":"a.c-title|attr:href","chapter":{"sel":"li a","url":"|attr:href","label":".ch-num|text","at":".ch-date|text"}}},"title":{"name":"h1.serie-title|text","img":"img.cover|attr-contain:src","type":".stat-label|row:type","chapter":{"sel":".chapter-group a","url":"|attr:href","label":"zebi|text","at":".time|text"}},"reader":{"label":".current-type-number|text","title":{"sel":"a.manga-title","url":"|attr:href","name":"|text"},"content":"#ch-images","chapter":{"sel":".chapter-list ul .item","url":"|attr:data-chapter","label":"a|text"}},"search":{"title":{"sel":".unit","url":"a|attr:href","name":".c-title|name","img":"img|attr-contain:src","chapter":{"sel":".content > li a","url":"|attr:href","label":".ch-num|text","at":"ch-date|text"}}}},{"id":"batcave","releases":{"title":{"sel":"li.latest","name":"a.latest__title|text","url":"a.latest__title|attr:href","chapter":{"sel":".latest__chapter a","url":"|attr:href","label":"|text"}}},"title":{"name":"#dle-content h1|text","img":"#dle-content .img-wide img|attr-contain:src","id":"[data-ratig-layer-id]|attr:data-ratig-layer-id","chapter":{"sel":".cl__item","label":".cl__item-num|text","url":"a|attr:href","at":".cl__item-date|text"}},"reader":{"label":".chapter__selector-trigger__title|text","title":{"sel":"a.header__post-link","url":"|attr:href","name":".header__post-title|text"},"content":".reader-view","chapter":{"trigger":".chapter__selector-trigger","sel":".chapters__list a","url":"|attr:href","label":"|text"},"prev":".chapter__selector a:has(.fa-angle-left)[href*=\"/reader/\"]|attr:href","next":".chapter__selector a:has(.fa-angle-right)[href*=\"/reader/\"]|attr:href"}},{"id":"tcb","title":{"name":"h1|text","img":"main img|attr-contain:src","chapter":{"sel":"main a[href*=\"/chapters/\"]","url":"|attr:href","label":"div|text"}},"reader":{"label":"h1|text|remove:.+-","title":{"name":"h1|text|remove:-.+","url":"main a[href*=\"/mangas/\"]|attr:href"},"prev":"a[href*=\"/chapters/\"]:has(+ a[href*=\"/mangas/\"])|attr:href","next":"a[href*=\"/mangas/\"] + a[href*=\"/chapters/\"]|attr:href","content":"main"}},{"id":"mangapill","releases":{"title":{"sel":"div:has(> a[href*=\"/chapters/\"]):has(div > a[href*=\"/manga/\"])","name":"a[href*=\"/manga/\"]|text","url":"a[href*=\"/manga/\"]|attr:href","chapter":{"sel":"div:has(> a[href*=\"/chapters/\"])","url":"a[href*=\"/chapters/\"]|attr:href","label":"a[href*=\"/chapters/\"]|text","at":"time-ago|attr:datetime"}}},"title":{"name":"h1|text","img":"header ~ div img|attr:data-src","tags":"a[href*=\"?genre=\"]|text","chapter":{"sel":"#chapters a[href*=\"/chapters/\"]","url":"|attr:href","label":"|text"}},"reader":{"label":"h1#top|text","title":{"sel":"#js-chapter-selector-modal div:has(> a[href*=\"/manga/\"])","name":"#chapter-selector-modal-title|text","url":"a|attr:href"},"content":"div:has(> chapter-page)","imgs":"chapter-page picture img|attr-contain:src","prev":"a[data-hotkey=\"ArrowLeft\"]|attr:href","next":"a[data-hotkey=\"ArrowRight\"]|attr:href","chapter":{"trigger":"button[data-micromodal-trigger=\"js-chapter-selector-modal\"]","dismiss":"#js-chapter-selector-modal button[data-micromodal-close]","sel":"#js-chapter-selector-modal a[href*=\"/chapters/\"]","url":"|attr:href","label":"|text"}},"search":{"title":{"sel":"div:has(> a img)","url":"a|attr:href","name":"a:not(:has(img)) div|text","img":"a img|[attr:data-src,attr-contain:src]"}}},{"id":"mangataro","releases":{"title":{"sel":"#manga-grid > div:has(a + div a[href*=\"/read/\"])","name":"a|attr:title","url":"a|attr:href","chapter":{"sel":"div:has(> a[href*=\"/read/\"])","url":"a|attr:href","label":"a|text","at":"span:last-child|text"}}},"title":{"name":"h1|text","img":".manga-page-wrapper img|attr-contain:src","tags":".manga-page-wrapper a[href*=\"/tag/\"]|text","type":"h1 + p + div + div > span|text","first":"a#start-reading-btn|attr:href"},"reader":{"title":{"sel":"a[href*=\"/manga/\"]","url":"|attr:href","name":"span|text"},"label":"select#chapter-select option:checked|text","content":".reader","imgs":".comic-image-container img|[attr:data-src,attr-contain:src]","chapter":{"sel":"select#chapter-select option","url":"|attr:value","label":"|text"}},"search":{"title":{"sel":".group a[href*=\"manga\"]","url":"|attr:href","name":"img|attr:alt"}}},{"id":"demonic","releases":{"title":{"sel":".updates-element-info","name":"h2 a|text","url":"a|attr:href","chapter":{"sel":".chap-date","url":"a|attr:href","label":"a|text","at":"div:last-child a|text"}}},"title":{"name":"h1.big-fat-titles|text","img":"#manga-page img[alt]|attr-contain:src","chapter":{"sel":"#chapters-list li > a","url":"|attr:href","label":"|text","at":"span|text"}},"reader":{"sel":".chapter-info h1 a","title":{"sel":".chapter-info h1 a","url":"|attr:href","name":"|text"},"label":"h2|text","content":"body","imgs":"img.imgholder:not([data-tried]):not([src*=\"/free_ads\"])|attr-contain:src","chapter":{"sel":"h2 + .chapters-nav select option","label":"|text","url":"|attr:value"}}},{"id":"atsu","title":{"lazy":true,"sel":"h1","name":"h1|text","img":".poster|attr-contain:src","tags":"a[href*=\"/explore?genres=\"]|text","first":"a[href*=\"/read/\"]:has([data-icon=\"book-open\"])|attr:href","trackers":{"anl":"","mal":""},"hasMore":"button:has(+ div > a[href*=\"/read/\"])","chapter":{"sel":"div:has(> a[href*=\"/read/\"]):has(div.truncate):has(~ button), div:not(:has(> button)) > div:has(> a[href*=\"/read/\"]):has(div.truncate)","url":"a|attr:href","label":"div.truncate:first-child|text","at":"div.truncate + div:last-child|text"}},"chapters":{"chapter":{"json":true,"sel":"chapters","label":"number","url":"id"}},"search":{"lazy":true,"empty":"div > h1","title":{"sel":"a[href*=\"/manga/\"]","url":"|attr:href","name":"p|text","img":"img|attr-contain:src"}}},{"id":"kali","title":{"name":".name h1|text","img":".img-cover img|[attr:data-src,attr-contain:src]","tags":".meta a[href*=\"/genres/\"]|text","chapter":{"sel":"#chapter-list li > a","url":"|attr:href","label":".chapter-title|text","at":".chapter-update|text"}},"reader":{"lazy":true,"sel":".chapter-image","title":{"sel":".breadcrumbs-item a[href*=\"/manga/\"]","url":"|attr:href","name":"span|text"},"label":".breadcrumbs-item:last-child span|text","imgDivs":".chapter-image","prev":"#btn-prev|attr:href","next":"#btn-next|attr:href","chapter":{"trigger":"#load-chapters","sel":".chapter-select option","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":".book-detailed-item","img":"img|[attr:data-src,attr-contain:src]","name":"h3 a|text","url":"h3 a|attr:href","chapter":{"sel":".thumb","label":".latest-chapter|text"}}}},{"id":"mangafreak","releases":{"title":{"sel":".latest_item","url":"a|attr:href","name":"a.name|text","chapter":{"sel":".chapter_box a","url":"|attr:href","label":"|text"}}},"title":{"name":"h1|text","img":".manga_series_image img|attr-contain:src","tags":".series_sub_genre_list > a|text","chapter":{"sel":".manga_series_list tbody tr","url":"a|attr:href","label":"a|text","at":"td:last-child|text"}},"reader":{"title":{"sel":"h1.title a","url":"|attr:href","name":"|text"},"label":"h1|text","imgs":".read_image img|attr-contain:src","chapter":{"sel":".chapter_list select option","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":".manga_search_item","name":"h3 a|text","url":"a|attr:href","img":"img|attr-contain:src"}}},{"id":"readcomiconline","title":{"name":".barContent .bigChar|text","img":"#rightside img, .main img|attr-contain:src","chapter":{"sel":".listing tbody tr:has(a)","label":"a|text","url":"a|attr:href","at":"td:last-child|text"}},"reader":{"title":{"sel":"#navsubbar a","url":"|attr:href","name":"|text|pattern:Comic (.+) information"},"label":".selectEpisode option:checked|text","lstrip":"#selectReadType option[value=\"1\"]:checked","lstripBtn":"#selectReadType option[value=\"1\"]","content":"#divImage","chapter":{"sel":".selectEpisode option","url":"|attr:value","label":"|text"}}},{"id":"valir","generic":true,"meta":{"releases":"latest","titleBase":"series","readerBase":"chapter","searchBase":"series/?q=","titleIdType":"slug","defaultLang":"en","noTags":true,"trailing":true},"releases":{"title":{"sel":".latest-poster","name":"a h3|text","url":"a|attr:href","chapter":{"sel":"a[href*=\"/chapter/\"]","url":"|attr:href","label":"span div|text","at":"span:last-child|text"}}},"title":{"sel":".bg-\\[image\\:--photoURL\\]","name":"h1|text","img":".bg-\\[image\\:--photoURL\\]|bg-image","chapter":{"sel":"#chapters > a","url":"|attr:href","label":"span span|text","at":"span + div div|text"}},"reader":{"sel":"#chapter_header a[href*=\"/series/\"]","title":{"sel":"#chapter_header a[href*=\"/series/\"]","url":"|attr:href","name":"|text"},"label":"#chapter_header span:has(a[href*=\"/series/\"])|text","content":"#pages","chapter":{"sel":"#chapters > a","url":"|attr:href","label":"span span|text","at":"span + div div|text"}},"search":{"lazy":true,"delay":500,"empty":"#no_results_page","title":{"sel":"#searched_series_page > button:not(.hidden)","name":"a h3|text","url":"a|attr:href","img":"div[style*=\"background-image\"]|bg-image"}}},{"id":"rithar","releases":{"title":{"sel":".latest-poster","name":"a h3|text","url":"a|attr:href","chapter":{"sel":"a[href*=\"/read/\"]","url":"|attr:href","label":"span div|text","at":"span:last-child|text"}}},"title":{"name":"h1|text","img":"main div[style*=\"background-image\"]|bg-image","chapter":{"sel":"#chapters > a","url":"|attr:href","label":"span span|text","at":"div:has(> span) + div div|text"}},"reader":{"title":{"sel":"header a[href*=\"/series/\"]","url":"|attr:href","name":"|text"},"label":"header a[href*=\"/series/\"] + span|text","lstrip":"[x-ref=\"webtoonContainer\"]","lstripBtn":"div:has(> img[src*=\"up-down\"])","imgDivs":"[id*=\"webtoon-page-\"]","chapter":{"sel":"#chapters > a","url":"|attr:href","label":"span span|text","at":"span + div div|text"}},"search":{"title":{"sel":"#main-content button:has(a[href*=\"/series/\"])","name":"a h3|text","url":"a|attr:href","img":"div[style*=\"background-image\"]|bg-image"}}},{"id":"rawkuma","releases":{"title":{"sel":"#search-results > div","url":"a|attr:href","name":"h1|text","chapter":{"sel":"div > a:has(time)","url":"|attr:href","label":"p|text","at":"time|attr:datetime"}}},"title":{"name":"h1[itemprop=\"name\"]|text","img":"[itemprop=\"image\"] img|attr-contain:src","tags":"a[href*=\"/genre/\"] span|text","type":"h4|row:type","first":"button a[href*=\"/manga/\"]|attr:href"},"reader":{"title":{"name":"a[href*=\"/manga/\"] img[alt]|attr:alt","url":"a[href*=\"/manga/\"]|text"},"label":"div:has(> time) div|text","imgs":"section[data-image-data] > img|attr-contain:src","prev":"a[href*=\"/manga/\"]:has([data-lucide=\"chevron-left\"])|attr:href","next":"a[href*=\"/manga/\"]:has([data-lucide=\"chevron-right\"])|attr:href","chapter":{"trigger":"button[data-tippy-trigger]:has(.lucide-chevron-down)","sel":"#chapter-lists-footer li a","url":"|attr:href","label":"|text"}}},{"id":"mangaberri","releases":{"title":{"sel":".manga-horizontal-item","url":"a|attr:href","name":"a|attr:title","chapter":{"sel":"a.episode","url":"|attr:href","label":"span|text"}}},"title":{"sel":".chapters-container","name":"h1|text","img":"img.comic-img|attr-contain:src","tags":".comic-attrs a[href*=\"genre=\"]|text","chapter":{"sel":".chapters-container > a","url":"|attr:href","label":"span|text"}},"reader":{"title":{"sel":".breadcrumb-container a:nth-of-type(2)","url":"|attr:href","name":"|attr:title"},"label":".breadcrumb-container a:nth-of-type(3)|attr:title","content":".reading-container","imgs":".reading-container img|attr-contain:src","chapter":{"sel":"#top_chapter_selection option","url":"|attr:value","label":"|text"}},"search":{"title":{"sel":".manga-item","img":"img|attr-contain:src","name":"a|attr:title","url":"a|attr:href","chapter":{"sel":"a:last-of-type","url":"|attr:href","label":"|text"}}}},{"id":"kagane","title":{"lazy":true,"sel":"h1","name":"h1|text","tags":"a[href*=\"search?genres=\"] span|text","firstBtn":"button:has(.lucide-play)"},"reader":{"title":{"name":"title|text|remove:-.+","url":"a[href*=\"/series/\"]|attr:href"},"label":"title|text|remove:.+-","content":".reader-pages-content","imgDivs":"[data-page]","prev":{"sel":"a:has(.lucide-arrow-left)"},"next":{"sel":"a:has(.lucide-arrow-right)"}},"chapters":{"chapter":{"json":true,"sel":"series_books","url":"book_id","label":"chapter_no","vol":"volume_no","at":"created_at","group":"groups.0.title"}},"search":{"lazy":true,"title":{"sel":"[data-series-item]","name":"h3|text","url":"a|attr:href"}}},{"id":"mangaball","title":{"name":"h6|text","img":"#featuredComicsCarousel img[alt]|attr-contain:src","tags":"[data-tag-id]|text"},"reader":{"title":{"name":"header h6|text","url":"[type=\"application/ld+json\"]|text|remove:^[\\s\\S]*?\"url\":\\s*\"|remove:\"[\\s\\S]*$"},"label":"#chapterTitle|text","content":"#mangaPages","imgs":"#mangaPages img|[attr:data-src,attr-contain:src]","group":"#translationGroup span|text"},"search":{"lazy":true,"loading":"button .spinner-border","title":{"sel":".chapter-card","name":"a|text","url":"a|attr:href","chapter":{"sel":".chapter-list > div","url":"a|attr:href","label":"a|text","at":"div:has(> i.fa-clock)|text"}}}},{"id":"mangatr","title":{"sel":"#tab1 .info-body h1","name":"#tab1 .info-body h1|text","img":".thumbnail|attr:src","tags":".manga-meta-card a[href*=\"tur=\"]|text","first":"#results a:has(+ .chapter-container)|attr:href","hasMore":"[data-page=\"2\"]","chapter":{"sel":".chapter-item","label":"a|text","url":"a|attr:href","at":".stats|text"}},"reader":{"sel":".chapter-content","title":{"sel":"a.navbar-brand","url":"|attr:href","name":"|text"},"label":".navbar-form option:checked|text","group":".chapter-content a.label|text","content":"#chapter-images","chapter":{"sel":".navbar-form option","url":"|attr:value","label":"|text"}}},{"id":"denizi","title":{"name":".panel-heading,h2|text","img":".single-managa .boxed img, h2 ~ div img|attr-contain:src","tags":"a[href*=\"/category/\"]|text","chapter":{"sel":".chapters > li","label":"a|text","url":"a|attr:href","at":".date-chapter-title-rtl|text"}},"reader":{"title":{"sel":".nav:has(#chapter-list) a","url":"|attr:href","name":"|text"},"label":"h1 b|text","content":"#all","imgs":"#all img|[attr:data-src,attr-contain:src]","chapter":{"sel":"#chapter-list li a","url":"|attr:href","label":"|text"}}},{"id":"mangabox","releases":{"title":{"sel":".itemupdate","name":"h3 a|text","url":"a|attr:href","chapter":{"sel":"ul > li:not(:first-child)","label":"a|text","url":"a|attr:href","at":"i|text"}}},"title":{"name":"h1|text","img":".manga-info-pic img|attr-contain:src","tags":".manga-info-text a[href*=\"/genre/\"]|text","first":".read-chapter a|attr:href","hasMore":"a[href*=\"/chapter-51\"]","chapter":{"sel":".chapter-list > .row","label":"a|text","url":"a|attr:href","at":"span:last-child|attr:title"}},"reader":{"title":{"sel":".breadcrumb a[href*=\"/manga/\"]","url":"|attr:href","name":"span|text"},"label":".breadcrumb > p > span:last-child span|text","imgs":".container-chapter-reader img|attr-contain:src","chapter":{"sel":".navi-change-chapter option","label":"|text","url":"|attr:data-url"}},"search":{"title":{"sel":".story_item","url":"a|attr:href","name":".story_name a|text","img":"img|attr-contain:src","chapter":{"sel":".story_chapter","url":"a|attr:href","label":"a|text"}}}},{"id":"merlin","title":{"name":"h1#manga-title,h1|text","img":".story-cover img|attr-contain:src","tags":"#genre-tags a[href*=\"/tur/\"]|text","hasMore":"a[href*=\"/page/2/\"]","first":".story-cover-wrap + div a|attr:href","chapter":{"sel":".chapter-item a","url":"|attr:href","label":"h3|text"}},"reader":{"title":{"sel":"#breadcrumb-manga","url":"|attr:href","name":"|text"},"label":"[aria-current=\"page\"]|text","prev":"a:has(> [uk-pagination-previous])|attr:href","next":"a:has(> [uk-pagination-next])|attr:href","imgs":"#chapter-content img|attr-contain:src","chapter":{"trigger":"#chapter-toggle","sel":"#chapter-dropdown li a","url":"|attr:href","label":"|text"}}},{"id":"temple","title":{"name":"main h1|text","img":"main img[alt]|attr-contain:src","tags":"h1 + div div:last-child > p + div:last-child p|text","chapter":{"sel":"a:has(h1):has(img):has(span)","url":"|attr:href","label":"h1|text","at":"div span:last-child|text"}},"reader":{"title":{"sel":"main h1 + a","url":"|attr:href","name":"|text"},"label":"main h1|text","imgDivs":"main [data-index]","prev":"main a:has(svg):first-child|attr:href","next":"main a:has(svg):last-child|attr:href","chapter":{"trigger":"button[aria-label=\"Chapters List\"]","sel":"[role=\"dialog\"] a[href*=\"/comic/\"]","url":"|attr:href","label":"h1|text","at":"h1 + span|text"}}},{"404":".error-page","id":"comix","releases":{"title":{"json":true,"sel":"result.items","url":"url","name":"title","chapter":{"sel":"","label":"latestChapter","at":"updatedAtFormatted"}}},"title":{"lazy":true,"sel":"h1","name":"h1|text","img":".poster img|attr:src","tags":"a[href*=\"?genres_in=\"]|text","firstBtn":"button.mpage__read","hasMore":".npager","chapter":{"sel":".mchap-row","url":"a|attr:href","label":".mchap-row__ch,a span|text","at":".mchap-row__time|text","group":".mchap-row__group span|text"},"trackers":{"mal":"a[title=\"MyAnimeList\"]|attr:href","anl":"a[title=\"AniList\"]|attr:href"}},"reader":{"title":{"sel":"a.rpage-chap-ending__title","url":"|attr:href","name":"span|text || |text"},"label":".rpage-chap-ending__meta span,.rpage-dd__trigger span,.rpage-header__meta span|text || title|text","group":".rpage-chap-ending__meta strong|text","lstrip":".rpage-dir2__btn.is-on:last-child","lstripBtn":".rpage-dir2__btn:last-child","content":".rpage-main__inner, .rpage-main","imgDivs":".rpage-page","prev":{"sel":".rpage-chap-ending__nav-btn:first-child:not([disabled])","label":"span span|text"},"next":"#syncData|json:next_chapter_url"},"search":{"lazy":true,"empty":".list-empty button","title":{"sel":".lrow","url":"a|attr:href","name":"h3,.lrow__title|text","chapter":{"sel":".lrow__ch","label":"|text"}}},"chapters":{"chapter":{"trigger":".mchap-foot button[aria-label*=\"Next\"]:not([disabled])","sel":"result.items","url":"url","label":"number","vol":"volume","lang":"language","at":"createdAtFormatted","group":"group.name"},"paging":{"pageKey":"page","limitKey":"limit","limitValue":100}}},{"id":"manhuaplus","releases":{"title":{"sel":"#home-tab-update > div ","url":"a|attr:href","name":"img|attr:alt","chapter":{"sel":"div + a","url":"|attr:href","label":"|text"}}},"title":{"name":"h1|text","img":"main img|attr-contain:src","tags":"main article a[href*=\"/genres/\"]|text","chapter":{"sel":"#myUL > li","url":"a|attr:href","label":"a|text","at":"time|attr:datetime"}},"reader":{"title":{"sel":"h1 a","url":"|attr:href","name":"|text"},"label":"h1|text","content":"#chapterContent:not(:has(img[src*=\"loading.gif\"]))","imgs":"#chapterContent img:not([src*=\"loading.gif\"])|attr:src","prev":"a.prevBtn|attr:href","next":"a.nextBtn|attr:href","chapter":{"sel":"#top-control select option","url":"|attr:value","label":"|text"}},"search":{"title":{"sel":"div:has(> div + a[href*=\"/manga/\"])","url":"a|attr:href","name":"a|attr:title","chapter":{"sel":"div + a","url":"|attr:href","label":"|text"}}}},{"id":"projectsuki","releases":{"title":{"sel":".content .item","url":"a|attr:href","name":".details a|text","chapter":{"sel":"a[href*=\"/read/\"]","url":"|attr:href","label":"|text"}}},"title":{"name":"h2|text","img":".img-thumbnail|attr-contain:src","tags":"a[href*=\"/genre/\"]|text","chapter":{"sel":"tbody tr","url":"a|attr:href","label":"a|text","at":"td:last-child span|attr:title"}},"reader":{"title":{"sel":"main a:has(.fa-home)","url":"|attr:href","name":"|attr:title"},"label":"#chapter-select option:checked|text","content":".strip-reader","chapter":{"sel":"#chapter-select option","url":"|attr:value","label":"|text"}},"search":{"title":{"sel":".content > div:has(a)","url":"a|attr:href","name":"h4 a|text"}}},{"id":"mangatown","releases":{"title":{"sel":".manga_pic_list > li, .post-list > li","name":".title a, .title|text","url":"a|attr:href","chapter":{"sel":".new_chapter a, a.read-btn","url":"|attr:href","label":"|text"}}},"title":{"name":"h1.title-top,.title|text","img":".detail_info > img, .manga-detail-top img|attr-contain:src","tags":".detail_info ul li|row:genre(s) || a[href*=\"/directory/\"]|text","type":".detail_info ul li|row:type","chapter":{"sel":".chapter_list > li, .detail-ch-list > li","url":"a|attr:href","label":"a|attr:name || a|text","at":".time|text"}},"reader":{"title":{"url":".title h2 a, .title a:last-child|attr:href","name":".sharebtn a|attr:st_title || .title a:last-child|text|remove:manga$"},"label":"#top_chapter_list option:checked, .title a|text","imgs":"#viewer img:not(.reader-main-img)|attr-contain:src","chapter":{"sel":"#top_chapter_list option","url":"|attr:value","label":"|text"}},"search":{"title":{"sel":".manga_pic_list > li, .post-list > li","url":"a|attr:href","name":"a|attr:title || a|attr:rel"}}},{"id":"mangatime","title":{"name":".anime__details__title h3|text","img":".anime__details__pic|bg-image","tags":".anime__details__widget li:last-child|text","chapter":{"sel":"a:has(> .detail-main-list-main)","url":"|attr:href","label":".title3|text","at":".title2|text"}},"reader":{"label":".breadcrumb__links span:last-child|text","title":{"sel":".breadcrumb__links a:last-of-type","url":"|attr:href","name":"|text"},"content":"#chapter-pages","chapter":{"sel":"#chapter-dropdown option","url":"|attr:value","label":"|text"}}},{"id":"imhen","title":{"name":"h1|text","img":".gallery_first img[alt]|[attr:data-src,attr-contain:src]","first":".gthumb a|attr:href"},"reader":{"label":".current|text","title":{"name":"#gimg|attr:alt|remove:page\\s\\d+.*$","url":"a.return_btn|attr:href"},"imgs":"#gimg|attr-contain:src"}},{"id":"manhwaread","title":{"name":"main h1|text","tags":"main a[href*=\"/tag/\"] span|text","chapter":{"sel":"#chaptersList > a","url":"|attr:href","label":".chapter-item__name|text","at":".chapter-item__date|text"}},"reader":{"title":{"sel":"#readingNavTop h2 a","url":"|attr:href","name":"|text"},"label":"h1|text","content":"#imagesList","chapter":{"sel":"#chaptersList > a","url":"|attr:href","label":"|text"}},"search":{"title":{"sel":".manga-item","name":"h3 a|text","url":"a|attr:href","chapter":{"sel":"a.chapter-item","url":"|attr:href","label":".chapter-name|text","at":".chapter-timestamp|text"}}}},{"id":"softkomik","releases":{"title":{"sel":".item-komik:has(.item-desc)","url":"a|attr:href","name":".item-title a|text","chapter":{"sel":".list-chapter a","url":"|attr:href","label":"span|text"}}},"title":{"lazy":true,"sel":".chapter-list a","name":"h1:has(+h2)|text","tags":".genre-des a|text","chapter":{"sel":".chapter-list a","url":"|attr:href","label":"|text"}},"reader":{"title":{"sel":"a:has(.fa-book)","url":"|attr:href","name":"p|text"},"label":".bt-show .item-chevron a:not([href])|text","content":".container-img:has(> img)","prev":"a:has(.fa-chevron-left)|attr:href","next":"a:has(.fa-chevron-right)|attr:href"},"search":{"title":{"sel":".item-komik","name":".item-title a|text","url":"a|attr:href","img":"img:has(~ noscript)|bg-image","chapter":{"sel":".list-chapter a","url":"|attr:href","label":"span|text"}}}},{"id":"eva","releases":{"title":{"sel":".lux-masonry-grid .lux-card","url":"a|attr:href","name":"h3 a |text","chapter":{"sel":".lux-chapters a","url":"|attr:href","label":".ch-text|text","at":".ch-time|text"}}},"title":{"name":"h1|text","img":".poster-box img|attr-contain:src","tags":"a.gen-tag|text","chapter":{"sel":"#chapterlist li","url":"a|attr:href","label":"|attr:data-num","at":".chapterdate|text"}},"reader":{"sel":"#readerArea","title":{"url":".reader-nav-link[title=\"Series\"]|attr:href","name":".manga-name|text"},"label":"h1.chapter-name|text","imgs":".page-wrapper img|attr-contain:src","chapter":{"sel":".dropdown-list a","url":"|attr:href","label":"span|text"}},"search":{"title":{"sel":".manga-card-v","name":"h3 a |text","img":"img|attr-contain:src","url":"a|attr:href","chapter":{"sel":"a:has(> .v-time)","url":"|attr:href","label":"span|text","at":".v-time|text"}}}},{"id":"mada","releases":{"title":{"sel":".postbody .legend-inner","url":"a|attr:href","name":"h3 a|text","chapter":{"sel":".legend-chapters a","url":"|attr:href","label":".ch-txt|text","at":".ch-time|text"}}},"title":{"name":"h1|text","tags":"a.lh-genre-tag|text","chapter":{"sel":"#chapters-list-container a","url":"|attr:href","label":".ch-num|text","at":".ch-date|text"}},"reader":{"title":{"sel":".reader-title-group","name":".reader-manga-title|text","url":"a|attr:href"},"label":".reader-chapter-badge|text","chapter":{"sel":".chapter-modal a","url":"|attr:href","label":"|text"},"content":"#readerarea","imgs":"#readerarea img|attr-contain:src"},"search":{"title":{"sel":".legend-inner","name":"h3 a|text","url":"a|attr:href","chapter":{"sel":".legend-chapters a","url":"|attr:href","label":".ch-txt|text","at":".ch-time|text"}}}},{"id":"otakuangel","title":{"name":"h1|text","img":"main img|attr:src","tags":"a[href*=\"?kategori=\"]|text","chapter":{"sel":"a[href*=\"/{titleSlug}/\"]","url":"|attr:href","label":"h3|text"}},"reader":{"title":{"sel":"a:has(h1)","url":"|attr:href","name":"h1|text"},"label":"h2|text","lstrip":"option[value=\"long-strip\"]:checked","lstripBtn":"option[value=\"long-strip\"]","content":"div:has(> .image-container)","imgDivs":".image-container","chapter":{"sel":"h2 + select option","url":"|text","label":"|text"}},"search":{"title":{"sel":"main [role=\"button\"]:has(a)","url":"a|attr:href","name":"a|text","chapter":{"sel":"a ~ div a","url":"|attr:href","label":"|text"}}}},{"id":"dflow","title":{"name":"h1|text","tags":"h1 ~ div strong + div > span|text","chapter":{"sel":"div:has(> a[href*=\"/ReadChapter/\"])","url":"a|attr:href","label":"h5|text","at":"p:has(> .fa-calendar)|text|remove:\\d+\\sviews$"}},"reader":{"title":{"sel":"h2 a","url":"|attr:href","name":"|text"},"label":"h2 + p|text","content":"#readerContainer","imgs":"#readerContainer img|attr-contain:src","chapter":{"sel":"select option[value*=\"/ReadChapter/\"]","url":"|attr:value","label":"|text"}},"search":{"title":{"sel":".manga-card","url":"a|attr:href","name":"h5|text"}}},{"id":"inkora","title":{"name":"h1|text","chapter":{"sel":"a[href*=\"/read/\"]","url":"|attr:href","label":"p|text","at":"p + div p|text"}},"reader":{"lazy":true,"sel":"button:has(.lucide-arrow-left) + a span:first-child:not(:empty)","title":{"sel":"button:has(.lucide-arrow-left) + a","url":"|attr:href","name":"span:first-child|text"},"label":"button:has(.lucide-arrow-left) + a span:last-child|text","imgs":"img[alt*=\"Page\"]|attr-contain:src","prev":{"sel":"button:has(.lucide-chevron-left):not([disabled])"},"next":{"sel":"button:has(.lucide-chevron-right):not([disabled])"},"chapter":{"trigger":"button:has(.lucide-menu)","sel":".fixed a[href*=\"/read/\"]","url":"|attr:href","label":"span|text"}},"chapters":{"chapter":{"json":true,"sel":"chapters","url":"id","label":"chapterNumber","at":"releaseDate"}},"search":{"lazy":true,"loading":".lucide-loader-circle","title":{"sel":"a[href*=\"/manhwa/\"]","url":"|attr:href","name":"h3|text","chapter":{"sel":"span:has(> .lucide-book-open)","label":"|text"}}}},{"id":"moins","title":{"lazy":true,"sel":"#cta-first-container a","name":"h1|text","img":"#manga-cover|attr:src","chapter":{"sel":"a.manga-detail__chapter","url":"|attr:href","label":".manga-detail__chapter-num|text","at":"manga-detail__chapter-right span|text"}}},{"id":"stone","title":{"name":"main h1|text","tags":"a[href*=\"?genre=\"]|text","chapter":{"json":"https://stonescape.xyz/api/series/{titleId}/chapters","sel":"chapters","label":"chapterNumber","url":"chapterNumber","at":"createdAt"}},"reader":{"title":{"sel":"header a[href*=\"/series/\"]","url":"|attr:href","name":"span|text"},"label":"button.s-select-trigger span|text","content":".s-reader__pages","imgDivs":".s-page-image","chapter":{"json":"https://stonescape.xyz/api/series/by-slug/{titleSlug}/chapters","sel":"chapters","label":"chapterNumber","url":"chapterNumber","at":"createdAt"}},"search":{"lazy":true,"loading":".s-skeleton","title":{"sel":"a[href*=\"/series/\"]","url":"|attr:href","name":"h3|text"}}},{"id":"rinko","releases":{"title":{"sel":".comic-card__body","url":"a|attr:href","name":"a|text","chapter":{"sel":"a.chapter-item","url":"|attr:href","label":"label|text","at":"span|text"}}},"title":{"name":"h1|text","img":".comic-cover img|attr-contain:src","tags":".genre|text","chapter":{"sel":".chapter a","url":"|attr:href","label":".chapter-number|text","at":".chapter-date|text"}},"reader":{"title":{"sel":".chapter-breadcrumb a[href*=\"/comic/\"]","url":"|attr:href","name":"|text"},"label":".breadcrumb-current|text","prev":{"sel":"a.prev","url":"|attr:href","label":".nav-chapter-name"},"next":{"sel":"a.next","url":"|attr:href","label":".nav-chapter-name"},"content":".images-flow"},"search":{"title":{"sel":".ac-card","url":"a|attr:href","name":".ac-title|text"}}},{"404":"div:has(.lucide-file-question-mark) + h1","id":"valir2","releases":{"title":{"sel":"[role=\"gridcell\"]","url":"a|attr:href","name":"h3|text","chapter":{"sel":"div:first-child > a[href*=\"/chapter/\"]","url":"|attr:href","label":"div:first-child span|text","at":"div:not(:first-child) span"}}},"title":{"sel":"h1","lazy":true,"name":"h1|text","tags":"a[href*=\"?tag=\"] span|text","first":"a[href*=\"/chapter/\"]:has(button)|attr:href","hasMore":"a[href*=\"page=2\"]:has(button)","chapter":{"lazy":false,"sel":"[role=\"tabpanel\"]:not(:has(a[href*=\"page=2\"])) a[href*=\"/chapter/\"]","url":"|attr:href","label":"div span|text","at":"span:has(.lucide-clock) span|text"}},"reader":{"sel":"h1","lazy":true,"title":{"name":"h1|text","url":"a:has(~ div h1)|attr:href"},"label":"h1 ~ p|text","imgDivs":":not([data-page]) > [data-page]","content":"main","prev":{"sel":"main ~ div button:has(.lucide-chevron-left)"},"next":{"sel":"main ~ div button:has(.lucide-chevron-right)"},"chapter":{"trigger":"button:has(.lucide-book-open) ~ button:has(.lucide-menu)","sel":"[data-radix-scroll-area-viewport] a","url":"|attr:href","label":"p|text"}},"search":{"lazy":true,"empty":"div[data-state=\"active\"]:not(:has(a)):not(:empty)","title":{"sel":"div[data-state=\"active\"] a:has(img)","url":"|attr:href","name":"h3|text"}}},{"404":"img[src$=\"404.png\"]","id":"silentquill","releases":{"title":{"sel":"#content-all .bigor","url":"a|attr:href","name":".tt a|text","chapter":{"sel":".chfiv a","url":"|attr:href","label":".fivchap|text","at":".fivtime|text"}}},"title":{"sel":".seriestere","name":"h1|text","img":"img[itemprop=\"image\"]|attr-contain:src","hasMore":".kdt8-load-more","first":"a.kdt8-btn-first|attr:href","chapter":{"sel":"a.kdt8-ch-item","url":"|attr:href","label":".kdt8-ch-num|text","at":".kdt8-ch-date|text"}},"reader":{"sel":".readercontent","title":{"sel":"a.back-series","url":"|attr:href","name":"|attr:title"},"label":".ch-num|text","content":"#readerarea","imgs":".ts-main-image|[attr:data-src,attr-contain:src]","lstrip":"#readingmode option[value=\"full\"]:checked","lstripBtn":"#readingmode option[value=\"full\"]","chapter":{"sel":"#reader-topbar select#chapter option:not([disabled])","url":"|attr:value","label":"|text"}},"search":{"title":{"sel":".listupd .bsx","name":".bigor .tt|text","url":"a|attr:href"}}},{"id":"qi","releases":{"title":{"sel":"[aria-label=\"Latest Updates\"] article","url":"a|attr:href","name":".item-title|text","chapter":{"sel":"a.chapter-row","url":"|attr:href","label":".chapter-num|text","at":".chapter-time|text"}}},"title":{"name":"h1|text","tags":".genre-tag|text","hasMore":".page-btn[aria-label=\"Page 2\"]","first":".cover-actions a|attr:href","chapter":{"sel":".cl-list a","url":"|attr:href","label":".cl-num|text","at":".cl-date|text"}},"reader":{"title":{"sel":"a.r-back","url":"|attr:href","name":"|attr:aria-label"},"label":"nav [aria-current=\"page\"]|text","content":".r-strip","prev":{"sel":"nav button[aria-label=\"Previous chapter\"]"},"next":{"sel":"nav button[aria-label=\"Next chapter\"]"}},"chapters":{"chapter":{"json":true,"sel":"data","url":"slug","label":"number","at":"createdAt"},"paging":{"lastPage":"totalPages","pageKey":"page","limitKey":"perPage","limitValue":100}},"search":{"title":{"sel":"a.bc","url":"|attr:href","name":"|attr:aria-label"}}},{"id":"hades","releases":{"title":{"sel":".manga-card-container","url":"a|attr:href","name":"h4|text","chapter":{"sel":"a.ch-item","url":"|attr:href","label":".ch-name|text","at":".ch-date|text"}}},"title":{"name":"h1|text","img":".info-poster img|attr-contain:src","tags":".genre-list a|text","chapter":{"sel":"#chapterlist a","url":"|attr:href","label":".chapternum|text","at":".chapterdate|text"}},"reader":{"sel":"#readerarea","title":{"sel":"a.back-to-series","url":"|attr:href","name":"|text"},"label":"h1|text","content":"#readerarea","lstrip":"#readingmode option[value=\"full\"]:checked","lstripBtn":"#readingmode option[value=\"full\"]","prev":"a.ch-prev-btn:not(.disabled)|attr:href","next":"a.ch-next-btn:not(.disabled)|attr:href","chapter":{"sel":".ctop #chapter option:not([disabled]):not([value=\"\"])","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":".manga-card-container","url":"a|attr:href","name":"h4|text"}}},{"id":"shadowi","releases":{"title":{"sel":"div:has(> img):has(h3)","url":"a[href*=\"/series/\"]|attr:href","name":"h3|text","chapter":{"sel":"div","url":"a[href*=\"/read/\"]|attr:href","label":"h4|text"}}},"title":{"name":"h1|text","img":"a[href*=\"/thumbnails\"] img|attr-contain:src","tags":"h1 ~ div [data-slot=\"badge\"]|text","hasMore":"button:not([disabled]) .lucide-chevron-right","firstBtn":"button:has(.lucide-play)","chapter":{"sel":".chapters-card a","url":"|attr:href","label":"h4|text","at":"h4 ~ div span:nth-child(5)|text"},"trackers":{"anl":"","mal":""}},"reader":{"title":{"sel":"header a[href*=\"/series/\"]","url":"|attr:href","name":"|text"},"label":"button[role=\"combobox\"] span|text","content":".chapter-reader-continuous-wrap","imgs":".chapter-reader-image-cell|attr-contain:src","prev":"a:has(+ button[role=\"combobox\"])|attr:href","next":"button[role=\"combobox\"] + a|attr:href","chapter":{"trigger":"button[role=\"combobox\"]","sel":"[role=\"option\"]","label":"[id] span|text"}},"search":{"lazy":true,"empty":"ul[role=\"list\"]:empty","title":{"sel":"main ul li:has(h2)","url":"a|attr:href","name":"h2|text"}}},{"id":"nika","title":{"name":"h1|text","tags":"a[href*=\"tag=\"]|text","type":"div:has(+ .lucide-book-marked) span:last-child|text","first":"a:has(.lucide-book-open)|attr:href","hasMore":"button[disabled] + button + button + button:last-child:not([disabled])","chapter":{"sel":"a[href*=\"/read/\"]:has(.lucide-eye)","url":"|attr:href","label":"h3|text","at":"div:last-child span:nth-child(3)|text"}},"reader":{"content":"div:has(> [data-page-index])","label":".lucide-book-open ~ span|text","title":{"sel":"a[href*=\"/series/\"]","url":"|attr:href","name":"|text"},"prev":{"sel":"a:has(.lucide-skip-back)","url":"|attr:href","label":"|text"},"next":{"sel":"a:has(.lucide-skip-forward)","url":"|attr:href","label":"|text"},"chapter":{"trigger":"button:has(.lucide-list)","sel":".fixed a[href*=\"/read/\"]:has(.lucide-calendar)","url":"|attr:href","label":"span|text","at":".lucide-calendar + span|text"}}},{"id":"manga18","releases":{"title":{"sel":".recoment_box .story_item","url":"a|attr:href","name":".mg_name a|text","chapter":{"sel":".mg_chapter .item","url":"a|attr:href","label":".chapter_count a|text","at":".chapter_time span|text"}}},"title":{"name":"h1|text","img":".detail_avatar img|attr-contain:src","tags":".detail_infomation a[href*=\"/manga-list/\"]|text","chapter":{"sel":".chapter_box .item","url":"a.chapter_num|attr:href","label":"a.chapter_num|text","at":".chapter_info|text"}},"reader":{"title":{"sel":".breadcrumb li:nth-child(2) a","url":"|attr:href","name":"|text"},"label":".chapter_name span|text","content":"#chapter_boxImages","chapter":{"sel":"select#slcChapter option","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":".story_item","name":"mg_name a|text","url":"a|attr:href","chapter":{"sel":".mg_chapter .item","url":"a|attr:href","label":".chapter_count a|text","at":".chapter_time span|text"}}}},{"id":"mangolibreria","title":{"name":"h1|text","tags":"a[href*=\"genres=\"]|text","chapter":{"allBtn":"div:has(> a[href*=\"/chapters/\"]) + div button:has(.lucide-arrow-down)","sel":"a[href*=\"/chapters/\"]","url":"|attr:href","label":"span|text","at":"svg + span|text"}},"reader":{"title":{"sel":"a:has(h1)","url":"|attr:href","name":"|text"},"label":"a:has(h1) ~ div span|text","content":"main","prev":{"sel":"a:has(.lucide-arrow-left)"},"next":{"sel":"a:has(.lucide-arrow-right)"}},"search":{"title":{"sel":"div:has(> a[href*=\"/comics/\"] img)","name":"h3|text","img":"img|[attr:data-src,attr-contain:src]","url":"a|attr:href","chapter":{"sel":"a[href*=\"/chapters/\"]","url":"|attr:href","label":"span|text","at":".lucide-clock + span|text"}}}},{"id":"mangalivre","title":{"name":".manga-title|text","img":".manga-cover img|attr-contain:src","tags":".manga-tag|text","chapter":{"sel":".chapter-item","url":"a|attr:href","label":".chapter-number|text","at":".chapter-date|text"}},"reader":{"title":{"sel":".manga-title a","url":"|attr:href","name":"|text"},"label":".manga-title|text","content":".chapter-images","imgs":"img.chapter-image|attr-contain:src","chapter":{"sel":".chapter-dropdown-content > a","url":"|attr:href","label":"|text"}},"search":{"title":{"sel":".manga-card-image","url":"a|attr:href","name":"h3|text"}}},{"id":"leituramanga","title":{"name":"h1|text","tags":"h1 ~ div a[href*=\"/genre/\"] span|text","first":"a[href*=\"/chapter/\"]|attr:href","hasMore":".absolute button","chapter":{"sel":"div:has(> div > a):has(.lucide-calendar)","url":"a|attr:href","label":"a span|text","at":"span:has(.lucide-calendar)|text"}},"reader":{"title":{"sel":"#breadcrumb a[href*=\"/manga/\"]","url":"|attr:href","name":"|text"},"label":"#breadcrumb li:last-child span|text","content":"#chapter-image-list","prev":"a:has(.lucide-chevron-left)|attr:href","next":"a:has(.lucide-chevron-right)|attr:href","chapter":{"json":"https://api.leituramanga.net/api/chapter/get-by-manga-id","sel":"data.data","label":"chapterNumber","url":"chapterNumber","at":"releaseDate"}},"search":{"lazy":true,"empty":"#search-content-id > div:empty","title":{"sel":"#search-content-id div:has(> a img)","url":"a|attr:href","name":"a|attr:title"}}},{"id":"mgread","title":{"name":"h1|text","id":"#follow-btn|attr:data-id","img":".story-cover img|attr-contain:src","tags":"#genre-tags a|text","hasMore":"a[href*=\"/page/2/\"]","first":"#view-comic a.uk-button|attr:href","chapter":{"sel":".chapter-item a","url":"|attr:href","label":"h3|text","at":"time|attr:datetime"}},"reader":{"title":{"id":"#chapter-toggle|attr:data-id","url":"a#breadcrumb-manga|attr:href","name":"a#breadcrumb-manga|text"},"label":"[aria-current=\"page\"]|text","content":"#chapter-content","imgs":"#chapter-content img|[attr:data-original-src,attr-contain:src]","prev":"a#prev-link|attr:href","next":"a#next-link|attr:href"},"chapters":{"chapter":{"json":true,"sel":"items","url":"slug","label":"number","at":"created_at"},"paging":{"lastPage":"total_pages","pageKey":"paged","limitKey":"per_page","limitValue":50}},"search":{"title":{"sel":"article","url":"a|attr:href","name":"img|attr:alt"}}},{"id":"manhwaweb","title":{"lazy":true,"sel":"div:has(> a[href*=\"/leer/\"])","name":"h2|text","tags":"a[href*=\"genders=\"]|text","first":"a[href*=\"/leer/\"]|attr:href","chapter":{"lazy":false,"allBtn":"button.ver_todo:not(.hidden)","sel":"div:has(a):has(~ button.ver_todo.hidden)","url":"a|attr:href","label":"div|text","at":"img + span|text"}},"reader":{"lazy":true,"sel":"a[href*=\"/manhwa/\"]","title":{"name":"header ~ div div.text-center:has(+ div > span)|text","url":"a[href*=\"/manhwa/\"]|attr:href"},"label":"header ~ div div.text-center + div > span|text","content":"body","prev":{"sel":"a[href*=\"/leer/\"]:has(+ a[href*=\"/manhwa/\"])"},"next":{"sel":"a[href*=\"/manhwa/\"] + a[href*=\"/leer/\"]"}},"search":{"lazy":true,"loading":"img[alt=\"Random Image\"]","title":{"sel":"a[href*=\"/manhwa/\"]","url":"|attr:href","name":"p|text"}}},{"id":"htairead","title":{"sel":"#mangaSummary","name":"h1|text","first":"#mangaRating ~ a|attr:href"},"reader":{"title":{"sel":"h1 a","url":"|attr:href","name":"|text"},"label":"h1","content":"#readingImages","imgDivs":".reading-page","lstrip":"#all-pages-mode:checked","lstripBtn":"[for=\"all-pages-mode\"]"}},{"id":"manhwa18","title":{"name":"h1|text","first":"a:has(.lucide-play)|attr:href","chapter":{"allBtn":"button:has(.lucide-chevron-down)","sel":"a:has(.lucide-eye):has(.lucide-clock)","url":"|attr:href","label":"span|text","at":"span:has(.lucide-clock)|text"}},"reader":{"title":{"sel":"a[href*=\"/manga/\"]","url":"|attr:href","name":"|text"},"label":"button:has(.lucide-chevron-down) span, a[href*=\"/manga/\"] ~ span:last-child|text","content":".chapter-images","prev":"a:has(.lucide-skip-back)|attr:href","next":"a:has(.lucide-skip-forward)|attr:href","chapter":{"trigger":"button:has(.lucide-list)","sel":".fixed li > a","url":"|attr:href","label":"|text"}},"search":{"title":{"sel":"div:has(> div > a[href*=\"/manga/\"]):has(button)","name":"h3|text","url":"a:attr:href","img":"a div|bg-image"}}},{"id":"htai18","title":{"sel":".title_content","name":"h1|text","tags":".item-tag|text","chapter":{"sel":"#chapter-list li","url":"a|attr:href","label":"a|text","at":".time|text"}},"reader":{"sel":".chapter-content","title":{"sel":".all-chapter a","url":"|attr:href","name":"|text"},"label":"h1|text","content":".chapter-content","imgs":".item-photo img|attr-contain:src","chapter":{"sel":"#chap-list a","url":"|attr:href","label":"|text"}},"search":{"title":{"sel":".list_wrap li","url":"a|attr:href","name":"h3 a|text"}}},{"id":"mangadot","title":{"name":"h1|text","tags":"a[href*=\"search=\"]|text","chapter":{"json":"/api/manga/{titleSlug}/chapters/list","sel":"","url":"id","label":"chapter_number","vol":"volume_number","group":"group_name","lang":"language","at":"date_added"}},"reader":{"lazy":true,"sel":".reader-image","title":{"name":"title|text|remove:\\s—\\sChapter.+","url":"a[href*=\"/manga/\"]|attr:href"},"label":"a[href*=\"/manga/\"]|text","lstrip":"//button[contains(@class, \"bg-[var(--primary)]\") and text()=\"Long Strip\"]","lstripBtn":"//button[text()=\"Long Strip\"]","imgDivs":"[data-page]","content":"main","chapter":{"json":"/api/manga/{titleSlug}/chapters/list","sel":"","url":"id","label":"chapter_number","vol":"volume_number","group":"group_name","lang":"language","at":"date_added"}},"search":{"title":{"sel":"a[href*=\"/manga/\"]","url":"|attr:href","name":"div ~ div:last-child|text","chapter":{"sel":"div > span:last-child","label":"|text"}}}},{"id":"onisaga","title":{"name":"h1|text","tags":"a[href*=\"/genre/\"]|text","first":"a[href*=\"/read/\"]|attr:href","hasMore":"button[wire\\:target=\"loadMoreChapters\"]","chapter":{"sel":"a[wire\\:key][href*=\"/read/\"]","url":"|attr:href","label":"[data-flux-heading]|text || |text","vol":"[data-flux-heading] + p span|text","at":"[data-flux-heading] + p|text"},"trackers":{"anl":"","mal":""}},"reader":{"title":{"url":"a[href*=\"/manga/\"]|attr:href","name":"h3|text","img":"picture img|attr-contain:src"},"label":"h3 ~ p|text || ui-dropdown [data-flux-badge]|text","lstrip":"ui-radio[value=\"long-strip\"][data-checked]","lstripBtn":"ui-radio[value=\"long-strip\"]","content":"div:has(> [x-ref=\"longStripContainer\"])","imgDivs":"div[data-page-index]","chapter":{"sel":"ui-menu a","url":"|attr:href","label":"|text"}},"search":{"title":{"sel":"[wire\\:loading\\.class=\"hidden\"] > div","url":"a|attr:href","name":"h3|text"}}},{"id":"diva","title":{"name":"h1|text","tags":"a[href*=\"genre=\"]|text","chapter":{"sel":"div[data-state=\"active\"] a[href*=\"/chapter/\"]","url":"|attr:href","label":"span|text","at":"span:has(.lucide-clock) span|text"}},"reader":{"lazy":true,"sel":"[data-page] [data-page]","title":{"url":"a:has(button)|attr:href","name":"h1|text"},"label":"h1 + p|text","content":".protected-content,#main-content","imgDivs":"[data-page] [data-page]","prev":{"sel":"main + div button:has(.lucide-chevron-left)","label":"p:not(:first-child)|text"},"next":{"sel":"main + div button:has(.lucide-chevron-right)","label":"p:not(:first-child)|text"},"chapter":{"trigger":"main button:has(.lucide-menu)","sel":"[role=\"dialog\"] a","url":"|attr:href","label":"p|text || img|attr:alt"}}},{"id":"wetriedtls","title":{"name":"h1|text","img":"main section img|attr-contain:src","hasMore":"[aria-label=\"Go to next page\"]","chapter":{"sel":"h3 ~ div a","url":"|attr:href","label":"span|text","at":"span + span:last-child|text"}},"reader":{"title":{"url":"a:has(.fa-house)[href*=\"/series/\"]|attr:href","name":"h2|text"},"label":"h1|text","content":"#reader-container","prev":"a:has(.fa-chevron-left)|attr:href","next":"a:has(.fa-chevron-right)|attr:href","chapter":{"trigger":"button:has(.fa-list)","sel":"[data-headlessui-portal] ul a","url":"|attr:href","label":"span:first-child|text","at":"span:last-child|text"}}},{"id":"wuxiaworld","title":{"name":"h1|text","img":"div[style*=\"background-image\"]|bg-image","tags":"a[href*=\"genre=\"]|text","first":"a[href*=\"/novel/\"]|attr:href"},"reader":{"title":{"sel":"a[href*=\"/novel/\"]:has(p)","url":"|attr:href","name":"p|text"},"label":"h4|text","content":".chapter-content","chapter":{"sel":"a:has([id^=\"chapter-nav-item\"])","url":"|attr:href","label":"span|text","at":"div:has(span) + div span|text"}}},{"id":"royalroad","title":{"name":"h1|text","chapter":{"json":"window.chapters","sel":"","url":"url","label":"title","at":"date"}},"reader":{"title":{"sel":"a:has(h2)","url":"a|attr:href","name":"h2|text"},"label":"h1|text","content":".chapter-content","prev":".nav-buttons a:has(.fa-chevron-double-left)|attr:href","next":".nav-buttons a:has(.fa-chevron-double-right)|attr:href"}},{"id":"scribblehub","title":{"name":".fic_title|text","tags":"a.fic_genre|text","hasMore":"a[href*=\"?toc=2\"]","first":"a:has(.btn_read)|attr:href","chapter":{"sel":".toc_ol .toc_w","url":"a|attr:href","label":"a|text","at":".fic_date_pub|attr:title"}},"reader":{"title":{"sel":".wi_breadcrumb.chapter a:nth-of-type(2), .chp_byauthor a[href*=\"/series/\"]","url":"|attr:href","name":"|text"},"label":".chapter-title, .wi_breadcrumb.chapter > span:last-child|text","content":"#chp_raw","prev":".prenext a:first-child|attr:href","next":".prenext a:last-child|attr:href","chapter":{"trigger":"[title=\"Table of Contents\"],[onclick=\"chp_pop_sidemnu();\"]","sel":"#ol_toc a,.toc_scroll a","url":"|attr:href","label":"|text"}}},{"id":"novelfire","title":{"name":"h1|text","id":"[report-post_id]|attr:report-post_id","tags":".categories a|text","first":".links a|attr:href"},"reader":{"title":{"id":"[report-post_id]|attr:report-post_id","url":"h1 a|attr:href","name":"h1 a|text"},"label":".chapter-title|text","content":"#content","prev":"a.prevchap:not(.isDisabled)|attr:href","next":"a.nextchap:not(.isDisabled)|attr:href"},"chapters":{"chapter":{"json":true,"sel":"data","url":"slug|pattern:(^[a-z]+-\\d+)-.+","label":"title"}}},{"id":"lightnovelworld","title":{"name":"h1|text","tags":".genre-tag|text","first":"a.btn-read-now|attr:href"},"reader":{"title":{"sel":"a.novel-title","url":"|attr:href","name":"|text"},"label":"h1|text","content":"#chapterText","prev":"a.prev-btn|attr:href","next":"a.next-btn|attr:href"},"chapters":{"chapter":{"json":true,"sel":"chapters","url":"number","label":"number"},"paging":{"total":"total_chapters","skipKey":"offset","limitKey":"limit","limitValue":500}}},{"id":"webnovel","title":{"name":"h1|text","first":"#j_read|attr:href"},"reader":{"title":{"sel":"a[href*=\"/book/\"]","url":"|attr:href","name":"|text"},"label":"h1|text","content":".cha-content","prev":{"btn":"div:has(> svg [d=\"M10.5 12l4.5 6h-3.5L7 12l4.5-6H15l-4.5 6z\"])","url":"link[rel=\"prev\"]|attr:href"},"next":{"btn":"div:has(> svg [d=\"M13.5 12L9 18h3.5l4.5-6-4.5-6H9l4.5 6z\"])","url":"link[rel=\"next\"]|attr:href"}},"chapters":{"chapter":{"sel":"li[data-cid] a","url":"|attr:href","label":"i|text","at":"small|text"}}},{"id":"wattpad","title":{"name":"h1|text","firstBtn":"[aria-label=\"Start reading\"]","tags":"[data-testid=\"tags\"] a span|text"},"reader":{"sel":".part-content","title":{"url":".toc-header h6 a|attr:href","name":".toc-header h6 a|text","img":"img.cover|attr-contain:src"},"label":"h1|text","content":".part-content","chapter":{"sel":".table-of-contents a","url":"|attr:href","label":".part-title|text"}}},{"id":"novelbin","title":{"name":"h3.title|text","tags":".info a[href*=\"/genre/\"]|text","first":"a.btn-read-now|attr:href"},"reader":{"title":"a.novel-title","label":".chr-text|text","content":"#chr-content","prev":"a[data-chapter-nav=\"prev\"]|attr:href","next":"a[data-chapter-nav=\"next\"]|attr:href","chapter":{"trigger":".chr-jump","sel":".chr-jump option","label":"|text","url":"|[attr:chapter-id,attr:value]"}},"search":{"title":{"sel":".list-novel .row:has(img)","name":"h3 a|text","url":"a|attr:href","chapter":{"sel":".text-info a","url":"|attr:href","label":".chr-text|text || |text"}}}},{"id":"freewebnovel","title":{"name":"h1|text","tags":".m-info a[href*=\"/genre/\"]|text","first":".btn a:last-child|attr:href","hasMore":"#nextBtn:not(.none)","chapter":{"sel":".row-box:has(#nextBtn.none) .m-newest2 ul li a, .row-box:has(#nextBtn:not(.none)) .m-newest1 ul li a","url":"|attr:href","label":"|text"}},"reader":{"title":"h1 a","label":"h1 + span|text","content":"#article","prev":"a:has(.glyphicon-chevron-left)|attr:href","next":"a:has(.glyphicon-chevron-right)|attr:href","chapter":{"trigger":"a:has(+ .catalog)","sel":".catalog select option","url":"|attr:value","label":"|text"}}},{"id":"novelbuddy","title":{"sel":"main:has(button[title=\"Bookmark\"]):has(a button)","name":"h1|text","tags":"h1 ~ div a[href*=\"/genres/\"]|text","chapter":{"sel":"main ul li a","url":"|attr:href","label":"span:nth-child(2) span|text","at":"span:nth-child(3) span|text"}},"reader":{"title":"button[aria-label=\"Back\"] ~ div a","label":"h2 + p|text","content":".novel-tts-content","chapter":{"sel":"aside ul li a[title]:has(svg)","url":"|attr:href","label":"|text"}},"search":{"lazy":true,"empty":"section span + p + p","title":{"sel":"article","url":"a|attr:href","name":"img|attr:alt","chapter":{"sel":"div div a","url":"|attr:href","label":"span|text || |text"}}}},{"id":"novelsonline","title":{"sel":".chapter-chs","name":"h1|text","tags":".novel-detail-body a[href*=\"/category/\"]|text","chapter":{"sel":".chapter-chs a","url":"|attr:href","label":"|text"}},"reader":{"title":"h1 a","label":"h1|text","content":"#contentall","chapter":{"sel":"div:has(~ div #contentall) .chapter-actions option","url":"|attr:value","label":"|text"}}},{"id":"wuxiabox","title":{"sel":"#chapters","name":"h1|text","tags":".property-item|text","first":"a#readchapterbtn|attr:href","hasMore":".filters","chapter":{"sel":".intro a","url":"|attr:href","label":"|text"}},"reader":{"sel":".chapter-content","title":"h1 a","label":"h2|text","content":".chapter-content","prev":"a.prev:not(.isDisabled)|attr:href","next":"a.next:not(.isDisabled)|attr:href"}},{"id":"novelcool","title":{"name":"h1|text","img":"img.bookinfo-pic-img|attr:src","tags":".for-pc .bookinfo-category-list a|text","chapter":{"sel":".chp-item a","url":"|attr:href","label":".chapter-item-headtitle|text","at":".chapter-item-time|text"}},"reader":{"title":".r-n-title a","label":".r-n-bk-chp|text","content":".chapter-reading-section","chapter":{"sel":".chp-catalogue-m-list a","url":"|attr:href","label":"span|text"}},"search":{"title":{"sel":".book-item","name":".book-name|text"}}},{"id":"mvlempyr","title":{"tags":".righttinfo .genre-tags|text","chapter":{"sel":"a.chapter-item","url":"|attr:href","label":"h3|text","at":".chapter-date|text"}},"reader":{"title":{"url":"a#novel-link|attr:href","name":"#novel-name span|text"},"label":"#chapter-name span|text","content":"#chapter","prev":"a#prev-top|attr:href","next":"a#next-top|attr:href","chapter":{"trigger":"[title=\"Chapter Index\"]","sel":"a.chapter-item","url":"|attr:href","label":"h1|text","at":".chapter-date|text"}}},{"id":"fcknovelpia","title":{"img":".cover|bg-image","tags":".genres a|text","chapter":{"sel":"[data-ch] a","url":"a|attr:href","label":".chapter-item-main|text"}},"reader":{"sel":".reader","title":{"url":"a.back-link|attr:href","name":".chapter-kicker|text"},"label":".breadcrumb-item.active,h1|text","content":".reader","para":".reader","prev":"a#chapter-prev-link|attr:href","next":"a#chapter-next-link|attr:href"}},{"id":"novelhall","title":{"sel":"#morelist","tags":".book-info a[href*=\"/genre/\"]|text","chapter":{"sel":"#morelist a","url":"|attr:href","label":"|text"}},"reader":{"title":"a#bookname,.breadcrumb .active a","label":"h1|text","content":".entry-content","para":".entry-content","prev":{"sel":"a[rel=\"prev\"]","url":"|attr:href","label":"|attr:title"},"next":{"sel":"a[rel=\"next\"]","url":"|attr:href","label":"|attr:title"}},"search":{"title":{"sel":"#main tr:has(td)","name":"a|text","chapter":{"sel":"a.chapter","url":"|attr:href","label":"|text"}}}},{"id":"novelarchive","title":{"lazy":true,"sel":"#novel-title","name":"#novel-title|text","img":"img#novel-cover|attr:src","tags":"#novel-genres span|text","chapter":{"sel":"#novel-chapter-list a span","url":"|text","label":"|text"}},"reader":{"lazy":true,"sel":"#reader-chapter-meta span + span","title":{"name":"#reader-novel-title|text"},"label":"#reader-chapter-select option:checked|attr:value","content":"#reader-article","chapter":{"sel":"#reader-chapter-select option","url":"|attr:value","label":"|attr:value"}}},{"id":"wuxiaclick","title":{"name":"h5|text","tags":"a[href*=\"/category/\"] span|text","chapter":{"json":"https://wuxiaworld.eu/api/chapters/{titleSlug}","sel":"","url":"novSlugChapSlug","label":"title","at":"timeAdded"}},"reader":{"sel":"#chapterText","title":"a[href*=\"/novel/\"]","label":"h1|text","content":"div:has(> div > #chapterText),body","para":"[data-tts-paragraph]","prev":"div:has(+ div > button) > a|attr:href","next":"div:has(> button) + div > a|attr:href","chapter":{"trigger":"div:has(+ div > a) > button","dismiss":".mantine-Modal-close","json":"https://wuxiaworld.eu/api/chapters/{titleSlug}","sel":"","url":"novSlugChapSlug","label":"title","at":"timeAdded"}}},{"id":"lncrawler","title":{"name":"h1|text","tags":"a[href*=\"tag=\"]|text","first":"a[href*=\"/chapter/\"]|attr:href"},"reader":{"title":".MuiBreadcrumbs-li a[href*=\"/novels/\"]","label":"h1|text","content":"#reader-content","prev":"a:has(+ h6)|attr:href","next":"h6 + a|attr:href"},"chapters":{"chapter":{"json":"https://api.lncrawler.monster/novels/{titleSlug}/{group}/chapters","sel":"chapters","url":"chapter_id","label":"title","vol":"volume"},"paging":{"total":"count","pageKey":"page","limitKey":"page_size","limitValue":10000}},"search":{"title":{"sel":"h6 ~ div a[href*=\"/novels/\"]","name":"img|attr:alt"}}}]
|
|
1
|
+
[{"404":"[data-text=\"404\"]","id":"asura2","releases":{"title":{"sel":"a[href*=\"/comics/\"]:has(img) + div","name":"a|text","url":"a|attr:href","chapter":{"sel":"a + div a","url":"|attr:href","label":"span|text","at":"time|text"}}},"title":{"name":"body:not(:has([data-text=\"404\"])) h1|text","img":"#desktop-cover-container img|attr-contain:src","tags":"a[href*=\"/browse?genres=\"]|text","chapter":{"lazy":false,"sel":"[opts*=\"ChapterListReact\"] a","url":"|attr:href","label":"span|text","at":".text-right span|text"}},"reader":{"title":{"sel":"script[type=\"application/ld+json\"]","url":"|json:itemListElement.2.item","name":"|json:itemListElement.2.name"},"label":"script[type=\"application/ld+json\"]|json:itemListElement.3.name","content":"div:has(> [data-page])","imgDivs":"[data-page], [data-page] ~ div","prev":"a:has([d=\"M15 19l-7-7 7-7\"])|attr:href","next":"a:has(svg:not(.rotate-180) [d=\"M9 5l7 7-7 7\"])|attr:href","chapter":{"json":"astro-island|attr:props","sel":"chapterList.1","url":"1.number.1","label":"1.number.1","at":"1.created_at.1"}},"search":{"title":{"sel":"a[href*=\"/comics/\"]:has(img)","url":"|attr:href","name":"img|attr:alt"}}},{"404":"#content > .wrapper > .notf img, body:empty","id":"mangastream","generic":true,"name":"meta[itemprop=\"name\"]|attr:content","meta":{"releases":"","titleBase":"series","readerBase":"","searchBase":"?s=","idBase":"?p=","titleIdType":"id","defaultLang":"en","trailing":true},"releases":{"title":{"sel":".listupd .utao .uta, .bixbox .bs.styletere","id":"a.series[rel]|attr:rel","name":"h4, .info .tt, .tt a, .series > h3|text","url":"a|attr:href","chapter":{"sel":".luf ul li, .chapter-list > a, .chfiv > li","label":"a .fivchap, a, .epxs|text","url":"a|attr:href || |attr:href","at":"a .fivtime, a + span, .epxdate, .newchtimeluffy|text"}}},"title":{"sel":"#chapterlist > ul","id":".bookmark[data-id]|attr:data-id || #rating-form input[name=\"bs_table_id\"]|attr:value","name":"h1.entry-title|text","img":".thumb img|attr-contain:src","type":".imptdt a[href*=\"type=\"]|text || .imptdt:first-of-type i|text","tags":".postbody .mgen > a|text","chapter":{"sel":"#chapterlist > ul > li","url":"a|attr:href","label":".chapternum|text","at":".chapterdate|text"}},"reader":{"sel":"#readerarea","content":"body","id":".ctop option:checked|attr:data-id","label":"h1.entry-title|text","title":{"sel":".headpost .allc a, [itemprop=\"itemListElement\"] [content=\"2\"] ~ a","name":"|text","url":"|attr:href"},"prev":"a.ch-prev-btn:not(.disabled)|attr:href","next":"a.ch-next-btn:not(.disabled)|attr:href","chapter":{"sel":".ctop #chapter option:not([disabled]):not([value=\"\"])","id":"|attr:data-id","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":".listupd .bsx","name":".bigor .tt|text","url":"a|attr:href","img":"img|attr-contain:src"}}},{"404":".error-404.not-found","id":"madara","generic":true,"name":"meta[property=\"og:site_name\"]|attr:content || a.logo|attr:title","meta":{"releases":"","titleBase":"manga","readerBase":"manga/{titleSlug}","idBase":"?p=","searchBase":"?post_type=wp-manga&s=","defaultLang":"en","titleIdType":"id","trailing":true},"releases":{"title":{"sel":".page-listing-item .page-item-detail, .lastest-content .page-item-detail","id":"[data-post-id]|attr:data-post-id","name":"h3 a, .item-summary h3|text","url":"a|attr:href","chapter":{"sel":".chapter-item","label":".chapter a|text","url":".chapter a|attr:href","at":".c-new-tag|attr:title || .post-on|text"}}},"title":{"sel":"body.manga-page","id":"#manga-chapters-holder|attr:data-id || .rating-post-id|attr:value || [data-action=\"bookmark\"]|attr:data-post","name":"h1|text","img":".summary_image .img-responsive, .summary_image img, .series-img img|[attr:data-src,attr-contain:src]","tags":"a[rel=\"tag\"][href*=\"genre\"],a[rel=\"tag\"][href*=\"tag\"],.genres-content|text","type":".post-content_item .summary-heading|row:type","chapter":{"sel":".wp-manga-chapter, .chapter-ul > li","url":"a|attr:href","label":"a, .chapter-title-date > p|text","at":".c-new-tag|attr:title || .chapter-release-date i|text"}},"reader":{"sel":".entry-content .read-container","content":"body","label":".breadcrumb li.active|text","title":{"sel":".breadcrumb li:nth-last-of-type(2) a","id":"#manga-reading-nav-head|attr:data-id","name":"|text","url":"|attr:href"},"prev":"a.btn.prev_page|attr:href","next":"a.btn.next_page|attr:href","chapter":{"sel":"#manga-reading-nav-head select.single-chapter-select > option:not([disabled])","label":"|text","url":"|attr:data-redirect"}},"search":{"title":{"sel":".c-tabs-item__content","name":"h3 a|text","url":"a|attr:href","chapter":{"sel":".tab-meta","label":".chapter a|text","url":".chapter a|attr:href","at":".c-new-tag|attr:title || .post-on|text"}}}},{"id":"single01","generic":true,"meta":{"releases":null,"titleBase":"","readerBase":"chapter","defaultLang":"en","titleIdType":"name","trailing":true,"searchable":false,"noTags":true,"single":true},"title":{"sel":".main-content:has(h1 + a.btn-read) .content > .chapters","name":"meta[property=\"og:site_name\"]|attr:content","img":"img.cover-image|attr-contain:src","chapter":{"sel":".chapters > a","url":"|attr:href","label":"p.t|text","at":".chapter-date|text"}},"reader":{"lazy":true,"sel":"body:has(.chapter-selector option:checked):has(main > .thumb-wrapper + h1)","label":".chapter-selector option:checked|text","title":{"name":"meta[property=\"og:site_name\"]|attr:content","url":"a[title=\"Home\"]|attr:href"},"content":".images","chapter":{"sel":".chapter-nav:has(~.images) .chapter-selector option","url":"|attr:value","label":"|text"}}},{"id":"single02","generic":true,"meta":{"releases":null,"titleBase":"","readerBase":"manga","titleIdType":"name","trailing":true,"searchable":false,"noTags":true,"single":true},"title":{"sel":"body:has(#masthead):has(#primary #main #Chapters_List)","name":"#primary #main article header.entry-header > h1|text","img":"figure img|attr-contain:src","chapter":{"sel":"#Chapters_List a","url":"|attr:href","label":"|text"}},"reader":{"sel":"body:has(#masthead):has(.trail-items)","label":"h1|text","title":{"url":"#site-title a|attr:href","name":"#site-title a|text|remove:manga\\sonline$"},"content":".entry-content","prev":".nav-previous a,.wp-next-post-navi-pre a|attr:href","next":".nav-next a,.wp-next-post-navi-next a|attr:href"}},{"id":"single03","generic":true,"meta":{"releases":null,"titleBase":"","readerBase":"manga","titleIdType":"name","trailing":true,"searchable":false,"single":true},"title":{"sel":"body:has(.nnc-nav):has(#manga-info-right):has(#chapters-list-holder)","name":".info-desc h1|text|remove:manga\\sonline","img":".manga-thumb|attr-contain:src","tags":".genre-list > span|text","chapter":{"sel":"#chapters-list-holder > a","url":"|attr:href","label":".chapter-name|text","at":".chapter-date|text"}},"reader":{"sel":".mangosm-manga-nav","label":".mangosm-manga-nav-select option:checked|text","title":{"url":"#comic-breadcrumbs .item-home a|attr:href","name":"h1.entry-title|text|remove:,.+$"},"content":".entry-content","chapter":{"sel":".mangosm-manga-nav-select option","label":"|text","url":"|attr:value"}}},{"id":"single04","generic":true,"meta":{"releases":null,"titleBase":"","readerBase":"manga","titleIdType":"name","trailing":true,"searchable":false,"single":true},"title":{"sel":"body:has(.all-chapters):has(.home-hero)","name":"h1|text|remove:manga\\sonline$","img":".home-hero|bg-image","chapter":{"sel":".all-chapters li a","url":"|attr:href","label":"|text"}},"reader":{"sel":"body:has(.chapter-images):has(.home-hero-bc li)","title":{"name":"h1|text|remove:manga$","url":"a|attr:href"},"label":".home-hero-bc li:last-child|text","content":".chapter-images","imgs":".chapterImg|attr-contain:src","chapter":{"sel":".manga-chapter #chapterSelect option","url":"|attr:value","label":"|text"}}},{"id":"single05","generic":true,"meta":{"releases":null,"titleBase":"","readerBase":"manga","titleIdType":"name","trailing":true,"searchable":false,"single":true},"title":{"sel":"body:has(.profile-manga):has(.main-chapter):has(.cover_managa)","name":"h1|text","img":".cover_managa img|attr-contain:src","tags":"a[href*=\"manga-genre\"]|text","chapter":{"sel":".main-chapter a:has(div)","url":"|attr:href","label":"div div:first-child|text"}},"reader":{"sel":"body:has(h1#chapter-heading):has(.reading-content):has(.about_section)","title":{"url":".breadcrumb li a|attr:href","name":"[property=\"og:site_name\"]|attr:content"},"label":".single-chapter-select option:checked|text","content":".reading-content","imgs":".image-container img|attr-contain:src","chapter":{"sel":".header .single-chapter-select option","url":"|attr:data-redirect","label":"|text"}}},{"id":"single06","generic":true,"meta":{"releases":null,"titleBase":"","readerBase":"chapters","chapters":"chapters","titleIdType":"name","trailing":false,"searchable":false,"single":true,"noTags":true},"title":{"sel":"body:has(#chapter-sort-select option[value=\"oldest\"]):has(h2 + a[href=\"/chapters\"])","name":"nav a[href=\"/\"] span|text","tags":".bg-surface-secondary.rounded-full|text","hasMore":"button + div + button:not([disabled])","first":"main a[href*=\"/chapters/\"]|attr:href","chapter":{"sel":".grid a[href*=\"/chapters/\"]","url":"|attr:href","label":"div div|text"}},"reader":{"lazy":true,"sel":"body:has(div + nav[aria-label=\"Breadcrumb\"] ol li a[href=\"/chapters/\"]):has(.fixed [role=\"heading\"] .lucide-list)","title":{"name":"nav a[href=\"/\"] span|text","url":"nav a[href=\"/\"]|attr:href","img":"meta[property=\"og:image\"]|attr:content"},"label":"nav li:last-child span:last-child|text","content":"main","prev":"a[title=\"Previous Chapter\"]|attr:href","next":"a[title=\"Next Chapter\"]|attr:href"},"chapters":{"chapter":{"sel":"main .lg\\:hidden a","url":"|attr:href","label":"|text|remove:^.+/chapters/"}}},{"404":".elapi > a[href*=\"/search?q=\"]","id":"mangahub","releases":{"title":{"sel":".list-group-item .media","name":"h4.media-heading a|text","url":".media-heading a|attr:href","at":".media-heading .small|text","chapter":{"sel":".media-body > a","label":"|text","url":"|attr:href"}}},"title":{"sel":"#chapters-tab .tab-content","name":"#mangadetail h1|text","img":"#mangadetail img.manga-thumb|attr-contain:src","tags":"#mangadetail a.genre-label|text","chapter":{"sel":"#chapters-tab li.list-group-item","label":"a > span:first-child > span:first-child|text","url":"a:not([title])|attr:href || a:not([rel])|attr:href || a|attr:href","at":"small|text"}},"reader":{"content":"#mangareader .container-fluid, #mangareader","label":"h3|text","prev":".chapter-pager .previous a[href*=\"/chapter/\"]|attr:href","next":".chapter-pager .next a[href*=\"/chapter/\"]|attr:href","title":{"sel":"h3 a","name":"|text","url":"|attr:href"},"chapter":{"sel":".pager-dropdown .dropdown-menu > li > a","label":"|text","url":"|attr:href"}},"search":{"title":{"sel":".media-manga","name":"h4 a|text","url":"h4 a|attr:href","img":"img|attr-contain:src","chapter":{"sel":".media-body","label":"a[href*=\"/chapter/\"]|text","url":"a[href*=\"/chapter/\"]|attr:href"}}}},{"id":"mangadex","search":{"lazy":true,"loading":"[indeterminate] svg","title":{"sel":"a.manga-card-dense","url":"|attr:href","name":"a.title span|text","img":".cover img|attr-contain:src"}}},{"404":"#error > .attention","id":"mangago","releases":{"title":{"sel":"ul#search_list > li > div","name":"a.thm-effect|attr:title","url":"a.thm-effect|attr:href","chapter":{"sel":"a.chico","label":"|text","url":"|attr:href"}}},"title":{"name":".w-title h1|text","img":".article .cover img,#information img|attr-contain:src","tags":".manga_right a[href*=\"/genre/\"],.manga_info ul.uk-list a[href*=\"/genre/\"]|text","chapter":{"sel":"#chapter_table tbody tr, table.uk-table tbody tr","label":"h4 a b, a.chico b|text || a.chico|text","url":"h4 a, a.chico|attr:href","at":"td:last-child|text"}},"reader":{"content":"#pic_container","label":"#dropdown-chapter-page|text || #series + a.chapter|text","title":{"name":"#navi a#series,#reader-nav .nav li:first-child a, #series|text","url":"#navi a#series,#reader-nav .nav li:first-child a, .nav a|attr:href"},"chapter":{"sel":".pagebar.top ul.dropdown-menu.chapter > li > a,#series ~ ul.chapter li a","label":"|text","url":"|attr:href"}},"search":{"title":{"sel":"#search_list > li .box","name":"a.thm-effect|attr:title","url":"a.thm-effect|attr:href","chapter":{"sel":"a.chico","label":"|text","url":"|attr:href"}}}},{"id":"tapas","title":{"id":".button--subscribe|attr:data-tiara-event-meta-series-id","name":".info .title|text","img":".thumb img|attr:src","first":".episode-list__item a|attr:href","chapter":{"sel":".episode-list .episode-list__item > a","url":"|attr:data-id","label":"|attr:data-scene-number"}},"reader":{"content":".viewer__body","id":"div[id^=\"episode-\"][data-ep-id]|attr:data-ep-id","label":"div[id^=\"episode-\"][data-ep-scene]|attr:data-ep-scene","title":{"id":".subscribe-btn|attr:data-id","url":".subscribe-btn|attr:data-id","name":".series-info .title|text","img":".series-info .thumb img|attr:src"},"chapter":{"sel":".episode-list .list-body > li[data-id]","url":"|attr:data-id","label":".info__label|text"}},"chapters":{"chapter":{"json":true,"sel":"data.episodes","url":"id","label":"pending_scene","at":"publish_date"},"paging":{"total":"data.pagination.total","limitKey":"max_limit","pageKey":"page"}},"search":{"title":{"sel":".search-item-wrap","url":"a|attr:href","name":"img|attr:alt|remove:#\\.*\\?#","img":"img|attr-contain:src"}}},{"id":"mangafire","releases":{"title":{"sel":".unit > .inner","id":"a[data-tip]|attr:data-tip|remove:\\?.+","name":".info a|text","url":"a|attr:href","chapter":{"sel":"ul.content li a","label":"span:first-child|text","url":"|attr:href","at":"span:last-child"}}},"title":{"id":".bookmark[data-id]|attr:data-id","name":".info h1[itemprop=\"name\"]|text","img":".poster img|attr-contain:src","tags":"#info-rating a[href*=\"/genre/\"]|text","langs":".tab-content[data-name=\"chapter\"] a.dropdown-item[data-code]|attr:data-code","chapter":{"sel":".tab-content[data-name=\"chapter\"] li.item[data-number]","url":"a|attr:href","label":"|attr:data-number","at":"a span:last-child|text"}},"reader":{"content":"#page-wrapper","imgDivs":".page","lstrip":".setting-tab.page-layout [data-value=\"longstrip\"].active","lstripBtn":".setting-tab.page-layout [data-value=\"longstrip\"]","label":"#number-panel ul li a[href*=\"/read/\"][data-number].active|attr:data-number","title":{"sel":"#ctrl-menu .head a","id":"body|attr:data-id","url":"|attr:href","name":"|text"},"chapter":{"sel":"#number-panel ul li a[href*=\"/read/\"][data-number]","label":"|attr:data-number","url":"|attr:href"}},"search":{"title":{"sel":".unit","id":"a[data-tip]|attr:data-tip|remove:\\?.+","url":"a|attr:href","name":".info a|text","img":"a img|attr-contain:src","chapter":{"sel":".unit .content[data-name=\"chap\"] a","url":"|attr:href","label":"span|text","at":"span:last-child"}}}},{"id":"webtoon","title":{"name":"h1.subj,.detail_info > p.subj,.info > h3.subj,.subject|text","img":"meta[property=\"og:image\"]|attr:content","tags":".info > h2.genre,.detail_info > p.genre,.info > p.genre,.tag_box .tag|text","first":"a#_btnEpisode,a._readEpisodeBtn|attr:href","chapter":{"sel":"li._episodeItem","label":"|attr:data-episode-no","url":"a|attr:href","at":".date|text"}}},{"404":"#notfound .notfound-404","id":"mgeko","releases":{"title":{"sel":"#latest-updates .novel-list.chapters > li > a","url":"|attr:href","name":"|attr:title","chapter":{"sel":"div:has(.chapter-title)","label":".chapter-title|text","at":".novel-stats span:first-child|text"}}},"title":{"name":".cover img|attr:alt","img":".cover img|[attr:data-src,attr-contain:src]","tags":".categories .property-item|text","first":"a#readchapterbtn|attr:href","chapter":{"sel":".chapter-list > li a","url":"|attr:href","label":".chapter-title,.chapter-number|text","at":"time|attr:datetime || .chapter-stats|text"}},"reader":{"imgs":"center:has(> #chapter-reader) img|attr-contain:src","label":".chapter-header .titles h2|text","next":"center .nextchap:not(.isDisabled)|attr:href","prev":"center .prevchap:not(.isDisabled)|attr:href","title":{"sel":".chapter-header .titles h1 a","name":"|text","url":"|attr:href"},"chapter":{"sel":"center center #cars option","label":"|text","url":"|attr:value"}},"chapters":{"chapter":{"sel":".chapter-list > li a","url":"|attr:href","label":".chapter-title,.chapter-number|text","at":"time|attr:datetime || .chapter-stats|text"}},"search":{"title":{"sel":".novel-item","url":"a|attr:href","name":"h4|text","img":"img|[attr:data-src,attr-contain:src]","chapter":{"sel":".novel-stats","label":"strong|text"}}}},{"404":"#main > .error-404","id":"mangack","releases":{"title":{"sel":".latestmanga .Latest_chapter_update","url":"a|attr:href","name":".latest-title a|text","chapter":{"sel":"tr:last-child center","label":"a|text","url":"a|attr:href","at":".chapter-date|text"}}},"title":{"id":"input[name=\"follow_manga\"]|attr:value","name":"h1.entry-title|text","img":".manga-cover-wrap img|attr:src","tags":".infobox a[href*=\"/genres/\"]|text","type":".infobox a[href*=\"/comic-type/\"]|text","chapter":{"sel":".chapterslist > li","url":"a|attr:href","label":"a|text","at":".entry-date|text"}},"reader":{"content":".post-content","label":".entry-title|text","title":{"sel":".latest-title a","name":"|text","url":"|attr:href"},"prev":".prev-post a|attr:href","next":".next-post a|attr:href"},"search":{"title":{"sel":".Latest_chapter_update","url":"a|attr:href","img":"img|attr-contain:src","name":"h4 a|text"}}},{"id":"katana","releases":{"title":{"sel":"#book_list > .item","id":"|attr:data-id","url":"a|attr:href","name":"a|text","chapter":{"sel":".chapter a","url":"|attr:href","label":"|text"}}},"title":{"id":".bookmark_bt[data-id]|attr:data-id","name":".info h1|text","img":".cover img|attr:src","tags":".info .genres a|text","chapter":{"sel":".chapters tbody > tr","url":"a|attr:href","label":"a|text","at":".update_time|text"}},"reader":{"content":"#imgs","label":"select[name=\"chapter_select\"] option:checked|text","prev":".nav_button.prev:not([disabled])|attr:href","next":".nav_button.next:not([disabled])|attr:href","title":{"sel":"#breadcrumb_wrap li:nth-child(2) a","id":".bookmark_chapter_bt[data-id]|attr:data-id","name":"span|text","url":"|attr:href"},"chapter":{"sel":".nav_chapters_wrap:first-child select[name=\"chapter_select\"] option","url":"|attr:value","label":"|text"}},"search":{"title":{"sel":"#book_list .item","url":"a|attr:href","img":"img|attr-contain:src","name":"h3 a|text","chapter":{"sel":"div:has(> div > .chapter)","url":"a|attr:href","label":"a|text","at":".update_time|text"}}}},{"id":"truyenqq","releases":{"title":{"sel":"#list_new > li","name":".book_name h3 a|text","url":".book_name h3 a|attr:href","id":".book_name h3 a|attr:href|remove:.+-","chapter":{"sel":".last_chapter a","label":"|text","url":"|attr:href"}}},"title":{"id":".btn-subscribe|attr:data-id","name":".book_info h1|text","img":".book_avatar img|attr-contain:src","tags":".book_info li a[href*=\"/the-loai/\"]|text","chapter":{"sel":".works-chapter-list .works-chapter-item","label":".name-chap a|text","url":".name-chap a|attr:href","at":".time-chap|text"}},"reader":{"content":".chapter_content","label":"ol.breadcrumb > li:last-of-type a span|text","prev":".chapter_control a.prev|attr:href","next":".chapter_control a.next|attr:href","title":{"sel":"ol.breadcrumb > li:nth-of-type(2) a","id":".btn-subscribe|attr:data-id","name":"span|text","url":"|attr:href"},"chapter":{"trigger":".chapter_list","sel":"#popup_content .chapter-list > a, .chapter_list > option","label":"|text","url":"|attr:href || |attr:value"}},"search":{"title":{"sel":".list_grid > li","name":"h3 a|text","url":"h3 a|attr:href","img":"img|attr-contain:src","chapter":{"sel":".last_chapter a","url":"|attr:href","label":"|text"}}}},{"id":"uzay","releases":{"title":{"sel":"section[aria-label=\"new series\"] ~ section .header + div > div","url":"a|attr:href","name":"h2|text","chapter":{"sel":"a.mobile-list-item","url":"|attr:href","label":"h3 span:first-child b|text","at":"h3 span:nth-child(2)|text"}}},"title":{"name":".content-details > h1|text","img":".content-info > img|attr:src","tags":".content-details a[href*=\"?categories=\"]|text","chapter":{"sel":".list-episode > a","url":"|attr:href","label":"h3 b|text","at":"span:last-child|text"}},"reader":{"content":".manga-episode-card","label":".header h1 + h2|text","prev":"[aria-label=\"episode-navbar\"] div:not(last-child) > a[href]|attr:href","next":"[aria-label=\"episode-navbar\"] div:last-child > a[href]|attr:href","title":{"sel":".header h1:has(> a) a","url":"|attr:href","name":"|text"}}},{"id":"mangaworld","releases":{"title":{"sel":".comics-grid > .entry","name":".manga-title|text","url":"a|attr:href","chapter":{"sel":"div:has(> .xanh)","label":"a|text","url":"a|attr:href","at":"i|text"}}},"title":{"name":"h1.name|text","img":".thumb img|attr:src","tags":".meta-data a[href*=\"?genre=\"]|text","type":".meta-data a[href*=\"?type=\"]|text","chapter":{"sel":".chapters-wrapper .chapter > a","url":"|attr:href","label":"span|text","at":"i|text"}},"reader":{"content":"#page","label":"h1|text","lstrip":"select.mode option[value=\"LIST\"]:checked","lstripBtn":"select.mode option[value=\"LIST\"]","title":{"sel":"a[href*=\"/manga/\"]","name":"|text|remove:Ritorna\\sa","url":"|attr:href"},"chapter":{"sel":"#controls-1 select.chapter option","label":"|text","url":"|value"}},"search":{"title":{"sel":".comics-grid .entry","url":"a|attr:href","img":"img|attr-contain:src","name":".manga-title|text"}}},{"id":"leercapitulo","releases":{"title":{"sel":".media.mainpage-manga","url":"a|attr:href","name":"h4.manga-newest|text","chapter":{"sel":".hotup-list > span a","url":"|attr:href","label":"|text"}}},"title":{"name":"h1.title-manga|text","img":".cover-detail img|attr:src","tags":".description-update a[href*=\"/genre/\"]|text","chapter":{"sel":".chapter-list a.xanh","url":"|attr:href","label":"|text"}},"reader":{"content":".comic_wraCon","label":"h2.chapter-title:first-child|text","prev":"a.pre,a.LeftArrow|attr:href","next":"a.next,a.RightArrow|attr:href","lstrip":"select.loadImgType option[value=\"1\"]:checked","lstripBtn":"select.loadImgType option[value=\"1\"]","title":{"sel":"h2.chapter-title:nth-of-type(2) a","url":"|attr:href","name":"|text"},"chapter":{"sel":"h1 + .row select[rel=\"chap-select\"] option","url":"|attr:value","label":"|text"}}},{"id":"mangaplus","releases":{"title":{"sel":"[class*=\"UpdatedTitle-module_titleWrapper_\"]","url":"a|attr:href","name":"[class*=\"UpdatedTitle-module_titleName_\"]|text","chapter":{"sel":"[class*=\"UpdatedTitle-module_chapterTitle_\"]","label":"|text"}}},"title":{"lazy":true,"sel":"h1[class*=\"TitleDetailHeader-module_title_\"]","name":"h1[class*=\"TitleDetailHeader-module_title_\"]|text","img":"img[class*=\"TitleDetailHeader-module_coverImage_\"]|attr:src","chapter":{"sel":"[class*=\"ChapterListItem-module_chapterListItem_\"]","url":"a[class*=\"ChapterListItem-module_commentContainer_\"]|attr:href","label":"[class*=\"ChapterListItem-module_name_\"]|text","at":"[class*=\"ChapterListItem-module_date_\"]|text"}},"reader":{"content":"[class*=\"Viewer-module_viewerContainer_\"]","label":"[class*=\"Navigation-module_chapterTitle_\"]|text","lstrip":"input#mode-vertical:checked","lstripBtn":"input#mode-vertical","title":{"sel":"a:has(> [class*=\"Navigation-module_title_\"])","url":"|attr:href","name":"h1|text"},"chapter":{"sel":"ul > li[class*=\"SideMenu-module_chapter_\"]","label":"|text"}},"search":{"lazy":true,"empty":"p[class*=\"nothingMatched\"]","title":{"sel":"a[class^=\"AllTitle\"]","url":"|attr:href","name":"p|text","img":"img|[attr:data-src,attr-contain:src]"}}},{"id":"flame","releases":{"title":{"sel":"[class*=\"SeriesCard_chapterCardContainer__\"]","url":"a|attr:href","name":".mantine-Stack-root a|text","chapter":{"sel":"a:has(> [class*=\"SeriesCard_chapterPillWrapper__\"])","url":"|attr:href","label":"p:first-child|text","at":"p:not(:first-child)|text"}}},"title":{"name":"main h1|text","img":"img[alt=\"Cover\"]|attr:src","tags":"a[href*=\"/genre/\"] span|text","type":"p[class*=\"SeriesPage_infoField__\"]|row:type","first":".mantine-Paper-root p + a[href*=\"/series/\"]|attr:href","chapter":{"sel":"a[class*=\"ChapterCard_chapterWrapper__\"]","url":"|attr:href","label":"p:first-child|text","at":"p:not(:first-child)|text"}},"reader":{"content":"body","label":"p[class*=\"TopChapterNavbar_chapter_title__\"]|text","prev":{"sel":"button:has(.bi-arrow-left)"},"next":{"sel":"button:has(.bi-arrow-right)"},"title":{"sel":"[class*=\"TopChapterNavbar_inner__\"]","name":"[class*=\"TopChapterNavbar_series_title__\"]|text","url":"a|attr:href"},"chapter":{"trigger":"button:has(.bi-card-list)","dismiss":".mantine-Modal-overlay, .mantine-CloseButton-root","sel":"[class*=\"ChapterCard_chapterWrapper__\"]","url":"|attr:href","label":"p:first-child|text","at":"p:not(:first-child)|text"}}},{"id":"vortex0","generic":true,"meta":{"releases":null,"titleBase":"series","readerBase":"series/{titleSlug}","searchBase":"series?searchTerm=","titleIdType":"slug","defaultLang":"en","trailing":false,"noTags":true},"title":{"sel":"body:has([itemtype=\"http://schema.org/CreativeWorkSeries\"]):not(:has(astro-island))","name":"h1[itemprop=\"name\"]|text","img":"[itemprop=\"image\"] img|attr:src","type":"h1:has(> svg)|row:type","first":"a[href*=\"/series/\"]:has(button)|attr:href","chapter":{"lazy":false,"allBtn":"#load-all-chapters-btn, button:has(span + .lucide-chevron-down)","sel":"#chapter-list a, [data-slot=\"panel\"] a","url":"|attr:href","label":"span|text","at":"time|text"}},"reader":{"sel":"body:has(a img):has(a [itemprop=\"dateCreated\"]):not(:has(astro-island))","title":{"name":"a[href*=\"/series\"]:has(img) p|text || a[href*=\"/series\"]:has(img) div:has(~ time)|text|remove:\\sChapter.+","url":"a[href*=\"/series\"]:has(img)|attr:href"},"label":"button:has(.lucide-chevron-down)|text","content":"main,body","prev":{"sel":"[aria-label=\"Prev\"], [aria-label=\"Previous\"], [aria-label=\"Anterior\"]","url":"|attr:href"},"next":{"sel":"[aria-label=\"Next\"], [aria-label=\"Siguiente\"]","url":"|attr:href"},"chapter":{"trigger":"button:has(.lucide-chevron-down)","sel":".image-container ~ div .dropdown-menu button, [data-radix-scroll-area-viewport] button","label":"|attr:data-chapter || span|text || |text"}}},{"id":"vortex","generic":true,"meta":{"releases":null,"titleBase":"series","readerBase":"series/{titleSlug}","searchBase":"series?searchTerm=","titleIdType":"slug","defaultLang":"en","trailing":false,"noTags":true},"releases":{"title":{"sel":"div:has(> a):has(.lucide-star):not(:has(img))","url":"a|attr:href","name":"a|text","chapter":{"sel":"div a","url":"|attr:href","label":"span|text","at":"time|attr:datetime"}}},"title":{"sel":"body:has([itemtype=\"http://schema.org/CreativeWorkSeries\"]):has(astro-island)","name":"h1[itemprop=\"name\"]|text || h1|text","id":"[props*=\"postId\"]|attr:props|json:postId.1","img":"[itemprop=\"image\"] img|attr:src","type":"h1:has(> svg)|row:type","first":"a[href*=\"/series/\"]:has(button)|attr:href","chapter":{"lazy":false,"allBtn":"[data-series-tab-panel=\"chapters\"] button:has(.lucide-chevron-down)","sel":"a[href*=\"/series/{titleSlug}/\"]:has(img)","url":"|attr:href","label":"h3, div span|text","at":"time|attr:datetime || h3 + div span|text"}},"reader":{"sel":"body:has(a img):has(a [itemprop=\"dateCreated\"]):has(astro-island)","content":".comic-images-wrapper","imgDivs":".image-container","label":"h1[itemprop=\"headline\"]|text","prev":{"sel":"[aria-label=\"Prev\"], [aria-label=\"Anterior\"]","url":"|attr:href"},"next":{"sel":"[aria-label=\"Next\"], [aria-label=\"Siguiente\"]","url":"|attr:href"},"title":{"id":"[props*=\"postId\"]|attr:props|json:postId.1","name":"a[href*=\"/series\"]:has(img) p|text","url":"a[href*=\"/series\"]:has(img)|attr:href"},"chapter":{"trigger":"button:has(.lucide-chevron-down)","sel":"button:has(.lucide-chevron-down) ~ .absolute div button","label":"div div span|text"}},"search":{"lazy":true,"loading":"button > .animate-spin","title":{"sel":"div:has(> div > a[href*=\"/series/\"])","url":"a|attr:href","name":"a h1|text","img":"a img|attr-contain:src","chapter":{"sel":"a:has(time)","url":"|attr:href","label":"p|text","at":"time|attr:datetime"}}}},{"id":"weebcentral","releases":{"title":{"sel":"[x-data*=\"sub_feed_shown\"] section article","url":"a:first-child|attr:href","name":"div:not(:has(span)) div|text","chapter":{"sel":"a:not(:first-child)","url":"|attr:href","label":"div:not(:first-child) span|text","at":"time|attr:datetime"}}},"title":{"name":"h1|text","img":"picture img|attr:src","tags":"li a[href*=\"?included_tag=\"]|text","type":"li a[href*=\"?included_type=\"]|text","hasMore":"#chapter-list a","first":"[x-data]:has(> a[href*=\"chapters/\"]):last-child a|attr:href"},"reader":{"content":"[hx-include*=\"reading_style\"]","imgs":"[hx-include*=\"reading_style\"] img|attr-contain:src","label":"[hx-target=\"#chapter-select-body\"] span|text","lstripBtn":"input[value=\"long_strip\"]","lstrip":"input[value=\"long_strip\"]:checked","prev":{"sel":"button[\\@click=\"prevPage()\"]"},"next":{"sel":"button[\\@click=\"nextPage()\"]"},"title":{"sel":"#nav-top a[href*=\"/series/\"]","url":"|attr:href","name":"span|text"},"chapter":{"trigger":"button[hx-target=\"#chapter-select-body\"]","dialog":"button[hx-target=\"#chapter-select-body\"]"}},"chapters":{"chapter":{"sel":"a[href*=\"/chapters/\"]","url":"|attr:href","label":"span span|text","at":"time|attr:datetime"}},"search":{"lazy":true,"empty":"main [role=\"alert\"]","title":{"sel":"article:has(a img)","url":"a|attr:href","name":"a:not(:has(img))|text","img":"a img|attr-contain:src"}}},{"id":"lua","releases":{"title":{"sel":"div:has(> div > a[href*=\"/series/\"]):has(a > h5)","url":"a|attr:href","name":"h5|text","chapter":{"sel":"a + div a","url":"|attr:href","label":"span:first-child|text","at":"span:not(:first-child)|text"}}},"title":{"name":"h1|text","img":"main div > img[src]|attr-contain:src","hasMore":"[aria-current=\"page\"]","chapter":{"sel":"a[href*=\"/series/\"]:has(> li)","url":"|attr:href","label":"div > span:first-child|text","at":"div > span:not(:first-child)|text"}},"reader":{"label":"h1|text","prev":"a[href*=\"/series/\"]:has(> button [data-icon=\"chevron-left\"])|attr:href","next":"a[href*=\"/series/\"]:has(> button [data-icon=\"chevron-right\"])|attr:href","content":"body","title":{"sel":"nav:has(h1)","name":"h2|text","url":"a:has(svg[data-icon=\"house\"])|attr:href"},"chapter":{"trigger":"button:has(> [data-icon=\"list\"])","sel":"#headlessui-portal-root ul a[href*=\"/series/\"]:has(> li)","url":"|attr:href","label":"span:first-child|text","at":"span:not(first-child)|text"}},"chapters":{"chapter":{"json":true,"sel":"","label":"chapter_name","url":"chapter_slug","at":"created_at"}}},{"id":"mangak","releases":{"title":{"sel":"article","name":"img|attr:title","url":"a|attr:href","chapter":{"sel":"article a ~ div a:has(> span)","url":"|attr:href","label":"span|text"}}},"title":{"sel":"[aria-label=\"Manga sections\"]","name":"h1|text","tags":"a[href*=\"/genres/\"]|text","hasMore":"div:has(> [data-chapter-row]) ~ div button","first":"a:has([d=\"M7 5v14l12-7Z\"])|attr:href","chapter":{"sel":"a[data-chapter-row]","url":"|attr:href","label":"div div|text","at":"div span span|text"}},"reader":{"label":"[aria-label=\"Back\"] ~ span:last-of-type|text","title":{"sel":"[aria-label=\"Back\"] ~ a:nth-of-type(2)","url":"|attr:href","name":"|text"},"content":"#images","imgDivs":"[data-page-idx]","chapter":{"json":"https://api.mangak.io/titles/{titleId}/chapters","sel":"data.chapters","url":"slug","label":"name","at":"updated_at"}},"search":{"lazy":true,"loading":".animate-spin","title":{"sel":"article","name":"img|attr:title","url":"a|attr:href","chapter":{"sel":"article a ~ div a:has(> span)","url":"|attr:href","label":"span|text"}}}},{"id":"rolia","releases":{"title":{"sel":"#manga-grid .group","url":"a|attr:href","name":"a|attr:title","chapter":{"sel":"a ~ div:has(a)","url":"a|attr:href","label":"a|text","at":"span|text"}}},"title":{"id":"[data-manga-id]|attr:data-manga-id","name":"h1|text","img":"img[alt*=\"Cover background\"]|attr-contain:src","tags":"a[href*=\"/tag/\"]|text","first":"a#start-reading-btn|attr:href"},"reader":{"title":{"url":"a[href*=\"/manga/\"][title]|attr:href","name":"a[href*=\"/manga/\"][title]|attr:title","id":"[data-manga-id]|attr:data-manga-id"},"label":"#chapter-select option:checked|text","content":"#chapter-images-container","imgs":".comic-image-container img|[attr:data-src,attr-contain:src]","chapter":{"sel":"#chapter-select option","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":"a[href*=\"/manga/\"]","url":"|attr:href","name":"h3|text"}}},{"id":"lelscanfr","releases":{"title":{"sel":"div:has(> #card-real)","url":"a|attr:href","name":"h2|text","chapter":{"sel":"#card-real + div div:has(a)","label":"b|text","url":"a|attr:href","at":"a + span|text"}}},"title":{"name":"main h2|text","img":"main img[alt]|attr-contain:src","tags":"main a[href*=\"genre=\"]|text","type":"a[href*=\"type=\"]|text","hasMore":"ul.pagination","chapter":{"sel":"#chapters-list > a","url":"|attr:href","label":"div:first-child > span|text","at":"div:nth-child(2) > span"}},"reader":{"label":"h2|text","title":{"sel":"h3 a","url":"|attr:href","name":"|text"},"content":"#chapter-container, main","lstrip":"#reading-types option[value=\"long\"]:checked","lstripBtn":"#reading-types option[value=\"long\"]","prev":"div:has(#chapter-select) + div a:first-child[href*=\"/manga/\"]|attr:href","next":"div:has(#chapter-select) + div a:last-child[href*=\"/manga/\"]|attr:href","chapter":{"sel":"div:has(~ #chapter-container) #chapter-select option","label":"|text","url":"|text"}}},{"id":"phoenix","releases":{"title":{"sel":".main__latest-releases-card","url":"a|attr:href","name":"h3 text","chapter":{"sel":"a.main__latest-releases-card-chapter","url":"|attr:href","label":".main__latest-releases-card-chapter-number|text","at":".main__latest-releases-card-chapter-date|text"}}},"title":{"name":"h1|text","img":"img.project__cover|attr-contain:src","chapter":{"sel":"a.project__chapter","url":"|attr:href","label":".project__chapter-title|text","at":".project__chapter-date|text"}},"reader":{"label":".chapter__nav-chapter-title-number|text","title":{"sel":"a.chapter__nav-chapter","url":"|attr:href","name":".chapter__nav-title|text"},"content":".chapter-images__container","prev":"a.chapter__previous|attr:href","next":"a.chapter__next|attr:href","chapter":{"trigger":".chapter-images__controls-chapter","sel":".chapter-list .chapter_item a","url":"|attr:href","label":"|text"}}},{"id":"manhwaz","title":{"name":".post-title h1|text","img":".summary_image img[alt]|attr-contain:src","tags":".genres-content a[rel=\"tag\"]|text","chapter":{"sel":".wp-manga-chapter","label":"a|text","url":"a|attr:href","at":".chapter-release-date i|text"}},"reader":{"label":".breadcrumb .active|text","title":{"sel":".breadcrumb li:has(+ .active) a","url":"|attr:href","name":"|text"},"content":"#chapter_content, .reading-content","prev":".nav-previous a|attr:href","next":".nav-next a|attr:href","chapter":{"sel":"#manga-reading-nav-head .single-chapter-select option","url":"|attr:value","label":"|text"}},"search":{"title":{"sel":".page-item-detail","url":"a|attr:href","name":"h3 a|text","img":"img|attr-contain:src","chapter":{"sel":".chapter-item ","url":"a|attr:href","label":"a|text","at":".post-on|text"}}}},{"id":"dynasty","title":{"name":"h2.tag-title b|text","img":".cover img|attr-contain:src","tags":".tag-tags a.label|text","chapter":{"sel":".chapter-list dd:has(> a.name)","url":"a|attr:href","label":"a|text","at":"small|text"}},"reader":{"label":"h3#chapter-title b|text","title":{"sel":"h3#chapter-title a","url":"|attr:href","name":"|text"},"content":"#image","prev":"a#prev_link|attr:href","next":"a#next_link|attr:href"},"search":{"title":{"sel":".chapter-list a.name","url":"|attr:href","name":"|text"}}},{"id":"fmteam","releases":{"title":{"sel":".item:has(h5 a)","name":"h5 a|text","url":"h5 a|attr:href","chapter":{"sel":"a[href*=\"/read/\"]","label":"|text","url":"|attr:href"}}},"title":{"lazy":true,"sel":"#comic","name":"#comic .card-header|text","img":"#comic .card-body .thumbnail-full img|attr-contain:src","type":"#comic .card-body div:has(> label)|row:format","tags":"#comic .card-body div:has(> label)|row:genres","chapter":{"sel":"div:has(> div > .chapter a[href*=\"/read/\"])","label":"a[href*=\"/read/\"]|text","url":"a[href*=\"/read/\"]|attr:href","at":"div:last-child[title]|attr:title"}},"reader":{"title":{"sel":"#reader-controls-title a","name":"|text","url":"|attr:href"},"label":"select[name=\"jump-chapter\"] option:checked|text","content":"#reader-images","imgDivs":"#reader-images [data-page]","lstrip":".active > [data-value=\"long-strip\"]","lstripBtn":"[data-value=\"long-strip\"]","prev":"#chapter-link-left[href*=\"/read\"]|attr:href","next":"#chapter-link-right[href*=\"/read\"]|attr:href","chapter":{"sel":"select[name=\"jump-chapter\"] option","label":"|text","url":"|attr:value"}}},{"id":"readallcomics","title":{"name":"h1 b|text","img":".description-archive img|attr-contain:src","tags":"h1 ~ div p strong|text","chapter":{"sel":".list-story li a","url":"|attr:href","label":"|text"}},"reader":{"sel":"center > p:has(> img)","label":"h3 strong|text","title":{"sel":".pinbin-category a","name":"|text","url":"|attr:href"},"content":"center > p:has(> img)","imgs":"center > p > img|[attr:data-jh-lazy-img,attr-contain:src]","chapter":{"sel":"center:has(> p > img) ~ div center select option","label":"|text","url":"|attr:value"}}},{"id":"philia","releases":{"title":{"sel":"main .unit","name":"a.c-title|text","url":"a.c-title|attr:href","chapter":{"sel":"li a","url":"|attr:href","label":".ch-num|text","at":".ch-date|text"}}},"title":{"name":"h1.serie-title|text","img":"img.cover|attr-contain:src","type":".stat-label|row:type","chapter":{"sel":".chapter-group a","url":"|attr:href","label":"zebi|text","at":".time|text"}},"reader":{"label":".current-type-number|text","title":{"sel":"a.manga-title","url":"|attr:href","name":"|text"},"content":"#ch-images","chapter":{"sel":".chapter-list ul .item","url":"|attr:data-chapter","label":"a|text"}},"search":{"title":{"sel":".unit","url":"a|attr:href","name":".c-title|name","img":"img|attr-contain:src","chapter":{"sel":".content > li a","url":"|attr:href","label":".ch-num|text","at":"ch-date|text"}}}},{"id":"batcave","releases":{"title":{"sel":"li.latest","name":"a.latest__title|text","url":"a.latest__title|attr:href","chapter":{"sel":".latest__chapter a","url":"|attr:href","label":"|text"}}},"title":{"name":"#dle-content h1|text","img":"#dle-content .img-wide img|attr-contain:src","id":"[data-ratig-layer-id]|attr:data-ratig-layer-id","chapter":{"sel":".cl__item","label":".cl__item-num|text","url":"a|attr:href","at":".cl__item-date|text"}},"reader":{"label":".chapter__selector-trigger__title|text","title":{"sel":"a.header__post-link","url":"|attr:href","name":".header__post-title|text"},"content":".reader-view","chapter":{"trigger":".chapter__selector-trigger","sel":".chapters__list a","url":"|attr:href","label":"|text"},"prev":".chapter__selector a:has(.fa-angle-left)[href*=\"/reader/\"]|attr:href","next":".chapter__selector a:has(.fa-angle-right)[href*=\"/reader/\"]|attr:href"}},{"id":"tcb","title":{"name":"h1|text","img":"main img|attr-contain:src","chapter":{"sel":"main a[href*=\"/chapters/\"]","url":"|attr:href","label":"div|text"}},"reader":{"label":"h1|text|remove:.+-","title":{"name":"h1|text|remove:-.+","url":"main a[href*=\"/mangas/\"]|attr:href"},"prev":"a[href*=\"/chapters/\"]:has(+ a[href*=\"/mangas/\"])|attr:href","next":"a[href*=\"/mangas/\"] + a[href*=\"/chapters/\"]|attr:href","content":"main"}},{"id":"mangapill","releases":{"title":{"sel":"div:has(> a[href*=\"/chapters/\"]):has(div > a[href*=\"/manga/\"])","name":"a[href*=\"/manga/\"]|text","url":"a[href*=\"/manga/\"]|attr:href","chapter":{"sel":"div:has(> a[href*=\"/chapters/\"])","url":"a[href*=\"/chapters/\"]|attr:href","label":"a[href*=\"/chapters/\"]|text","at":"time-ago|attr:datetime"}}},"title":{"name":"h1|text","img":"header ~ div img|attr:data-src","tags":"a[href*=\"?genre=\"]|text","chapter":{"sel":"#chapters a[href*=\"/chapters/\"]","url":"|attr:href","label":"|text"}},"reader":{"label":"h1#top|text","title":{"sel":"#js-chapter-selector-modal div:has(> a[href*=\"/manga/\"])","name":"#chapter-selector-modal-title|text","url":"a|attr:href"},"content":"div:has(> chapter-page)","imgs":"chapter-page picture img|attr-contain:src","prev":"a[data-hotkey=\"ArrowLeft\"]|attr:href","next":"a[data-hotkey=\"ArrowRight\"]|attr:href","chapter":{"trigger":"button[data-micromodal-trigger=\"js-chapter-selector-modal\"]","dismiss":"#js-chapter-selector-modal button[data-micromodal-close]","sel":"#js-chapter-selector-modal a[href*=\"/chapters/\"]","url":"|attr:href","label":"|text"}},"search":{"title":{"sel":"div:has(> a img)","url":"a|attr:href","name":"a:not(:has(img)) div|text","img":"a img|[attr:data-src,attr-contain:src]"}}},{"id":"mangataro","releases":{"title":{"sel":"#manga-grid > div:has(a + div a[href*=\"/read/\"])","name":"a|attr:title","url":"a|attr:href","chapter":{"sel":"div:has(> a[href*=\"/read/\"])","url":"a|attr:href","label":"a|text","at":"span:last-child|text"}}},"title":{"name":"h1|text","img":".manga-page-wrapper img|attr-contain:src","tags":".manga-page-wrapper a[href*=\"/tag/\"]|text","type":"h1 + p + div + div > span|text","first":"a#start-reading-btn|attr:href"},"reader":{"title":{"sel":"a[href*=\"/manga/\"]","url":"|attr:href","name":"span|text"},"label":"select#chapter-select option:checked|text","content":".reader","imgs":".comic-image-container img|[attr:data-src,attr-contain:src]","chapter":{"sel":"select#chapter-select option","url":"|attr:value","label":"|text"}},"search":{"title":{"sel":".group a[href*=\"manga\"]","url":"|attr:href","name":"img|attr:alt"}}},{"id":"demonic","releases":{"title":{"sel":".updates-element-info","name":"h2 a|text","url":"a|attr:href","chapter":{"sel":".chap-date","url":"a|attr:href","label":"a|text","at":"div:last-child a|text"}}},"title":{"name":"h1.big-fat-titles|text","img":"#manga-page img[alt]|attr-contain:src","chapter":{"sel":"#chapters-list li > a","url":"|attr:href","label":"|text","at":"span|text"}},"reader":{"sel":".chapter-info h1 a","title":{"sel":".chapter-info h1 a","url":"|attr:href","name":"|text"},"label":"h2|text","content":"body","imgs":"img.imgholder:not([data-tried]):not([src*=\"/free_ads\"])|attr-contain:src","chapter":{"sel":"h2 + .chapters-nav select option","label":"|text","url":"|attr:value"}}},{"id":"atsu","title":{"lazy":true,"sel":"h1","name":"h1|text","img":".poster|attr-contain:src","tags":"a[href*=\"/explore?genres=\"]|text","first":"a[href*=\"/read/\"]:has([data-icon=\"book-open\"])|attr:href","trackers":true,"hasMore":"button:has(+ div > a[href*=\"/read/\"])","chapter":{"sel":"div:has(> a[href*=\"/read/\"]):has(div.truncate):has(~ button), div:not(:has(> button)) > div:has(> a[href*=\"/read/\"]):has(div.truncate)","url":"a|attr:href","label":"div.truncate:first-child|text","at":"div.truncate + div:last-child|text"}},"chapters":{"chapter":{"json":true,"sel":"chapters","label":"number","url":"id"}},"search":{"lazy":true,"empty":"div > h1","title":{"sel":"a[href*=\"/manga/\"]","url":"|attr:href","name":"p|text","img":"img|attr-contain:src"}}},{"id":"kali","title":{"name":".name h1|text","img":".img-cover img|[attr:data-src,attr-contain:src]","tags":".meta a[href*=\"/genres/\"]|text","chapter":{"sel":"#chapter-list li > a","url":"|attr:href","label":".chapter-title|text","at":".chapter-update|text"}},"reader":{"lazy":true,"sel":".chapter-image","title":{"sel":".breadcrumbs-item a[href*=\"/manga/\"]","url":"|attr:href","name":"span|text"},"label":".breadcrumbs-item:last-child span|text","imgDivs":".chapter-image","prev":"#btn-prev|attr:href","next":"#btn-next|attr:href","chapter":{"trigger":"#load-chapters","sel":".chapter-select option","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":".book-detailed-item","img":"img|[attr:data-src,attr-contain:src]","name":"h3 a|text","url":"h3 a|attr:href","chapter":{"sel":".thumb","label":".latest-chapter|text"}}}},{"id":"mangafreak","releases":{"title":{"sel":".latest_item","url":"a|attr:href","name":"a.name|text","chapter":{"sel":".chapter_box a","url":"|attr:href","label":"|text"}}},"title":{"name":"h1|text","img":".manga_series_image img|attr-contain:src","tags":".series_sub_genre_list > a|text","chapter":{"sel":".manga_series_list tbody tr","url":"a|attr:href","label":"a|text","at":"td:last-child|text"}},"reader":{"title":{"sel":"h1.title a","url":"|attr:href","name":"|text"},"label":"h1|text","imgs":".read_image img|attr-contain:src","chapter":{"sel":".chapter_list select option","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":".manga_search_item","name":"h3 a|text","url":"a|attr:href","img":"img|attr-contain:src"}}},{"id":"readcomiconline","title":{"name":".barContent .bigChar|text","img":"#rightside img, .main img|attr-contain:src","chapter":{"sel":".listing tbody tr:has(a)","label":"a|text","url":"a|attr:href","at":"td:last-child|text"}},"reader":{"title":{"sel":"#navsubbar a","url":"|attr:href","name":"|text|pattern:Comic (.+) information"},"label":".selectEpisode option:checked|text","lstrip":"#selectReadType option[value=\"1\"]:checked","lstripBtn":"#selectReadType option[value=\"1\"]","content":"#divImage","chapter":{"sel":".selectEpisode option","url":"|attr:value","label":"|text"}}},{"id":"valir","generic":true,"meta":{"releases":"latest","titleBase":"series","readerBase":"chapter","searchBase":"series/?q=","titleIdType":"slug","defaultLang":"en","noTags":true,"trailing":true},"releases":{"title":{"sel":".latest-poster","name":"a h3|text","url":"a|attr:href","chapter":{"sel":"a[href*=\"/chapter/\"]","url":"|attr:href","label":"span div|text","at":"span:last-child|text"}}},"title":{"sel":".bg-\\[image\\:--photoURL\\]","name":"h1|text","img":".bg-\\[image\\:--photoURL\\]|bg-image","chapter":{"sel":"#chapters > a","url":"|attr:href","label":"span span|text","at":"span + div div|text"}},"reader":{"sel":"#chapter_header a[href*=\"/series/\"]","title":{"sel":"#chapter_header a[href*=\"/series/\"]","url":"|attr:href","name":"|text"},"label":"#chapter_header span:has(a[href*=\"/series/\"])|text","content":"#pages","chapter":{"sel":"#chapters > a","url":"|attr:href","label":"span span|text","at":"span + div div|text"}},"search":{"lazy":true,"delay":500,"empty":"#no_results_page","title":{"sel":"#searched_series_page > button:not(.hidden)","name":"a h3|text","url":"a|attr:href","img":"div[style*=\"background-image\"]|bg-image"}}},{"id":"rithar","releases":{"title":{"sel":".latest-poster","name":"a h3|text","url":"a|attr:href","chapter":{"sel":"a[href*=\"/read/\"]","url":"|attr:href","label":"span div|text","at":"span:last-child|text"}}},"title":{"name":"h1|text","img":"main div[style*=\"background-image\"]|bg-image","chapter":{"sel":"#chapters > a","url":"|attr:href","label":"span span|text","at":"div:has(> span) + div div|text"}},"reader":{"title":{"sel":"header a[href*=\"/series/\"]","url":"|attr:href","name":"|text"},"label":"header a[href*=\"/series/\"] + span|text","lstrip":"[x-ref=\"webtoonContainer\"]","lstripBtn":"div:has(> img[src*=\"up-down\"])","imgDivs":"[id*=\"webtoon-page-\"]","chapter":{"sel":"#chapters > a","url":"|attr:href","label":"span span|text","at":"span + div div|text"}},"search":{"title":{"sel":"#main-content button:has(a[href*=\"/series/\"])","name":"a h3|text","url":"a|attr:href","img":"div[style*=\"background-image\"]|bg-image"}}},{"id":"rawkuma","releases":{"title":{"sel":"#search-results > div","url":"a|attr:href","name":"h1|text","chapter":{"sel":"div > a:has(time)","url":"|attr:href","label":"p|text","at":"time|attr:datetime"}}},"title":{"name":"h1[itemprop=\"name\"]|text","img":"[itemprop=\"image\"] img|attr-contain:src","tags":"a[href*=\"/genre/\"] span|text","type":"h4|row:type","first":"button a[href*=\"/manga/\"]|attr:href"},"reader":{"title":{"name":"a[href*=\"/manga/\"] img[alt]|attr:alt","url":"a[href*=\"/manga/\"]|text"},"label":"div:has(> time) div|text","imgs":"section[data-image-data] > img|attr-contain:src","prev":"a[href*=\"/manga/\"]:has([data-lucide=\"chevron-left\"])|attr:href","next":"a[href*=\"/manga/\"]:has([data-lucide=\"chevron-right\"])|attr:href","chapter":{"trigger":"button[data-tippy-trigger]:has(.lucide-chevron-down)","sel":"#chapter-lists-head li a","url":"|attr:href","label":"|text"}}},{"id":"mangaberri","releases":{"title":{"sel":".manga-horizontal-item","url":"a|attr:href","name":"a|attr:title","chapter":{"sel":"a.episode","url":"|attr:href","label":"span|text"}}},"title":{"sel":".chapters-container","name":"h1|text","img":"img.comic-img|attr-contain:src","tags":".comic-attrs a[href*=\"genre=\"]|text","chapter":{"sel":".chapters-container > a","url":"|attr:href","label":"span|text"}},"reader":{"title":{"sel":".breadcrumb-container a:nth-of-type(2)","url":"|attr:href","name":"|attr:title"},"label":".breadcrumb-container a:nth-of-type(3)|attr:title","content":".reading-container","imgs":".reading-container img|attr-contain:src","chapter":{"sel":"#top_chapter_selection option","url":"|attr:value","label":"|text"}},"search":{"title":{"sel":".manga-item","img":"img|attr-contain:src","name":"a|attr:title","url":"a|attr:href","chapter":{"sel":"a:last-of-type","url":"|attr:href","label":"|text"}}}},{"id":"kagane","title":{"lazy":true,"sel":"h1","name":"h1|text","tags":"a[href*=\"search?genres=\"] span|text","firstBtn":"button:has(.lucide-play)"},"reader":{"title":{"name":"title|text|remove:-.+","url":"a[href*=\"/series/\"]|attr:href"},"label":"title|text|remove:.+-","content":".reader-pages-content","imgDivs":"[data-page]","prev":{"sel":"a:has(.lucide-arrow-left)"},"next":{"sel":"a:has(.lucide-arrow-right)"}},"chapters":{"chapter":{"json":true,"sel":"series_books","url":"book_id","label":"chapter_no","vol":"volume_no","at":"created_at","group":"groups.0.title"}},"search":{"lazy":true,"title":{"sel":"[data-series-item]","name":"h3|text","url":"a|attr:href"}}},{"id":"mangaball","title":{"name":"h6|text","img":"#featuredComicsCarousel img[alt]|attr-contain:src","tags":"[data-tag-id]|text"},"reader":{"title":{"name":"header h6|text","url":"[type=\"application/ld+json\"]|text|remove:^[\\s\\S]*?\"url\":\\s*\"|remove:\"[\\s\\S]*$"},"label":"#chapterTitle|text","content":"#mangaPages","imgs":"#mangaPages img|[attr:data-src,attr-contain:src]","group":"#translationGroup span|text"},"search":{"lazy":true,"loading":"button .spinner-border","title":{"sel":".chapter-card","name":"a|text","url":"a|attr:href","chapter":{"sel":".chapter-list > div","url":"a|attr:href","label":"a|text","at":"div:has(> i.fa-clock)|text"}}}},{"id":"mangatr","title":{"sel":"#tab1 .info-body h1","name":"#tab1 .info-body h1|text","img":".thumbnail|attr:src","tags":".manga-meta-card a[href*=\"tur=\"]|text","first":"#results a:has(+ .chapter-container)|attr:href","hasMore":"[data-page=\"2\"]","chapter":{"sel":".chapter-item","label":"a|text","url":"a|attr:href","at":".stats|text"}},"reader":{"sel":".chapter-content","title":{"sel":"a.navbar-brand","url":"|attr:href","name":"|text"},"label":".navbar-form option:checked|text","group":".chapter-content a.label|text","content":"#chapter-images","chapter":{"sel":".navbar-form option","url":"|attr:value","label":"|text"}}},{"id":"denizi","title":{"name":".panel-heading,h2|text","img":".single-managa .boxed img, h2 ~ div img|attr-contain:src","tags":"a[href*=\"/category/\"]|text","chapter":{"sel":".chapters > li","label":"a|text","url":"a|attr:href","at":".date-chapter-title-rtl|text"}},"reader":{"title":{"sel":".nav:has(#chapter-list) a","url":"|attr:href","name":"|text"},"label":"h1 b|text","content":"#all","imgs":"#all img|[attr:data-src,attr-contain:src]","chapter":{"sel":"#chapter-list li a","url":"|attr:href","label":"|text"}}},{"id":"mangabox","releases":{"title":{"sel":".itemupdate","name":"h3 a|text","url":"a|attr:href","chapter":{"sel":"ul > li:not(:first-child)","label":"a|text","url":"a|attr:href","at":"i|text"}}},"title":{"name":"h1|text","img":".manga-info-pic img|attr-contain:src","tags":".manga-info-text a[href*=\"/genre/\"]|text","first":".read-chapter a|attr:href","hasMore":"a[href*=\"/chapter-51\"]","chapter":{"sel":".chapter-list > .row","label":"a|text","url":"a|attr:href","at":"span:last-child|attr:title"}},"reader":{"title":{"sel":".breadcrumb a[href*=\"/manga/\"]","url":"|attr:href","name":"span|text"},"label":".breadcrumb > p > span:last-child span|text","imgs":".container-chapter-reader img|attr-contain:src","chapter":{"sel":".navi-change-chapter option","label":"|text","url":"|attr:data-url"}},"search":{"title":{"sel":".story_item","url":"a|attr:href","name":".story_name a|text","img":"img|attr-contain:src","chapter":{"sel":".story_chapter","url":"a|attr:href","label":"a|text"}}}},{"id":"merlin","title":{"name":"h1#manga-title,h1|text","img":".story-cover img|attr-contain:src","tags":"#genre-tags a[href*=\"/tur/\"]|text","hasMore":"a[href*=\"/page/2/\"]","first":".story-cover-wrap + div a|attr:href","chapter":{"sel":".chapter-item a","url":"|attr:href","label":"h3|text"}},"reader":{"title":{"sel":"#breadcrumb-manga","url":"|attr:href","name":"|text"},"label":"[aria-current=\"page\"]|text","prev":"a:has(> [uk-pagination-previous])|attr:href","next":"a:has(> [uk-pagination-next])|attr:href","imgs":"#chapter-content img|attr-contain:src","chapter":{"trigger":"#chapter-toggle","sel":"#chapter-dropdown li a","url":"|attr:href","label":"|text"}}},{"id":"temple","title":{"name":"main h1|text","img":"main img[alt]|attr-contain:src","tags":"h1 + div div:last-child > p + div:last-child p|text","chapter":{"sel":"a:has(h1):has(img):has(span)","url":"|attr:href","label":"h1|text","at":"div span:last-child|text"}},"reader":{"title":{"sel":"main h1 + a","url":"|attr:href","name":"|text"},"label":"main h1|text","imgDivs":"main [data-index]","prev":"main a:has(svg):first-child|attr:href","next":"main a:has(svg):last-child|attr:href","chapter":{"trigger":"button[aria-label=\"Chapters List\"]","sel":"[role=\"dialog\"] a[href*=\"/comic/\"]","url":"|attr:href","label":"h1|text","at":"h1 + span|text"}}},{"404":".error-page","id":"comix","releases":{"title":{"sel":".grid-updates a.card","chapter":{"sel":".card__meta","label":".card__ch|text","at":".card__time|text"}}},"title":{"lazy":true,"sel":"h1","name":"h1|text","img":".poster img|attr:src","tags":"a[href*=\"?genres_in=\"]|text","firstBtn":"button.mpage__read","hasMore":".npager","chapter":{"sel":".mchap-row","url":"a|attr:href","label":".mchap-row__ch,a span|text","at":".mchap-row__time|text","group":".mchap-row__group span|text"},"trackers":{"mal":"a[title=\"MyAnimeList\"]|attr:href","anl":"a[title=\"AniList\"]|attr:href"}},"reader":{"title":{"sel":"a.rpage-chap-ending__title","url":"|attr:href","name":"span|text || |text"},"label":".rpage-chap-ending__meta span,.rpage-dd__trigger span,.rpage-header__meta span|text || title|text","group":".rpage-chap-ending__meta strong|text","lstrip":".rpage-dir2__btn.is-on:last-child","lstripBtn":".rpage-dir2__btn:last-child","content":".rpage-main__inner, .rpage-main","imgDivs":".rpage-page","prev":{"sel":".rpage-chap-ending__nav-btn:first-child:not([disabled])","label":"span span|text"},"next":"#syncData|json:next_chapter_url"},"search":{"lazy":true,"empty":".list-empty button","title":{"sel":".lrow","url":"a|attr:href","name":"h3,.lrow__title|text","chapter":{"sel":".lrow__ch","label":"|text"}}},"chapters":{"pages":{"sel":".npager__num","total":".mchap-foot__hint|text|pattern:.+of\\s(\\d+)\\sitems","prevBtn":".npager__nav[aria-label=\"Previous page\"]","nextBtn":".npager__nav[aria-label=\"Next page\"]","lastBtn":".npager__nav[aria-label=\"Last page\"]"}}},{"id":"manhuaplus","releases":{"title":{"sel":"#home-tab-update > div ","url":"a|attr:href","name":"img|attr:alt","chapter":{"sel":"div + a","url":"|attr:href","label":"|text"}}},"title":{"name":"h1|text","img":"main img|attr-contain:src","tags":"main article a[href*=\"/genres/\"]|text","chapter":{"sel":"#myUL > li","url":"a|attr:href","label":"a|text","at":"time|attr:datetime"}},"reader":{"title":{"sel":"h1 a","url":"|attr:href","name":"|text"},"label":"h1|text","content":"#chapterContent:not(:has(img[src*=\"loading.gif\"]))","imgs":"#chapterContent img:not([src*=\"loading.gif\"])|attr:src","prev":"a.prevBtn|attr:href","next":"a.nextBtn|attr:href","chapter":{"sel":"#top-control select option","url":"|attr:value","label":"|text"}},"search":{"title":{"sel":"div:has(> div + a[href*=\"/manga/\"])","url":"a|attr:href","name":"a|attr:title","chapter":{"sel":"div + a","url":"|attr:href","label":"|text"}}}},{"id":"projectsuki","releases":{"title":{"sel":".content .item","url":"a|attr:href","name":".details a|text","chapter":{"sel":"a[href*=\"/read/\"]","url":"|attr:href","label":"|text"}}},"title":{"name":"h2|text","img":".img-thumbnail|attr-contain:src","tags":"a[href*=\"/genre/\"]|text","chapter":{"sel":"tbody tr","url":"a|attr:href","label":"a|text","at":"td:last-child span|attr:title"}},"reader":{"title":{"sel":"main a:has(.fa-home)","url":"|attr:href","name":"|attr:title"},"label":"#chapter-select option:checked|text","content":".strip-reader","chapter":{"sel":"#chapter-select option","url":"|attr:value","label":"|text"}},"search":{"title":{"sel":".content > div:has(a)","url":"a|attr:href","name":"h4 a|text"}}},{"id":"mangatown","releases":{"title":{"sel":".manga_pic_list > li, .post-list > li","name":".title a, .title|text","url":"a|attr:href","chapter":{"sel":".new_chapter a, a.read-btn","url":"|attr:href","label":"|text"}}},"title":{"name":"h1.title-top,.title|text","img":".detail_info > img, .manga-detail-top img|attr-contain:src","tags":".detail_info ul li|row:genre(s) || a[href*=\"/directory/\"]|text","type":".detail_info ul li|row:type","chapter":{"sel":".chapter_list > li, .detail-ch-list > li","url":"a|attr:href","label":"a|attr:name || a|text","at":".time|text"}},"reader":{"title":{"url":".title h2 a, .title a:last-child|attr:href","name":".sharebtn a|attr:st_title || .title a:last-child|text|remove:manga$"},"label":"#top_chapter_list option:checked, .title a|text","imgs":"#viewer img:not(.reader-main-img)|attr-contain:src","chapter":{"sel":"#top_chapter_list option","url":"|attr:value","label":"|text"}},"search":{"title":{"sel":".manga_pic_list > li, .post-list > li","url":"a|attr:href","name":"a|attr:title || a|attr:rel"}}},{"id":"qtoon","title":{"img":"img.image|attr-contain:src","tags":".detail-meta-chip, .tag .item|text","chapter":{"sel":".list a","url":"|attr:href","label":".name|text","at":".time|text"}},"reader":{"title":{"url":"a.rdr-back|attr:href","name":".rdr-manga-name|text"},"label":".rdr-ep-tag|text","content":"#rdr-panels","imgs":".rdr-panel img|[attr:data-src,attr-contain:src]","chapter":"a.rdr-chap-ep"},"search":{"title":".manga-item"}},{"id":"mangatime","title":{"name":".anime__details__title h3|text","img":".anime__details__pic|bg-image","tags":".anime__details__widget li:last-child|text","chapter":{"sel":"a:has(> .detail-main-list-main)","url":"|attr:href","label":".title3|text","at":".title2|text"}},"reader":{"label":".breadcrumb__links span:last-child|text","title":{"sel":".breadcrumb__links a:last-of-type","url":"|attr:href","name":"|text"},"content":"#chapter-pages","chapter":{"sel":"#chapter-dropdown option","url":"|attr:value","label":"|text"}}},{"id":"imhen","title":{"name":"h1|text","img":".gallery_first img[alt]|[attr:data-src,attr-contain:src]","first":".gthumb a|attr:href"},"reader":{"label":".current|text","title":{"name":"#gimg|attr:alt|remove:page\\s\\d+.*$","url":"a.return_btn|attr:href"},"imgs":"#gimg|attr-contain:src"}},{"id":"manhwaread","title":{"name":"main h1|text","tags":"main a[href*=\"/tag/\"] span|text","chapter":{"sel":"#chaptersList > a","url":"|attr:href","label":".chapter-item__name|text","at":".chapter-item__date|text"}},"reader":{"title":{"sel":"#readingNavTop h2 a","url":"|attr:href","name":"|text"},"label":"h1|text","content":"#imagesList","chapter":{"sel":"#chaptersList > a","url":"|attr:href","label":"|text"}},"search":{"title":{"sel":".manga-item","name":"h3 a|text","url":"a|attr:href","chapter":{"sel":"a.chapter-item","url":"|attr:href","label":".chapter-name|text","at":".chapter-timestamp|text"}}}},{"id":"softkomik","releases":{"title":{"sel":".item-komik:has(.item-desc)","url":"a|attr:href","name":".item-title a|text","chapter":{"sel":".list-chapter a","url":"|attr:href","label":"span|text"}}},"title":{"lazy":true,"sel":".chapter-list a","name":"h1:has(+h2)|text","tags":".genre-des a|text","chapter":{"sel":".chapter-list a","url":"|attr:href","label":"|text"}},"reader":{"title":{"sel":"a:has(.fa-book)","url":"|attr:href","name":"p|text"},"label":".bt-show .item-chevron a:not([href])|text","content":".container-img:has(> img)","prev":"a:has(.fa-chevron-left)|attr:href","next":"a:has(.fa-chevron-right)|attr:href"},"search":{"title":{"sel":".item-komik","name":".item-title a|text","url":"a|attr:href","img":"img:has(~ noscript)|bg-image","chapter":{"sel":".list-chapter a","url":"|attr:href","label":"span|text"}}}},{"id":"eva","releases":{"title":{"sel":".lux-masonry-grid .lux-card","url":"a|attr:href","name":"h3 a |text","chapter":{"sel":".lux-chapters a","url":"|attr:href","label":".ch-text|text","at":".ch-time|text"}}},"title":{"name":"h1|text","img":".poster-box img|attr-contain:src","tags":"a.gen-tag|text","chapter":{"sel":"#chapterlist li","url":"a|attr:href","label":"|attr:data-num","at":".chapterdate|text"}},"reader":{"sel":"#readerArea","title":{"url":".reader-nav-link[title=\"Series\"]|attr:href","name":".manga-name|text"},"label":"h1.chapter-name|text","imgs":".page-wrapper img|attr-contain:src","chapter":{"sel":".dropdown-list a","url":"|attr:href","label":"span|text"}},"search":{"title":{"sel":".manga-card-v","name":"h3 a |text","img":"img|attr-contain:src","url":"a|attr:href","chapter":{"sel":"a:has(> .v-time)","url":"|attr:href","label":"span|text","at":".v-time|text"}}}},{"id":"mada","releases":{"title":{"sel":".postbody .legend-inner","url":"a|attr:href","name":"h3 a|text","chapter":{"sel":".legend-chapters a","url":"|attr:href","label":".ch-txt|text","at":".ch-time|text"}}},"title":{"name":"h1|text","tags":"a.lh-genre-tag|text","chapter":{"sel":"#chapters-list-container a","url":"|attr:href","label":".ch-num|text","at":".ch-date|text"}},"reader":{"title":{"sel":".reader-title-group","name":".reader-manga-title|text","url":"a|attr:href"},"label":".reader-chapter-badge|text","chapter":{"sel":".chapter-modal a","url":"|attr:href","label":"|text"},"content":"#readerarea","imgs":"#readerarea img|attr-contain:src"},"search":{"title":{"sel":".legend-inner","name":"h3 a|text","url":"a|attr:href","chapter":{"sel":".legend-chapters a","url":"|attr:href","label":".ch-txt|text","at":".ch-time|text"}}}},{"id":"otakuangel","title":{"name":"h1|text","img":"main img|attr:src","tags":"a[href*=\"?kategori=\"]|text","chapter":{"sel":"a[href*=\"/{titleSlug}/\"]","url":"|attr:href","label":"h3|text"}},"reader":{"title":{"sel":"a:has(h1)","url":"|attr:href","name":"h1|text"},"label":"h2|text","lstrip":"option[value=\"long-strip\"]:checked","lstripBtn":"option[value=\"long-strip\"]","content":"div:has(> .image-container)","imgDivs":".image-container","chapter":{"sel":"h2 + select option","url":"|text","label":"|text"}},"search":{"title":{"sel":"main [role=\"button\"]:has(a)","url":"a|attr:href","name":"a|text","chapter":{"sel":"a ~ div a","url":"|attr:href","label":"|text"}}}},{"id":"dflow","title":{"name":"h1|text","tags":"h1 ~ div strong + div > span|text","chapter":{"sel":"div:has(> a[href*=\"/ReadChapter/\"])","url":"a|attr:href","label":"h5|text","at":"p:has(> .fa-calendar)|text|remove:\\d+\\sviews$"}},"reader":{"title":{"sel":"h2 a","url":"|attr:href","name":"|text"},"label":"h2 + p|text","content":"#readerContainer","imgs":"#readerContainer img|attr-contain:src","chapter":{"sel":"select option[value*=\"/ReadChapter/\"]","url":"|attr:value","label":"|text"}},"search":{"title":{"sel":".manga-card","url":"a|attr:href","name":"h5|text"}}},{"id":"inkora","title":{"name":"h1|text","chapter":{"sel":"a[href*=\"/read/\"]","url":"|attr:href","label":"p|text","at":"p + div p|text"}},"reader":{"lazy":true,"sel":"button:has(.lucide-arrow-left) + a span:first-child:not(:empty)","title":{"sel":"button:has(.lucide-arrow-left) + a","url":"|attr:href","name":"span:first-child|text"},"label":"button:has(.lucide-arrow-left) + a span:last-child|text","imgs":"img[alt*=\"Page\"]|attr-contain:src","prev":{"sel":"button:has(.lucide-chevron-left):not([disabled])"},"next":{"sel":"button:has(.lucide-chevron-right):not([disabled])"},"chapter":{"trigger":"button:has(.lucide-menu)","sel":".fixed a[href*=\"/read/\"]","url":"|attr:href","label":"span|text"}},"chapters":{"chapter":{"json":true,"sel":"chapters","url":"id","label":"chapterNumber","at":"releaseDate"}},"search":{"lazy":true,"loading":".lucide-loader-circle","title":{"sel":"a[href*=\"/manhwa/\"]","url":"|attr:href","name":"h3|text","chapter":{"sel":"span:has(> .lucide-book-open)","label":"|text"}}}},{"id":"moins","title":{"lazy":true,"sel":"#cta-first-container a","name":"h1|text","img":"#manga-cover|attr:src","chapter":{"sel":"a.manga-detail__chapter","url":"|attr:href","label":".manga-detail__chapter-num|text","at":"manga-detail__chapter-right span|text"}}},{"id":"stone","title":{"name":"main h1|text","tags":"a[href*=\"?genre=\"]|text","chapter":{"json":"https://stonescape.xyz/api/series/{titleId}/chapters","sel":"chapters","label":"chapterNumber","url":"chapterNumber","at":"createdAt"}},"reader":{"title":{"sel":"header a[href*=\"/series/\"]","url":"|attr:href","name":"span|text"},"label":"button.s-select-trigger span|text","content":".s-reader__pages","imgDivs":".s-page-image","chapter":{"json":"https://stonescape.xyz/api/series/by-slug/{titleSlug}/chapters","sel":"chapters","label":"chapterNumber","url":"chapterNumber","at":"createdAt"}},"search":{"lazy":true,"loading":".s-skeleton","title":{"sel":"a[href*=\"/series/\"]","url":"|attr:href","name":"h3|text"}}},{"id":"rinko","releases":{"title":{"sel":".comic-card__body","url":"a|attr:href","name":"a|text","chapter":{"sel":"a.chapter-item","url":"|attr:href","label":"label|text","at":"span|text"}}},"title":{"name":"h1|text","img":".comic-cover img|attr-contain:src","tags":".genre|text","chapter":{"sel":".chapter a","url":"|attr:href","label":".chapter-number|text","at":".chapter-date|text"}},"reader":{"title":{"sel":".chapter-breadcrumb a[href*=\"/comic/\"]","url":"|attr:href","name":"|text"},"label":".breadcrumb-current|text","prev":{"sel":"a.prev","url":"|attr:href","label":".nav-chapter-name"},"next":{"sel":"a.next","url":"|attr:href","label":".nav-chapter-name"},"content":".images-flow"},"search":{"title":{"sel":".ac-card","url":"a|attr:href","name":".ac-title|text"}}},{"404":"div:has(.lucide-file-question-mark) + h1","id":"valir2","releases":{"title":{"sel":"[role=\"gridcell\"]","url":"a|attr:href","name":"h3|text","chapter":{"sel":"div:first-child > a[href*=\"/chapter/\"]","url":"|attr:href","label":"div:first-child span|text","at":"div:not(:first-child) span"}}},"title":{"sel":"h1","lazy":true,"name":"h1|text","tags":"a[href*=\"?tag=\"] span|text","first":"a[href*=\"/chapter/\"]:has(button)|attr:href","hasMore":"a[href*=\"page=2\"]:has(button)","chapter":{"lazy":false,"sel":"[role=\"tabpanel\"]:not(:has(a[href*=\"page=2\"])) a[href*=\"/chapter/\"]","url":"|attr:href","label":"div span|text","at":"span:has(.lucide-clock) span|text"}},"reader":{"sel":"h1","lazy":true,"title":{"name":"h1|text","url":"a:has(~ div h1)|attr:href"},"label":"h1 ~ p|text","imgDivs":":not([data-page]) > [data-page]","content":"main","prev":{"sel":"main ~ div button:has(.lucide-chevron-left)"},"next":{"sel":"main ~ div button:has(.lucide-chevron-right)"},"chapter":{"trigger":"button:has(.lucide-book-open) ~ button:has(.lucide-menu)","sel":"[data-radix-scroll-area-viewport] a","url":"|attr:href","label":"p|text"}},"search":{"lazy":true,"empty":"div[data-state=\"active\"]:not(:has(a)):not(:empty)","title":{"sel":"div[data-state=\"active\"] a:has(img)","url":"|attr:href","name":"h3|text"}}},{"404":"img[src$=\"404.png\"]","id":"silentquill","releases":{"title":{"sel":"#content-all .bigor","url":"a|attr:href","name":".tt a|text","chapter":{"sel":".chfiv a","url":"|attr:href","label":".fivchap|text","at":".fivtime|text"}}},"title":{"sel":".seriestere","name":"h1|text","img":"img[itemprop=\"image\"]|attr-contain:src","hasMore":".kdt8-load-more","first":"a.kdt8-btn-first|attr:href","chapter":{"sel":"a.kdt8-ch-item","url":"|attr:href","label":".kdt8-ch-num|text","at":".kdt8-ch-date|text"}},"reader":{"sel":".readercontent","title":{"sel":"a.back-series","url":"|attr:href","name":"|attr:title"},"label":".ch-num|text","content":"#readerarea","imgs":".ts-main-image|[attr:data-src,attr-contain:src]","lstrip":"#readingmode option[value=\"full\"]:checked","lstripBtn":"#readingmode option[value=\"full\"]","chapter":{"sel":"#reader-topbar select#chapter option:not([disabled])","url":"|attr:value","label":"|text"}},"search":{"title":{"sel":".listupd .bsx","name":".bigor .tt|text","url":"a|attr:href"}}},{"id":"qi","releases":{"title":{"sel":"[aria-label=\"Latest Updates\"] article","url":"a|attr:href","name":".item-title|text","chapter":{"sel":"a.chapter-row","url":"|attr:href","label":".chapter-num|text","at":".chapter-time|text"}}},"title":{"name":"h1|text","tags":".genre-tag|text","hasMore":".page-btn[aria-label=\"Page 2\"]","first":".cover-actions a|attr:href","chapter":{"sel":".cl-list a","url":"|attr:href","label":".cl-num|text","at":".cl-date|text"}},"reader":{"title":{"sel":"a.r-back","url":"|attr:href","name":"|attr:aria-label"},"label":"nav [aria-current=\"page\"]|text","content":".r-strip","prev":{"sel":"nav button[aria-label=\"Previous chapter\"]"},"next":{"sel":"nav button[aria-label=\"Next chapter\"]"}},"chapters":{"chapter":{"json":true,"sel":"data","url":"slug","label":"number","at":"createdAt"},"paging":{"lastPage":"totalPages","pageKey":"page","limitKey":"perPage","limitValue":100}},"search":{"title":{"sel":"a.bc","url":"|attr:href","name":"|attr:aria-label"}}},{"id":"hades","releases":{"title":{"sel":".manga-card-container","url":"a|attr:href","name":"h4|text","chapter":{"sel":"a.ch-item","url":"|attr:href","label":".ch-name|text","at":".ch-date|text"}}},"title":{"name":"h1|text","img":".info-poster img|attr-contain:src","tags":".genre-list a|text","chapter":{"sel":"#chapterlist a","url":"|attr:href","label":".chapternum|text","at":".chapterdate|text"}},"reader":{"sel":"#readerarea","title":{"sel":"a.back-to-series","url":"|attr:href","name":"|text"},"label":"h1|text","content":"#readerarea","lstrip":"#readingmode option[value=\"full\"]:checked","lstripBtn":"#readingmode option[value=\"full\"]","prev":"a.ch-prev-btn:not(.disabled)|attr:href","next":"a.ch-next-btn:not(.disabled)|attr:href","chapter":{"sel":".ctop #chapter option:not([disabled]):not([value=\"\"])","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":".manga-card-container","url":"a|attr:href","name":"h4|text"}}},{"id":"shadowi","releases":{"title":{"sel":"div:has(> img):has(h3)","url":"a[href*=\"/series/\"]|attr:href","name":"h3|text","chapter":{"sel":"div","url":"a[href*=\"/read/\"]|attr:href","label":"h4|text"}}},"title":{"name":"h1|text","img":"a[href*=\"/thumbnails\"] img|attr-contain:src","tags":"h1 ~ div [data-slot=\"badge\"]|text","hasMore":"button:not([disabled]) .lucide-chevron-right","firstBtn":"button:has(.lucide-play)","chapter":{"sel":".chapters-card a","url":"|attr:href","label":"h4|text","at":"h4 ~ div span:nth-child(5)|text"},"trackers":true},"reader":{"title":{"sel":"header a[href*=\"/series/\"]","url":"|attr:href","name":"|text"},"label":"button[role=\"combobox\"] span|text","content":".chapter-reader-continuous-wrap","imgs":".chapter-reader-image-cell|attr-contain:src","prev":"a:has(+ button[role=\"combobox\"])|attr:href","next":"button[role=\"combobox\"] + a|attr:href","chapter":{"trigger":"button[role=\"combobox\"]","sel":"[role=\"option\"]","label":"[id] span|text"}},"search":{"lazy":true,"empty":"ul[role=\"list\"]:empty","title":{"sel":"main ul li:has(h2)","url":"a|attr:href","name":"h2|text"}}},{"id":"nika","title":{"name":"h1|text","tags":"a[href*=\"tag=\"]|text","type":"div:has(+ .lucide-book-marked) span:last-child|text","first":"a:has(.lucide-book-open)|attr:href","hasMore":"button[disabled] + button + button + button:last-child:not([disabled])","chapter":{"sel":"a[href*=\"/read/\"]:has(.lucide-eye)","url":"|attr:href","label":"h3|text","at":"div:last-child span:nth-child(3)|text"}},"reader":{"content":"div:has(> [data-page-index])","label":".lucide-book-open ~ span|text","title":{"sel":"a[href*=\"/series/\"]","url":"|attr:href","name":"|text"},"prev":{"sel":"a:has(.lucide-skip-back)","url":"|attr:href","label":"|text"},"next":{"sel":"a:has(.lucide-skip-forward)","url":"|attr:href","label":"|text"},"chapter":{"trigger":"button:has(.lucide-list)","sel":".fixed a[href*=\"/read/\"]:has(.lucide-calendar)","url":"|attr:href","label":"span|text","at":".lucide-calendar + span|text"}}},{"id":"manga18","releases":{"title":{"sel":".recoment_box .story_item","url":"a|attr:href","name":".mg_name a|text","chapter":{"sel":".mg_chapter .item","url":"a|attr:href","label":".chapter_count a|text","at":".chapter_time span|text"}}},"title":{"name":"h1|text","img":".detail_avatar img|attr-contain:src","tags":".detail_infomation a[href*=\"/manga-list/\"]|text","chapter":{"sel":".chapter_box .item","url":"a.chapter_num|attr:href","label":"a.chapter_num|text","at":".chapter_info|text"}},"reader":{"title":{"sel":".breadcrumb li:nth-child(2) a","url":"|attr:href","name":"|text"},"label":".chapter_name span|text","content":"#chapter_boxImages","chapter":{"sel":"select#slcChapter option","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":".story_item","name":"mg_name a|text","url":"a|attr:href","chapter":{"sel":".mg_chapter .item","url":"a|attr:href","label":".chapter_count a|text","at":".chapter_time span|text"}}}},{"id":"mangolibreria","title":{"name":"h1|text","tags":"a[href*=\"genres=\"]|text","chapter":{"allBtn":"div:has(> a[href*=\"/chapters/\"]) + div button:has(.lucide-arrow-down)","sel":"a[href*=\"/chapters/\"]","url":"|attr:href","label":"span|text","at":"svg + span|text"}},"reader":{"title":{"sel":"a:has(h1)","url":"|attr:href","name":"|text"},"label":"a:has(h1) ~ div span|text","content":"main","prev":{"sel":"a:has(.lucide-arrow-left)"},"next":{"sel":"a:has(.lucide-arrow-right)"}},"search":{"title":{"sel":"div:has(> a[href*=\"/comics/\"] img)","name":"h3|text","img":"img|[attr:data-src,attr-contain:src]","url":"a|attr:href","chapter":{"sel":"a[href*=\"/chapters/\"]","url":"|attr:href","label":"span|text","at":".lucide-clock + span|text"}}}},{"id":"mangalivre","title":{"name":".manga-title|text","img":".manga-cover img|attr-contain:src","tags":".manga-tag|text","chapter":{"sel":".chapter-item","url":"a|attr:href","label":".chapter-number|text","at":".chapter-date|text"}},"reader":{"title":{"sel":".manga-title a","url":"|attr:href","name":"|text"},"label":".manga-title|text","content":".chapter-images","imgs":"img.chapter-image|attr-contain:src","chapter":{"sel":".chapter-dropdown-content > a","url":"|attr:href","label":"|text"}},"search":{"title":{"sel":".manga-card-image","url":"a|attr:href","name":"h3|text"}}},{"id":"leituramanga","title":{"name":"h1|text","tags":"h1 ~ div a[href*=\"/genre/\"] span|text","first":"a[href*=\"/chapter/\"]|attr:href","hasMore":".absolute button","chapter":{"sel":"div:has(> div > a):has(.lucide-calendar)","url":"a|attr:href","label":"a span|text","at":"span:has(.lucide-calendar)|text"}},"reader":{"title":{"sel":"#breadcrumb a[href*=\"/manga/\"]","url":"|attr:href","name":"|text"},"label":"#breadcrumb li:last-child span|text","content":"#chapter-image-list","prev":"a:has(.lucide-chevron-left)|attr:href","next":"a:has(.lucide-chevron-right)|attr:href","chapter":{"json":"https://api.leituramanga.net/api/chapter/get-by-manga-id","sel":"data.data","label":"chapterNumber","url":"chapterNumber","at":"releaseDate"}},"search":{"lazy":true,"empty":"#search-content-id > div:empty","title":{"sel":"#search-content-id div:has(> a img)","url":"a|attr:href","name":"a|attr:title"}}},{"id":"mgread","title":{"name":"h1|text","id":"#follow-btn|attr:data-id","img":".story-cover img|attr-contain:src","tags":"#genre-tags a|text","hasMore":"a[href*=\"/page/2/\"]","first":"#view-comic a.uk-button|attr:href","chapter":{"sel":".chapter-item a, .chapter-list a","url":"|attr:href","label":"h3|text || div div|text","at":"time|attr:datetime || div div:last-child|text"}},"reader":{"title":{"id":"#chapter-toggle|attr:data-id","url":"a#breadcrumb-manga|attr:href","name":"a#breadcrumb-manga|text"},"label":"[aria-current=\"page\"]|text","content":"#chapter-content","imgs":"#chapter-content img|[attr:data-original-src,attr-contain:src]","prev":"a#prev-link|attr:href","next":"a#next-link|attr:href"},"chapters":{"chapter":{"json":true,"sel":"items","url":"slug","label":"number","at":"created_at"},"paging":{"lastPage":"total_pages","pageKey":"paged || page","limitKey":"per_page","limitValue":50}},"search":{"title":{"sel":"article","url":"a|attr:href","name":"img|attr:alt"}}},{"id":"manhwaweb","title":{"lazy":true,"sel":"div:has(> a[href*=\"/leer/\"])","name":"h2|text","tags":"a[href*=\"genders=\"]|text","first":"a[href*=\"/leer/\"]|attr:href","chapter":{"lazy":false,"allBtn":"button.ver_todo:not(.hidden)","sel":"div:has(a):has(~ button.ver_todo.hidden)","url":"a|attr:href","label":"div|text","at":"img + span|text"}},"reader":{"lazy":true,"sel":"a[href*=\"/manhwa/\"]","title":{"name":"header ~ div div.text-center:has(+ div > span)|text","url":"a[href*=\"/manhwa/\"]|attr:href"},"label":"header ~ div div.text-center + div > span|text","content":"body","prev":{"sel":"a[href*=\"/leer/\"]:has(+ a[href*=\"/manhwa/\"])"},"next":{"sel":"a[href*=\"/manhwa/\"] + a[href*=\"/leer/\"]"}},"search":{"lazy":true,"loading":"img[alt=\"Random Image\"]","title":{"sel":"a[href*=\"/manhwa/\"]","url":"|attr:href","name":"p|text"}}},{"id":"htairead","title":{"sel":"#mangaSummary","name":"h1|text","first":"#mangaRating ~ a|attr:href"},"reader":{"title":{"sel":"h1 a","url":"|attr:href","name":"|text"},"label":"h1","content":"#readingImages","imgDivs":".reading-page","lstrip":"#all-pages-mode:checked","lstripBtn":"[for=\"all-pages-mode\"]"}},{"id":"manhwa18","title":{"name":"h1|text","tags":".m18-chip|text","first":"a:has(.lucide-play)|attr:href","chapter":{"allBtn":"button:has(.lucide-chevron-down)","sel":"a.m18-ch-row","label":".m18-ch-num|text","at":".m18-ch-date|text"}},"reader":{"title":{"url":"a[href*=\"/manga/\"]","name":"h1 + div b, .m18-rbar-title .m18-t|text"},"content":"main","prev":"a[title=\"Previous chapter\"]|attr:href","next":"a[title=\"Next chapter\"]|attr:href","chapter":{"trigger":"button:has(.lucide-list)","sel":".m18-drawer-list a"}},"search":{"title":{"sel":"div:has(> div > a[href*=\"/manga/\"]):has(button)","name":"h3|text","img":"a div|bg-image"}}},{"id":"htai18","title":{"sel":".title_content","name":"h1|text","tags":".item-tag|text","chapter":{"sel":"#chapter-list li","url":"a|attr:href","label":"a|text","at":".time|text"}},"reader":{"sel":".chapter-content","title":{"sel":".all-chapter a","url":"|attr:href","name":"|text"},"label":"h1|text","content":".chapter-content","imgs":".item-photo img|attr-contain:src","chapter":{"sel":"#chap-list a","url":"|attr:href","label":"|text"}},"search":{"title":{"sel":".list_wrap li","url":"a|attr:href","name":"h3 a|text"}}},{"id":"mangadot","title":{"name":"h1|text","tags":"a[href*=\"search=\"]|text","chapter":{"json":"/api/manga/{titleSlug}/chapters/list","sel":"","url":"id","label":"chapter_number","vol":"volume_number","group":"group_name","lang":"language","at":"date_added"}},"reader":{"lazy":true,"sel":".reader-image","title":{"name":"title|text|remove:\\s—\\sChapter.+","url":"a[href*=\"/manga/\"]|attr:href"},"label":"a[href*=\"/manga/\"]|text","lstrip":"//button[contains(@class, \"bg-[var(--primary)]\") and text()=\"Long Strip\"]","lstripBtn":"//button[text()=\"Long Strip\"]","imgDivs":"[data-page]","content":"main","chapter":{"json":"/api/manga/{titleSlug}/chapters/list","sel":"","url":"id","label":"chapter_number","vol":"volume_number","group":"group_name","lang":"language","at":"date_added"}},"search":{"title":{"sel":"a[href*=\"/manga/\"]","url":"|attr:href","name":"div ~ div:last-child|text","chapter":{"sel":"div > span:last-child","label":"|text"}}}},{"id":"onisaga","title":{"name":"h1|text","tags":"a[href*=\"/genre/\"]|text","first":"a[href*=\"/read/\"]|attr:href","hasMore":"button[wire\\:target=\"loadMoreChapters\"]","chapter":{"sel":"a[wire\\:key][href*=\"/read/\"]","url":"|attr:href","label":"[data-flux-heading]|text || |text","vol":"[data-flux-heading] + p span|text","at":"[data-flux-heading] + p|text"},"trackers":true},"reader":{"title":{"url":"a[href*=\"/manga/\"]|attr:href","name":"h3|text","img":"picture img|attr-contain:src"},"label":"h3 ~ p|text || ui-dropdown [data-flux-badge]|text","lstrip":"ui-radio[value=\"long-strip\"][data-checked]","lstripBtn":"ui-radio[value=\"long-strip\"]","content":"div:has(> [x-ref=\"longStripContainer\"])","imgDivs":"div[data-page-index]","chapter":{"sel":"ui-menu a","url":"|attr:href","label":"|text"}},"search":{"title":{"sel":"[wire\\:loading\\.class=\"hidden\"] > div","url":"a|attr:href","name":"h3|text"}}},{"id":"diva","title":{"name":"h1|text","tags":"a[href*=\"genre=\"]|text","chapter":{"sel":"div[data-state=\"active\"] a[href*=\"/chapter/\"]","url":"|attr:href","label":"span|text","at":"span:has(.lucide-clock) span|text"}},"reader":{"lazy":true,"sel":"[data-page] [data-page]","title":{"url":"a:has(button)|attr:href","name":"h1|text"},"label":"h1 + p|text","content":".protected-content,#main-content","imgDivs":"[data-page] [data-page]","prev":{"sel":"main + div button:has(.lucide-chevron-left)","label":"p:not(:first-child)|text"},"next":{"sel":"main + div button:has(.lucide-chevron-right)","label":"p:not(:first-child)|text"},"chapter":{"trigger":"main button:has(.lucide-menu)","sel":"[role=\"dialog\"] a","url":"|attr:href","label":"p|text || img|attr:alt"}}},{"id":"theblank","title":{"lazy":true,"sel":"h1[title]","name":"h1|text","img":"main img[alt]:has(+ div h1)|attr-contain:src","tags":"a[href*=\"include_types\"], a[href*=\"include_genres=\"]|text","chapter":{"json":"#app|attr:data-page","sel":"props.serie.chapters","label":"chapterNumber","url":"slug","at":"createdAt"}},"reader":{"title":{"sel":"[data-slot=\"breadcrumb-link\"][href*=\"/serie/\"]","url":"|attr:href","name":"|text"},"label":"[data-slot=\"breadcrumb-page\"]|text","prev":"a:has(.lucide-chevron-left), a[data-slot=\"button\"]:first-child|attr:href","next":"a:has(.lucide-chevron-right), a[data-slot=\"button\"]:last-child|attr:href","content":"main section","chapter":{"json":"#app|attr:data-page","sel":"props.data.chapters","label":"chapter_number","url":"slug"}}},{"id":"hitomi","title":{"sel":".thumbnail-list .thumbnail-container","name":"h1#gallery-brand a|text","img":".cover img|attr-contain:src","first":"a#read-online-button|attr:href"},"reader":{"title":{"url":"a.brand|attr:href","name":"title|text|remove:|\\sHitomi.la$"},"content":"#comicImages:not(.hidden), #mobileImages:not(.hidden)","lstrip":"li:not([style*=\"display: none\"]) #fullSpread, li:not(.hidden) > #mobile-fullSpread","lstripBtn":"#singlePage, #mobile-singlePage","paging":{"total":"#single-page-select option:last-child, #mobile-single-page-select option:last-child|attr:value","current":"#single-page-select option:checked, #mobile-single-page-select option:checked|attr:value","pageBtn":"#single-page-select option[value=\"{page}\"], #mobile-single-page-select option[value=\"{page}\"]"}}},{"id":"wetriedtls","title":{"name":"h1|text","img":"main section img|attr-contain:src","hasMore":"[aria-label=\"Go to next page\"]","chapter":{"sel":"h3 ~ div a","url":"|attr:href","label":"span|text","at":"span + span:last-child|text"}},"reader":{"title":{"url":"a:has(.fa-house)[href*=\"/series/\"]|attr:href","name":"h2|text"},"label":"h1|text","content":"#reader-container","prev":"a:has(.fa-chevron-left)|attr:href","next":"a:has(.fa-chevron-right)|attr:href","chapter":{"trigger":"button:has(.fa-list)","sel":"[data-headlessui-portal] ul a","url":"|attr:href","label":"span:first-child|text","at":"span:last-child|text"}}},{"id":"wuxiaworld","title":{"name":"h1|text","img":"div[style*=\"background-image\"]|bg-image","tags":"a[href*=\"genre=\"]|text","first":"a[href*=\"/novel/\"]|attr:href"},"reader":{"title":{"sel":"a[href*=\"/novel/\"]:has(p)","url":"|attr:href","name":"p|text"},"label":"h4|text","content":".chapter-content","chapter":{"sel":"a:has([id^=\"chapter-nav-item\"])","url":"|attr:href","label":"span|text","at":"div:has(span) + div span|text"}}},{"id":"royalroad","title":{"name":"h1|text","chapter":{"json":"window.chapters","sel":"","url":"url","label":"title","at":"date"}},"reader":{"title":{"sel":"a:has(h2)","url":"a|attr:href","name":"h2|text"},"label":"h1|text","content":".chapter-content","prev":".nav-buttons a:has(.fa-chevron-double-left)|attr:href","next":".nav-buttons a:has(.fa-chevron-double-right)|attr:href"}},{"id":"scribblehub","title":{"name":".fic_title|text","tags":"a.fic_genre|text","hasMore":"a[href*=\"?toc=2\"]","first":"a:has(.btn_read)|attr:href","chapter":{"sel":".toc_ol .toc_w","url":"a|attr:href","label":"a|text","at":".fic_date_pub|attr:title"}},"reader":{"title":{"sel":".wi_breadcrumb.chapter a:nth-of-type(2), .chp_byauthor a[href*=\"/series/\"]","url":"|attr:href","name":"|text"},"label":".chapter-title, .wi_breadcrumb.chapter > span:last-child|text","content":"#chp_raw","prev":".prenext a:first-child|attr:href","next":".prenext a:last-child|attr:href","chapter":{"trigger":"[title=\"Table of Contents\"],[onclick=\"chp_pop_sidemnu();\"]","sel":"#ol_toc a,.toc_scroll a","url":"|attr:href","label":"|text"}}},{"id":"novelfire","title":{"name":"h1|text","id":"[report-post_id]|attr:report-post_id","tags":".categories a|text","first":".links a|attr:href"},"reader":{"title":{"id":"[report-post_id]|attr:report-post_id","url":"h1 a|attr:href","name":"h1 a|text"},"label":".chapter-title|text","content":"#content","para":"#content","prev":"a.prevchap:not(.isDisabled)|attr:href","next":"a.nextchap:not(.isDisabled)|attr:href"},"chapters":{"chapter":{"json":true,"sel":"data","url":"slug|pattern:(^[a-z]+-\\d+)-.+","label":"title"}}},{"id":"lightnovelworld","title":{"name":"h1|text","tags":".genre-tag|text","first":"a.btn-read-now|attr:href"},"reader":{"title":{"sel":"a.novel-title","url":"|attr:href","name":"|text"},"label":"h1|text","content":"#chapterText","prev":"a.prev-btn|attr:href","next":"a.next-btn|attr:href"},"chapters":{"chapter":{"json":true,"sel":"chapters","url":"number","label":"number"},"paging":{"total":"total_chapters","skipKey":"offset","limitKey":"limit","limitValue":500}}},{"id":"wattpad","title":{"name":"h1|text","firstBtn":"[aria-label=\"Start reading\"]","tags":"[data-testid=\"tags\"] a span|text"},"reader":{"sel":".part-content","title":{"url":".toc-header h6 a|attr:href","name":".toc-header h6 a|text","img":"img.cover|attr-contain:src"},"label":"h1|text","content":".part-content","chapter":{"sel":".table-of-contents a","url":"|attr:href","label":".part-title|text"}}},{"id":"novelbin","title":{"name":"h3.title|text","tags":".info a[href*=\"/genre/\"]|text","first":"a.btn-read-now|attr:href"},"reader":{"title":"a.novel-title","label":".chr-text|text","content":"#chr-content","prev":"a[data-chapter-nav=\"prev\"]|attr:href","next":"a[data-chapter-nav=\"next\"]|attr:href","chapter":{"trigger":".chr-jump","sel":".chr-jump option","label":"|text","url":"|[attr:chapter-id,attr:value]"}},"search":{"title":{"sel":".list-novel .row:has(img)","name":"h3 a|text","url":"a|attr:href","chapter":{"sel":".text-info a","url":"|attr:href","label":".chr-text|text || |text"}}}},{"id":"freewebnovel","title":{"name":"h1|text","tags":".m-info a[href*=\"/genre/\"]|text","first":".btn a:last-child|attr:href","hasMore":"#nextBtn:not(.none)","chapter":{"sel":".row-box:has(#nextBtn.none) .m-newest2 ul li a, .row-box:has(#nextBtn:not(.none)) .m-newest1 ul li a","url":"|attr:href","label":"|text"}},"reader":{"title":"h1 a","label":"h1 + span|text","content":"#article","prev":"a:has(.glyphicon-chevron-left)|attr:href","next":"a:has(.glyphicon-chevron-right)|attr:href","chapter":{"trigger":"a:has(+ .catalog)","sel":".catalog select option","url":"|attr:value","label":"|text"}}},{"id":"novelbuddy","title":{"sel":"main:has(button[title=\"Bookmark\"]):has(a button)","name":"h1|text","tags":"h1 ~ div a[href*=\"/genres/\"]|text","chapter":{"sel":"main ul li a","url":"|attr:href","label":"span:nth-child(2) span|text","at":"span:nth-child(3) span|text"}},"reader":{"title":"button[aria-label=\"Back\"] ~ div a","label":"h2 + p|text","content":".novel-tts-content","chapter":{"sel":"aside ul li a[title]:has(svg)","url":"|attr:href","label":"|text"}},"search":{"lazy":true,"empty":"section span + p + p","title":{"sel":"article","url":"a|attr:href","name":"img|attr:alt","chapter":{"sel":"div div a","url":"|attr:href","label":"span|text || |text"}}}},{"id":"novelsonline","title":{"sel":".chapter-chs","name":"h1|text","tags":".novel-detail-body a[href*=\"/category/\"]|text","chapter":{"sel":".chapter-chs a","url":"|attr:href","label":"|text"}},"reader":{"title":"h1 a","label":"h1|text","content":"#contentall","chapter":{"sel":"div:has(~ div #contentall) .chapter-actions option","url":"|attr:value","label":"|text"}}},{"id":"wuxiabox","title":{"sel":"#chapters","name":"h1|text","tags":".property-item|text","first":"a#readchapterbtn|attr:href","hasMore":".filters","chapter":{"sel":".intro a","url":"|attr:href","label":"|text"}},"reader":{"sel":".chapter-content","title":"h1 a","label":"h2|text","content":".chapter-content","prev":"a.prev:not(.isDisabled)|attr:href","next":"a.next:not(.isDisabled)|attr:href"}},{"id":"novelcool","title":{"name":"h1|text","img":"img.bookinfo-pic-img|attr:src","tags":".for-pc .bookinfo-category-list a|text","chapter":{"sel":".chp-item a","url":"|attr:href","label":".chapter-item-headtitle|text","at":".chapter-item-time|text"}},"reader":{"title":".r-n-title a","label":".r-n-bk-chp|text","content":".chapter-reading-section","chapter":{"sel":".chp-catalogue-m-list a","url":"|attr:href","label":"span|text"}},"search":{"title":{"sel":".book-item","name":".book-name|text"}}},{"id":"mvlempyr","title":{"tags":".righttinfo .genre-tags|text","chapter":{"sel":"a.chapter-item","url":"|attr:href","label":"h3|text","at":".chapter-date|text"}},"reader":{"title":{"url":"a#novel-link|attr:href","name":"#novel-name span|text"},"label":"#chapter-name span|text","content":"#chapter","prev":"a#prev-top|attr:href","next":"a#next-top|attr:href","chapter":{"trigger":"[title=\"Chapter Index\"]","sel":"a.chapter-item","url":"|attr:href","label":"h1|text","at":".chapter-date|text"}}},{"id":"fcknovelpia","title":{"img":".cover|bg-image","tags":".genres a|text","chapter":{"sel":"[data-ch] a","url":"a|attr:href","label":".chapter-item-main|text"}},"reader":{"sel":".reader","title":{"url":"a.back-link|attr:href","name":".chapter-kicker|text"},"label":".breadcrumb-item.active,h1|text","content":".reader","para":".reader","prev":"a#chapter-prev-link|attr:href","next":"a#chapter-next-link|attr:href"}},{"id":"novelhall","title":{"sel":"#morelist","tags":".book-info a[href*=\"/genre/\"]|text","chapter":{"sel":"#morelist a","url":"|attr:href","label":"|text"}},"reader":{"title":"a#bookname,.breadcrumb .active a","label":"h1|text","content":".entry-content","para":".entry-content","prev":{"sel":"a[rel=\"prev\"]","url":"|attr:href","label":"|attr:title"},"next":{"sel":"a[rel=\"next\"]","url":"|attr:href","label":"|attr:title"}},"search":{"title":{"sel":"#main tr:has(td)","name":"a|text","chapter":{"sel":"a.chapter","url":"|attr:href","label":"|text"}}}},{"id":"novelarchive","title":{"lazy":true,"sel":"#novel-title","name":"#novel-title|text","img":"img#novel-cover|attr:src","tags":"#novel-genres span|text","chapter":{"sel":"#novel-chapter-list a span","url":"|text"}},"reader":{"lazy":true,"sel":"#reader-chapter-meta span + span","title":{"name":"#reader-novel-title|text"},"label":"#reader-chapter-select option:checked|attr:value","content":"#reader-article","chapter":{"sel":"#reader-chapter-select option","url":"|attr:value","label":"|attr:value"}}},{"id":"wuxiaclick","title":{"name":"h5|text","tags":"a[href*=\"/category/\"] span|text","chapter":{"json":"https://wuxiaworld.eu/api/chapters/{titleSlug}","sel":"","url":"novSlugChapSlug","label":"title","at":"timeAdded"}},"reader":{"sel":"#chapterText","title":"a[href*=\"/novel/\"]","label":"h1|text","content":"div:has(> div > #chapterText),body","para":"[data-tts-paragraph]","prev":"div:has(+ div > button) > a|attr:href","next":"div:has(> button) + div > a|attr:href","chapter":{"trigger":"div:has(+ div > a) > button","dismiss":".mantine-Modal-close","json":"https://wuxiaworld.eu/api/chapters/{titleSlug}","sel":"","url":"novSlugChapSlug","label":"title","at":"timeAdded"}}},{"id":"novelfull","title":{"sel":".list-chapter","name":"h3.title|text","tags":".info a[href*=\"/genre/\"]|text","first":".list-chapter a|attr:href"},"reader":{"sel":"#chapter-content","title":"a.truyen-title","label":".chapter-title|text","content":"#chapter-content","prev":"a#prev_chap|attr:href","next":"a#next_chap|attr:href","chapter":{"trigger":".chapter_jump","sel":"select.chapter_jump option"}},"search":{"title":{"sel":".list-novel .row:has(img)","name":"h3 a|text","chapter":{"sel":".text-info a","label":".chapter-text|text"}}}},{"id":"woopread","title":{"tags":"a[href*=\"genres=\"]|text","first":"a[aria-label=\"Read Now\"]|attr:href","chapter":{"allBtn":"button[aria-controls=\"chapter-list-container\"][aria-expanded=\"false\"]","sel":".chapter-item-wrapper a","label":"h3|text","at":"span|text"}},"reader":{"title":"h1 a","label":"h2|text","content":"div[id^=\"chapter\"]","prev":"a:has(button .lucide-chevron-left)|attr:href","next":"a:has(button .lucide-chevron-right)|attr:href","chapter":{"trigger":"button:has(.lucide-menu)","json":"/api/novels/{titleId}/chapters","sel":"","url":"slug","label":"title","at":"createdAt"}},"search":{"title":"main a"}},{"id":"asianovel","title":{"img":".story__thumbnail img|attr-contain:src","tags":"#edit-genre a|text","chapter":{"sel":".chapter-group li","url":"a|attr:href","label":"a|text","at":"time .list-view|text"}},"reader":{"title":"a.chapter__story-link","content":"#chapter-content","chapter":{"sel":"#chapter-index-list a","label":"span|text"}},"search":{"title":{"sel":".card__body","name":"h3 a|text","chapter":".card__link-list-item a"}}},{"id":"katreadingcafe","title":{"tags":".sertogenre a|text","chapter":{"sel":".eplister li","url":"a|attr:href","label":".epl-num|text","at":".epl-date|text"}},"reader":{"sel":".epwrapper","title":".ts-breadcrumb a[href*=\"series\"]","content":".entry-content","prev":"a[aria-label=\"prev\"]|attr:href","next":"a[aria-label=\"next\"]|attr:href"},"search":{"title":".listupd article"}},{"id":"chrysan","title":{"img":"img.materialboxed|attr-contain:src","tags":".series-tag|text|remove:\\(.+","chapter":".chapter-item a"},"reader":{"title":"a.novel-title","label":".chapter-title|text","content":"#novel-content","chapter":".toc:has(~ .entry-content) option:not([disabled])"}},{"id":"readnovelmtl","title":{"tags":".card-body a[href*=\"/category/\"]|text","chapter":{"sel":"#chapter-chunk td:has(> a)","url":"a|attr:href","label":"a|text","at":".small|text"}},"reader":{"title":"a#novel-title","content":"#content","prev":"#prev a|attr:href","next":"#next a|attr:href","chapter":{"trigger":"[aria-controls=\"chapter-list-sidebar\"]","sel":"#sidebarChapterList a","label":"|text"}},"search":{"title":".card-body .row:has(a)"}},{"id":"novelhi","title":{"sel":".bookChapter #recentChapter","name":"h1,#bookNamedHidden|text","img":".cover,.decorate-img|attr-contain:src","tags":".genre-tag a,.m-genre-tag a|text","first":"#startReading|attr:href"},"reader":{"sel":"#showReading","title":".bookNav span:nth-child(3) a, a.mobile-breadcrumb__item:nth-of-type(3)","label":"h1, .chapter-jump-mobile__toggle|text","content":"#showReading","para":"sent","obfFont":"style#chapter-font-obfuscation-style","prev":"a.prev,.reading-nav a:first-child|attr:href","next":"a.next,.reading-nav a:last-child|attr:href"},"chapters":{"chapter":{"sel":".dirList li a, .mobile-chapter-item","label":"span|text"}},"search":{"lazy":true,"empty":".novel-empty-state","title":{"sel":"#bookList > div","name":".list-title,.novel-book-title|text"}}},{"id":"requiemtls","title":{"tags":".genxed a|text","chapter":{"sel":".eplister a","label":".epl-num|text","at":".epl-date|text"}},"reader":{"sel":".epcontent.entry-content","title":"[itemprop=\"itemListElement\"]:nth-child(2) a","content":".entry-content","obfFont":"style#wp-custom-css","prev":"a[aria-label=\"prev\"]|attr:href","next":"a[aria-label=\"next\"]|attr:href"},"search":{"title":".listupd article"}},{"id":"lncrawler","title":{"name":"h1|text","tags":"a[href*=\"tag=\"]|text","first":"a[href*=\"/chapter/\"]|attr:href"},"reader":{"title":".MuiBreadcrumbs-li a[href*=\"/novels/\"]","label":"h1|text","content":"#reader-content","prev":"a:has(+ h6)|attr:href","next":"h6 + a|attr:href"},"chapters":{"chapter":{"json":"https://api.lncrawler.monster/novels/{titleSlug}/{group}/chapters","sel":"chapters","url":"chapter_id","label":"title","vol":"volume"},"paging":{"total":"count","pageKey":"page","limitKey":"page_size","limitValue":10000}},"search":{"title":{"sel":"h6 ~ div a[href*=\"/novels/\"]","name":"img|attr:alt"}}}]
|
package/stripper.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(g,d){typeof exports=="object"&&typeof module<"u"?d(exports):typeof define=="function"&&define.amd?define(["exports"],d):(g=typeof globalThis<"u"?globalThis:g||self,d(g.$mpStripper={}))})(this,(function(g){"use strict";function d(t,e){if(typeof t.checkVisibility=="function")return t.checkVisibility({opacityProperty:!0,visibilityProperty:!1,contentVisibilityAuto:!1});const n=window.getComputedStyle(t);if(n.display==="none"||n.opacity&&parseFloat(n.opacity)<.1)return!1;if(!e)return!0;const r=t.parentElement;return!r||r===e?!0:d(r,e)}function J({sel:t,heading:e,paraSel:n,useObfFont:r}){const o=["H1","H2","H3","H4","H5","H6","P","BLOCKQUOTE","PRE","CODE"],i=["BR","HR"],a=["BUTTON","FIGURE","IMG","SCRIPT","SELECT","INPUT","FORM","IFRAME","NAV","FOOTER","ASIDE","TABLE"],c=Z(t),w=tt(c),T=r?et(c):void 0,z=Ot(c);if(!z)return;return{el:z,isRTL:w,fontFamily:T};function Ot(m){let l=0,f=!1,s=0,p=0,R=!1;const E=X(m,o.includes(m.tagName)||!!n&&m.matches(n))?.node;if(!E)return;if(e){const u=document.createElement("h1");u.innerText=e,E.prepend(u)}return Ut(E),kt(E),E;function X(u,A=!1){if(R)return;if(u.nodeType===Node.TEXT_NODE)return A&&u.textContent?.trim()?{node:u.cloneNode()}:void 0;if(u.nodeType!==Node.ELEMENT_NODE)return;const y=u.tagName;if(a.includes(y)||y==="A"&&(f||!A))return;if(i.includes(y))return A?{node:document.createElement(y),isEmpty:!0}:{aborted:!0};if(u.getAttribute("aria-hidden")==="true"||!d(u)||window.getComputedStyle(u).position==="fixed")return;const Y=!!n&&u.matches(n),Q=Y||o.includes(y),Ft=A||Q,L=[];if(Array.from(u.childNodes).forEach(I=>{if(R)return;const P=X(I,Ft);if(P?.aborted)return;const K=P?.node;if(K){if(p=P?.isEmpty?p+1:0,p>2)return;L.push(K),f?s=0:++l>30&&(f=!0)}else f&&++s>30&&(R=!0)}),!L.length)return Q?{node:document.createElement("br"),isEmpty:!0}:void 0;const M=document.createElement(Y?"p":y==="BODY"?"div":y==="a"?"span":y),N=u.getAttribute("dir");return N&&N!=="auto"&&M.setAttribute("dir",N),L.forEach(I=>M.appendChild(I)),{node:M}}}function kt(m){q(m,l=>{if(l===m)return;const f=l.tagName;if(i.includes(f)||o.includes(f))return;const s=l.parentElement;if(s?.childNodes.length===1){Array.from(l.childNodes).forEach(p=>{s.appendChild(p)}),s.removeChild(l);return}l.childNodes.length===1&&l.replaceWith(l.childNodes[0])})}function Ut(m){let l=!1;const f=[];S(m,s=>o.includes(s.tagName)?[]:Array.from(s.children),s=>{const p=s.textContent.trim();if(!p)return!0;if(l)return!1;if(l=!D(s),f.includes(p))return!0;if(l)return!1;f.push(p)}),S(m,s=>o.includes(s.tagName)?[]:Array.from(s.children).reverse(),s=>!s.textContent.trim()||D(s))}}function D(t){const e=t.nodeName;return e.length===2&&e.startsWith("H")}function Z(t){const e=(t??"main,article").split(",").filter(Boolean);for(const r of e){const o=document.querySelector(r);if(o)return o}const n=document.querySelector("p:has(+ p), h1, h2");if(n){let r=n;for(;r!==document.body;)r=r.parentElement;return r}return document.body}function tt(t,e){if(t.getAttribute("dir")==="rtl")return!0;const n=t.querySelector("p")||t.querySelector("div:not(:empty)")||t;return n.getAttribute("dir")==="rtl"?!0:window.getComputedStyle(n).direction==="rtl"}function et(t,e){const n=t.querySelector("p")||t.querySelector("div:not(:empty)")||t;return window.getComputedStyle(n).fontFamily}function q(t,e){Array.from(t.children).forEach(n=>{q(n,e)}),e(t)}function S(t,e,n){const r=e(t);let o=!1;for(let i=0;i<r.length;i++){const a=r[i],c=S(a,e,n);if(c!==void 0){if(!c)return!1;nt(a)}else o=!0}if(!o)return n(t)}function nt(t){t.parentNode?.removeChild(t)}function O(){const t=document.createElement("template");t.innerHTML="<iframe></iframe>";const e=t.content.querySelector("iframe");if(e){e?.style.setProperty("style","none"),document.body.appendChild(e);const n=e?.contentWindow?.HTMLCanvasElement?.prototype?.toDataURL;if(document.body.removeChild(e),n)return n}return HTMLCanvasElement.prototype.toDataURL}var rt=(t=>(t[t.reading=1]="reading",t[t.paused=2]="paused",t[t.plan=3]="plan",t[t.completed=4]="completed",t[t.dropped=5]="dropped",t[t.deleted=6]="deleted",t))(rt||{}),ot=(t=>(t[t.ok=1]="ok",t[t.hidden=2]="hidden",t[t.deleted=3]="deleted",t))(ot||{}),it=(t=>(t[t.aggregator=0]="aggregator",t[t.scanlator=1]="scanlator",t))(it||{}),at=(t=>(t[t.pending=0]="pending",t[t.completed=1]="completed",t[t.offline=2]="offline",t[t.incompat=3]="incompat",t))(at||{}),ct=(t=>(t.id="id",t.name="name",t.slug="slug",t))(ct||{}),st=(t=>(t.blank="about:blank",t.title="meta.title",t.reader="meta.reader",t))(st||{}),k=(t=>(t[t.manga=1]="manga",t[t.novel=2]="novel",t[t.anime=3]="anime",t))(k||{});function U(t,e){let n=[e??document.documentElement];const r=t.split("->");for(let o=0;o<r.length;o++){const i=r[o];n=n.map(a=>Array.from((a.shadowRoot??a).querySelectorAll(i))).flat()}return n}function C(t=0){return new Promise(e=>setTimeout(e,t))}async function v(t,e,n){const r=await n(()=>{t=0});if(r!==void 0)return r;if(!(t<=0))return await new Promise(o=>{setTimeout(async()=>{const i=await v(t-1,e,n);o(i)},e)})}async function lt(t,e,n=0){const r=e.root??document.documentElement,o=e.timeoutMs;return v(o/50,50,()=>{const i=e.all===!0?Array.from(r.querySelectorAll(t)):r.querySelector(t)??void 0;return(e.all?!i?.length:!i)?void 0:i})}function ut(t,e){return t>=280&&e>=50||t>=160&&e>=280}function h(t){const e=t.getBoundingClientRect();return ut(e.width,e.height)}async function dt(t,e){const n=await ft(t,e);return F(n?.parentElement??t)}async function ft(t,e){if(e?.imgDivs)return await lt(e.imgDivs,{timeoutMs:15e3});const n=Array.from(t.querySelectorAll(e?.imgs?.split("|")[0]??"img:not(nav img, header img, footer img, aside img),canvas"));if(n.length)return n.find(r=>d(r,t)&&(h(r)||r instanceof HTMLImageElement&&(!r.width||!r.height)))}function F(t){return t===document.documentElement||t.scrollHeight-t.clientHeight>=10&&window.getComputedStyle(t).overflow!=="visible"?t:F(t.parentElement)}function mt(t,e){if(t instanceof HTMLOptionElement){const n=t.parentElement instanceof HTMLOptGroupElement?t.parentElement.parentElement:t.parentElement;if(!n||!(n instanceof HTMLSelectElement))return;const r=t.getAttribute("value")||"";if(n.value===r)return;n.value=r,n.dispatchEvent(new Event("change"));return}t instanceof HTMLAnchorElement&&e?.preventDefault!==!1&&t.addEventListener("click",n=>n.preventDefault(),{once:!0}),t.click(),t.dispatchEvent(new PointerEvent("pointerdown",{bubbles:!0,cancelable:!0,pointerType:"mouse",button:0})),t.dispatchEvent(new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:window,button:0}))}function W(t,e){const n=document;if(t.startsWith("//")){const r=document.evaluate(t,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;return r instanceof HTMLElement?r:void 0}return n.querySelector(t)??void 0}async function pt(t){const e=await yt(t),n=t?.content;return n?await v(e?30:10,100,()=>{for(const r of n.split(",")){const o=document.querySelector(r);if(o)return o}})??document.body:document.body}async function yt(t){const{lstrip:e,lstripBtn:n}=t||{};if(!e||!n||W(e))return!1;const r=n.split(";");for(const o of r)if(!await gt(o.trim()))return!1;return!0}async function gt(t){const e=await v(50,30,()=>W(t));return e?(mt(e),await C(),!0):!1}function ht(t){return H(t)}async function H(t,e=0,n=0){const r=await pt(t);wt(r);const o=await dt(r,t);await vt(o,{stepMs:100,durationMs:1e4});const i=t?.imgDivs?Et(r,t.imgDivs):$(r),a=i===void 0;if(a&&n===50){if(!t?.imgDivs&&x(r))return r;throw new Error("EMPTY")}return i!==!1?(await C(500),await H(t,0,a?n+1:0),r):e>=1?r:await H(t,e+1)}function wt(t){const e=Array.from(t.querySelectorAll('img[loading="lazy"]'));for(const n of e)n.setAttribute("loading","eager");B(t,"data-src"),B(t,"data-url")}function B(t,e){const n=Array.from(t.querySelectorAll(`img[${e}]`));for(const r of n){const o=r.getAttribute(e)?.split(" ")[0];o&&r.src!==o&&(r.src=o)}}function Et(t,e){const n=U(e,t);if(n.length)return n.some(r=>x(r)?!1:$(r)!==!1)}function $(t){const e=Array.from(t.querySelectorAll("img"));let n=!1;for(const r of e){if(!d(r,t))continue;const o=h(r);if(n=n||o,!r.complete&&(o||!r.width||!r.height))return!0}return n?!1:void 0}function x(t){return Array.from(t.querySelectorAll("canvas")).some(e=>d(e,t)&&h(e))}async function vt(t,{stepMs:e,durationMs:n}){await bt(t,n,e)}async function bt(t,e,n){t.style.setProperty("scroll-behavior","auto");let r=e;for(;r>0&&t.scrollTop+t.clientHeight+200<t.scrollHeight;){const o=t.scrollHeight-t.scrollTop-t.clientHeight;t.scrollTop+=o/(r/n),r-=n,await C(n)}}async function Tt(t,e){const n=e?.imgDivs;return n?await At(t,n):await St(t,e)}async function At(t,e){const n=U(e,t),r=[];for(const o of n){const i=Array.from(o.querySelectorAll("img:not(nav img, header img, footer img, aside img),canvas"));for(const a of i)d(a,t)&&h(a)&&r.push(a)}return r}function St(t,e){const n=[],r={};return t.querySelectorAll(e?.imgs?.split("|")[0]??"img:not(nav img, header img, footer img, aside img),canvas").forEach(async o=>{if(!(!d(o,t)||!h(o))){if(o instanceof HTMLImageElement){const i=r[o.src];if(i!==void 0&&i!==-1){n.splice(i,1);return}r[o.src]=n.length}n.push(o)}}),n}function _(t,e){const n=document.createElement("canvas"),r=n.getContext("2d"),o=t.naturalWidth,i=t.naturalHeight;n.width=o,n.height=i,r.drawImage(t,0,0,o,i);const a=e??HTMLCanvasElement.prototype.toDataURL,c=a.call(n,"image/webp");return c!=="data:,"?c:a.call(n,"image/jpeg")}async function Ct(t,e){return t instanceof HTMLCanvasElement?e.call(t,"image/jpeg",1):!t.src.startsWith("blob:")||await Ht(t)?t.src:await _(t,e)}function Ht(t){return new Promise(e=>{const n=new Image;n.onload=()=>e(!0),n.onerror=()=>e(!1),n.src=t.src})}function Rt(t,{isWeb:e}){const n=!e&&navigator.userAgent.toLowerCase().includes("android"),r=e?O():void 0;return Promise.all(t.map(async({src:o,el:i})=>{let a,c;const w=o.startsWith("data:");if(n){const T=o.startsWith("blob:");!T&&!w&&(c=await b(o,i)),a=T?await Mt(o):o}else e?w?a=o:(c=await b(o,i,!0),a=_(c,r)):w?(a=await Lt(o),c=await b(a)):(a=o,c=await b(o,i));return{src:a,el:c}}))}function b(t,e,n){if(e&&e instanceof HTMLImageElement&&!n)return Array.from(e.attributes).forEach(o=>{o.name!=="src"&&e.removeAttribute(o.name)}),e;const r=(o=1)=>new Promise((i,a)=>{const c=document.createElement("img");n&&(c.crossOrigin="anonymous"),c.onload=()=>i(c),c.onerror=()=>{o<2?r(o+1).then(i).catch(a):a(new Error("RESOLVE_IMG_ERR"))},c.src=t});return r()}async function Lt(t){const e=await(await fetch(t)).blob();return URL.createObjectURL(e)}async function Mt(t){const e=await fetch(t);return await Nt(await e.blob())}function Nt(t){return new Promise((e,n)=>{const r=new FileReader;r.onloadend=()=>e(r.result),r.onerror=n,r.readAsDataURL(t)})}async function It({spec:t,raw:e}){if(e.contentType===k.novel){const n=j({spec:t,raw:e});qt({title:e.title.name,el:n})}else{const n=await V({spec:t,raw:e});Dt({title:e.title.name,imgs:n})}return{...e,prev:void 0,imgs:void 0,title:{...e.title,chapters:[]}}}async function V({spec:t,raw:e,isWeb:n}){const r=e.imgs?.length?e.imgs.map(o=>({src:o})):await Pt(t.reader);if(!r.length)throw new Error("Empty");return await Rt(r,{isWeb:n})}function j({spec:t,raw:e}){const n=J({sel:t.reader?.content,heading:e.name,paraSel:t.reader?.para});if(!n)throw new Error("Empty");const{el:r,isRTL:o}=n;return o&&r.setAttribute("dir","rtl"),r.setAttribute("id","novel"),r}async function Pt(t){const e=await ht(t),n=await Tt(e,t),r=O();return await Promise.all(n.map(async o=>({src:await Ct(o,r),el:o})))}function Dt({title:t,imgs:e}){G(t);const n=document.createElement("div");n.style.setProperty("display","none");const r=document.createElement("code");r.innerText=e.map(({src:o})=>o).join(" "),n.appendChild(r),document.body.appendChild(n),e.forEach(({el:o})=>o&&document.body.appendChild(o))}function qt({title:t,el:e}){G(t),document.body.appendChild(e)}function G(t){document.open(),document.close(),document.documentElement.style.setProperty("background","black"),document.title=t;const e=document.createElement("meta");e.setAttribute("name","viewport"),e.setAttribute("content","width=device-width, initial-scale=1, user-scalable=0"),document.head.appendChild(e)}g.loadImages=V,g.loadNovelHtml=j,g.strip=It}));
|
|
1
|
+
(function(h,d){typeof exports=="object"&&typeof module<"u"?d(exports):typeof define=="function"&&define.amd?define(["exports"],d):(h=typeof globalThis<"u"?globalThis:h||self,d(h.$mpStripper={}))})(this,(function(h){"use strict";function d(t,e){if(typeof t.checkVisibility=="function")return t.checkVisibility({opacityProperty:!0,visibilityProperty:!1,contentVisibilityAuto:!1});const n=window.getComputedStyle(t);if(n.display==="none"||n.opacity&&parseFloat(n.opacity)<.1)return!1;if(!e)return!0;const r=t.parentElement;return!r||r===e?!0:d(r,e)}function K({sel:t,heading:e,paraSel:n,useObfFont:r}){const o=["H1","H2","H3","H4","H5","H6","P","BLOCKQUOTE","PRE","CODE"],i=["BR","HR"],a=["BUTTON","FIGURE","IMG","SCRIPT","SELECT","INPUT","FORM","IFRAME","NAV","FOOTER","ASIDE","TABLE"],s=J(t),Ft=Z(s),Ut=r?tt(s):void 0,G=kt(s);if(!G)return;return{el:G,isRTL:Ft,fontFamily:Ut};function kt(f){let l=0,m=!1,c=0,p=0,R=!1;const w=z(f,o.includes(f.tagName)||!!n&&f.matches(n))?.node;if(!w)return;if(e){const u=document.createElement("h1");u.innerText=e,w.prepend(u)}return Bt(w),$t(w),w;function z(u,b){if(R)return;if(u.nodeType===Node.TEXT_NODE)return b&&u.textContent?.trim()?{node:u.cloneNode()}:void 0;if(u.nodeType!==Node.ELEMENT_NODE)return;const y=u.tagName;if(a.includes(y)||y==="A"&&(m||!b))return;if(i.includes(y))return b?{node:document.createElement(y),isEmpty:!0}:{aborted:!0};if(u.getAttribute("aria-hidden")==="true"||!d(u)||window.getComputedStyle(u).position==="fixed")return;const X=!!n&&u.matches(n),Y=X||o.includes(y),xt=b||Y,H=[];if(Array.from(u.childNodes).forEach(N=>{if(R)return;const D=z(N,xt);if(D?.aborted)return;const Q=D?.node;if(Q){if(p=D?.isEmpty?p+1:0,p>2)return;H.push(Q),m?c=0:++l>30&&(m=!0)}else m&&++c>30&&(R=!0)}),!H.length)return Y?{node:document.createElement("p"),isEmpty:!0}:void 0;const L=document.createElement(X?"p":y==="BODY"?"div":y==="a"?"span":y),M=u.getAttribute("dir");return M&&M!=="auto"&&L.setAttribute("dir",M),H.forEach(N=>L.appendChild(N)),{node:L}}}function $t(f){P(f,l=>{if(l===f)return;const m=l.tagName;if(i.includes(m)||o.includes(m))return;const c=l.parentElement;if(c?.childNodes.length===1){Array.from(l.childNodes).forEach(p=>{c.appendChild(p)}),c.removeChild(l);return}l.childNodes.length===1&&l.replaceWith(l.childNodes[0])})}function Bt(f){let l=!1;const m=[];T(f,c=>o.includes(c.tagName)?[]:Array.from(c.children),c=>{const p=c.textContent.trim();if(!p)return!0;if(l)return!1;if(l=!I(c),m.includes(p))return!0;if(l)return!1;m.push(p)}),T(f,c=>o.includes(c.tagName)?[]:Array.from(c.children).reverse(),c=>!c.textContent.trim()||I(c))}}function I(t){const e=t.nodeName;return e.length===2&&e.startsWith("H")}function J(t){const e=(t??"main,article").split(",").filter(Boolean);for(const r of e){const o=document.querySelector(r);if(o)return o}const n=document.querySelector("p:has(+ p), h1, h2");if(n){let r=n;for(;r!==document.body;)r=r.parentElement;return r}return document.body}function Z(t,e){if(t.getAttribute("dir")==="rtl")return!0;const n=t.querySelector("p")||t.querySelector("div:not(:empty)")||t;return n.getAttribute("dir")==="rtl"?!0:window.getComputedStyle(n).direction==="rtl"}function tt(t,e){const n=t.querySelector("p")||t.querySelector("div:not(:empty)")||t;return window.getComputedStyle(n).fontFamily}function P(t,e){Array.from(t.children).forEach(n=>{P(n,e)}),e(t)}function T(t,e,n){const r=e(t);let o=!1;for(let i=0;i<r.length;i++){const a=r[i],s=T(a,e,n);if(s!==void 0){if(!s)return!1;et(a)}else o=!0}if(!o)return n(t)}function et(t){t.parentNode?.removeChild(t)}var nt=(t=>(t[t.reading=1]="reading",t[t.paused=2]="paused",t[t.plan=3]="plan",t[t.completed=4]="completed",t[t.dropped=5]="dropped",t[t.deleted=6]="deleted",t))(nt||{}),rt=(t=>(t[t.ok=1]="ok",t[t.hidden=2]="hidden",t[t.deleted=3]="deleted",t))(rt||{}),ot=(t=>(t[t.aggregator=0]="aggregator",t[t.scanlator=1]="scanlator",t))(ot||{}),it=(t=>(t.id="id",t.name="name",t.slug="slug",t))(it||{}),at=(t=>(t.blank="about:blank",t.title="meta.title",t.reader="meta.reader",t))(at||{}),q=(t=>(t[t.manga=1]="manga",t[t.novel=2]="novel",t[t.anime=3]="anime",t))(q||{}),ct=(t=>(t[t.pending=0]="pending",t[t.completed=1]="completed",t[t.offline=2]="offline",t[t.incompat=3]="incompat",t))(ct||{});function O(t,e){let n=[e??document.documentElement];const r=t.split("->");for(let o=0;o<r.length;o++){const i=r[o];n=n.map(a=>Array.from((a.shadowRoot??a).querySelectorAll(i))).flat()}return n}function A(t=0){return new Promise(e=>setTimeout(e,t))}async function v(t,e,n){const r=await n(()=>{t=0});if(r!==void 0)return r;if(!(t<=0))return await new Promise(o=>{setTimeout(async()=>{const i=await v(t-1,e,n);o(i)},e)})}async function st(t,e,n=0){const r=e.root??document.documentElement,o=e.timeoutMs;return v(o/50,50,()=>{const i=e.all===!0?Array.from(r.querySelectorAll(t)):r.querySelector(t)??void 0;return(e.all?!i?.length:!i)?void 0:i})}function lt(t,e){return t>=280&&e>=50||t>=160&&e>=280}function g(t){const e=t.getBoundingClientRect();return lt(e.width,e.height)}async function ut(t,e){const n=await dt(t,e);return W(n?.parentElement??t)}async function dt(t,e){if(e?.imgDivs)return await st(e.imgDivs,{timeoutMs:15e3});const n=Array.from(t.querySelectorAll(e?.imgs?.split("|")[0]??"img:not(nav img, header img, footer img, aside img),canvas"));if(n.length)return n.find(r=>d(r,t)&&(g(r)||r instanceof HTMLImageElement&&(!r.width||!r.height)))}function W(t){return t===document.documentElement||t.scrollHeight-t.clientHeight>=10&&window.getComputedStyle(t).overflow!=="visible"?t:W(t.parentElement)}function mt(t,e){if(t instanceof HTMLOptionElement){const n=t.parentElement instanceof HTMLOptGroupElement?t.parentElement.parentElement:t.parentElement;if(!n||!(n instanceof HTMLSelectElement))return;const r=t.getAttribute("value")||"";if(n.value===r)return;n.value=r,n.dispatchEvent(new Event("change"));return}t instanceof HTMLAnchorElement&&e?.preventDefault!==!1&&t.addEventListener("click",n=>n.preventDefault(),{once:!0}),t.click(),t.dispatchEvent(new PointerEvent("pointerdown",{bubbles:!0,cancelable:!0,pointerType:"mouse",button:0})),t.dispatchEvent(new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:window,button:0}))}function F(t,e){const n=document;if(t.startsWith("//")){const r=document.evaluate(t,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;return r instanceof HTMLElement?r:void 0}return n.querySelector(t)??void 0}async function ft(t){const e=await pt(t),n=t?.content;return n?await v(e?30:10,100,()=>{for(const r of n.split(",")){const o=document.querySelector(r);if(o)return o}})??document.body:document.body}async function pt(t){const{lstrip:e,lstripBtn:n}=t||{};if(!e||!n||F(e))return!1;const r=n.split(";");for(const o of r)if(!await yt(o.trim()))return!1;return!0}async function yt(t){const e=await v(50,30,()=>F(t));return e?(mt(e),await A(),!0):!1}function ht(t){return S(t)}async function S(t,e=0,n=0){const r=await ft(t);gt(r);const o=await ut(r,t);await vt(o,{stepMs:100,durationMs:1e4});const i=t?.imgDivs?wt(r,t.imgDivs):k(r),a=i===void 0;if(a&&n===50){if(!t?.imgDivs&&$(r))return r;throw new Error("EMPTY")}return i!==!1?(await A(500),await S(t,0,a?n+1:0),r):e>=1?r:await S(t,e+1)}function gt(t){const e=Array.from(t.querySelectorAll('img[loading="lazy"]'));for(const n of e)n.setAttribute("loading","eager");U(t,"data-src"),U(t,"data-url")}function U(t,e){const n=Array.from(t.querySelectorAll(`img[${e}]`));for(const r of n){const o=r.getAttribute(e)?.split(" ")[0];o&&r.src!==o&&(r.src=o)}}function wt(t,e){const n=O(e,t);if(n.length)return n.some(r=>$(r)?!1:k(r)!==!1)}function k(t){const e=Array.from(t.querySelectorAll("img"));let n=!1;for(const r of e){if(!d(r,t))continue;const o=g(r);if(n=n||o,!r.complete&&(o||!r.width||!r.height))return!0}return n?!1:void 0}function $(t){return Array.from(t.querySelectorAll("canvas")).some(e=>d(e,t)&&g(e))}async function vt(t,{stepMs:e,durationMs:n}){await Et(t,n,e)}async function Et(t,e,n){t.style.setProperty("scroll-behavior","auto");let r=e;for(;r>0&&t.scrollTop+t.clientHeight+200<t.scrollHeight;){const o=t.scrollHeight-t.scrollTop-t.clientHeight;t.scrollTop+=o/(r/n),r-=n,await A(n)}}function B(){const t=document.createElement("template");t.innerHTML="<iframe></iframe>";const e=t.content.querySelector("iframe");if(e){e?.style.setProperty("style","none"),document.body.appendChild(e);const n=e?.contentWindow?.HTMLCanvasElement?.prototype?.toDataURL;if(document.body.removeChild(e),n)return n}return HTMLCanvasElement.prototype.toDataURL}function x(t,e){const n=document.createElement("canvas"),r=n.getContext("2d"),o=t.naturalWidth,i=t.naturalHeight;n.width=o,n.height=i,r.drawImage(t,0,0,o,i);const a=e??HTMLCanvasElement.prototype.toDataURL,s=a.call(n,"image/webp");return s!=="data:,"?s:a.call(n,"image/jpeg")}async function bt(t,e){return t instanceof HTMLCanvasElement?e.call(t,"image/jpeg",1):!t.src.startsWith("blob:")||await Tt(t)?t.src:await x(t,e)}function Tt(t){return new Promise(e=>{const n=new Image;n.onload=()=>e(!0),n.onerror=()=>e(!1),n.src=t.src})}async function At(t,e){const n=e?.imgDivs,r=n?await St(t,n):await Ct(t,e),o=B();return await Promise.all(r.map(async i=>({src:await bt(i,o),el:i})))}async function St(t,e){const n=O(e,t),r=[];for(const o of n){const i=Array.from(o.querySelectorAll("img:not(nav img, header img, footer img, aside img),canvas"));for(const a of i)if(d(a,t)&&g(a)){r.push(a);break}}return r}function Ct(t,e){const n=[],r={};return t.querySelectorAll(e?.imgs?.split("|")[0]??"img:not(nav img, header img, footer img, aside img),canvas").forEach(async o=>{if(!(!d(o,t)||!g(o))){if(o instanceof HTMLImageElement){const i=r[o.src];if(i!==void 0&&i!==-1){n.splice(i,1);return}r[o.src]=n.length}n.push(o)}}),n}var Rt=Object.defineProperty,Ht=(t,e,n)=>e in t?Rt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,C=(t,e,n)=>Ht(t,typeof e!="symbol"?e+"":e,n);function Lt(t,{isWeb:e}){const n=new Mt({isWeb:e});return Promise.all(t.map(r=>n.resolve(r)))}class Mt{constructor(e){C(this,"isAndroid"),C(this,"isWeb"),C(this,"canvasToDataURL"),this.isWeb=!!e?.isWeb,this.isAndroid=!this.isWeb&&navigator.userAgent.toLowerCase().includes("android"),this.canvasToDataURL=this.isWeb?B():void 0}async resolve({src:e,el:n}){let r,o;const i=e.startsWith("data:");if(this.isAndroid){const a=e.startsWith("blob:");!a&&!i&&(o=await E(e,n)),r=a?await Dt(e):e}else this.isWeb?i?r=e:(o=await E(e,n,!0),r=x(o,this.canvasToDataURL)):i?(r=await Nt(e),o=await E(r)):(r=e,o=await E(e,n));return{src:r,el:o}}}function E(t,e,n){if(e&&e instanceof HTMLImageElement&&!n)return Array.from(e.attributes).forEach(o=>{o.name!=="src"&&e.removeAttribute(o.name)}),e;const r=(o=1)=>new Promise((i,a)=>{const s=document.createElement("img");n&&(s.crossOrigin="anonymous"),s.onload=()=>i(s),s.onerror=()=>{o<2?r(o+1).then(i).catch(a):a(new Error("RESOLVE_IMG_ERR"))},s.src=t});return r()}async function Nt(t){const e=await(await fetch(t)).blob();return URL.createObjectURL(e)}async function Dt(t){const e=await fetch(t);return await It(await e.blob())}function It(t){return new Promise((e,n)=>{const r=new FileReader;r.onloadend=()=>e(r.result),r.onerror=n,r.readAsDataURL(t)})}async function Pt({spec:t,raw:e}){if(e.contentType===q.novel){const n=V({spec:t,raw:e});Wt({title:e.title.name,el:n})}else{const n=await _({spec:t,raw:e});Ot({title:e.title.name,images:n})}return{...e,prev:void 0,imgs:void 0,title:{...e.title,chapters:[]}}}async function _({spec:t,raw:e,isWeb:n}){const r=e.imgs?.length?e.imgs.map(o=>({src:o})):await qt(t.reader);if(!r.length)throw new Error("Empty");return await Lt(r,{isWeb:n})}function V({spec:t,raw:e}){const n=K({sel:t.reader?.content,heading:e.name,paraSel:t.reader?.para,useObfFont:!!t.reader?.obfFont});if(!n)throw new Error("Empty");const{el:r,isRTL:o,fontFamily:i}=n;return o&&r.setAttribute("dir","rtl"),i&&r.setAttribute("data-font-family",i),r.setAttribute("id","novel"),r}async function qt(t){const e=await ht(t);return await At(e,t)}function Ot({title:t,images:e}){j(t);const n=document.createElement("div");n.style.setProperty("display","none");const r=document.createElement("code");r.innerText=e.map(({src:o})=>o).join(" "),n.appendChild(r),document.body.appendChild(n),e.forEach(({el:o})=>o&&document.body.appendChild(o))}function Wt({title:t,el:e,obfFontSel:n}){const r=n?document.querySelector(n)?.cloneNode(!0):void 0,o=r?.parentElement===document.head;j(t),r&&(o?document.head:document.body).appendChild(r),document.body.appendChild(e)}function j(t){document.open(),document.close(),document.documentElement.style.setProperty("background","black"),document.title=t;const e=document.createElement("meta");e.setAttribute("name","viewport"),e.setAttribute("content","width=device-width, initial-scale=1, user-scalable=0"),document.head.appendChild(e)}h.loadImages=_,h.loadNovelHtml=V,h.strip=Pt}));
|