trackkun-dom 2.17.3 → 2.17.4

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.
Files changed (2) hide show
  1. package/index.js +1 -1
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -1 +1 @@
1
- (function(z,W){typeof exports=="object"&&typeof module<"u"?W(exports):typeof define=="function"&&define.amd?define(["exports"],W):(z=typeof globalThis<"u"?globalThis:z||self,W(z._trackkun_={}))})(this,(function(z){"use strict";function W(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)})})}async function M(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 M(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 M(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 Z(a){if(a instanceof HTMLOptionElement){const e=a.parentElement instanceof HTMLOptGroupElement?a.parentElement.parentElement:a.parentElement;if(!e||!(e instanceof HTMLSelectElement))return;const t=a.getAttribute("value")||"";if(e.value===t)return;e.value=t,e.dispatchEvent(new Event("change"));return}a instanceof HTMLAnchorElement&&a.addEventListener("click",e=>e.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 H(a){if(a)try{return JSON.parse(a)}catch{return}}const ge={text:de,attr:ut,"attr-contain":gt,value:pt,row:ht,"bg-image":dt,json:ft},it={pattern:mt,remove:wt,atob:vt};function d(a,e){if(a)return pe(a,e,ot)}function q(a,e){if(a)return pe(a,e,ct)}function pe(a,e,t){if(!a)return;const r=a.split("||").map(n=>n.trim()).filter(Boolean);for(const n of r){const s=lt(n);if(!s)continue;const i=t(e??document.documentElement,s);if(i)return i}}function lt(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(ee),transformers:r.map(ee)}}function ee(a){const e=a.indexOf(":"),t=e!==-1;return{fn:t?a.substring(0,e):a,param:t?a.substring(e+1):""}}function ot(a,e){if(!e.selector)return he(a,e);const t=yt(e.selector);for(const r of t){const n=Array.from(a.querySelectorAll(r));for(const s of n){const i=he(s,e);if(i)return i}}}function ct(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=ge[s.fn],l=i(n,s.param);if(l){r.push(te(l,e.transformers));break}}if(r.length)return r}function he(a,e){for(const t of e.extractors){const r=ge[t.fn],n=r(a,t.param);if(n)return te(n,e.transformers)}}function te(a,e){let t=a;for(const r of e){const n=it[r.fn];n&&(t=n(t,r.param).trim())}return t}function de(a){return Array.from(a.childNodes).filter(e=>e.nodeType===3).map(e=>k(e.textContent)).filter(Boolean).join(" ").trim()||k(a.textContent)}function ut(a,e){return k(a.getAttribute(e))}function gt(a,e){let t=a.getAttribute(e);if(!t){const r=a.getAttributeNames().find(n=>n.includes(e));r&&(t=a.getAttribute(r))}return k(t)}function pt(a){return a.value}function ht(a,e){if(!e)return;const t=k(a.textContent)?.toLowerCase(),r=e.toLowerCase();if(!(t!==r&&t!==`${r}:`))return k(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 ft(a,e){const t=B(H(de(a)),e);return typeof t=="number"?t+"":typeof t=="string"?k(t+""):void 0}function B(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?B(i,s):i}catch{return}}function k(a){if(a)return a?.replace(/(\n|\t)/g," ").trim()||void 0}function mt(a,e){if(e)try{return a.replace(new RegExp(e,"i"),"$1")}catch{}return a}function wt(a,e){if(e)try{return a.replaceAll(new RegExp(e,"gi"),"")}catch{}return a}function vt(a){try{return window.atob(a)}catch{return a}}function yt(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 l=t.trim();l.length>0&&e.push(l),t=""}else t+=i}const n=t.trim();return n.length>0&&e.push(n),e}var bt=(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))(bt||{}),Rt=(a=>(a[a.ok=1]="ok",a[a.hidden=2]="hidden",a[a.deleted=3]="deleted",a))(Rt||{}),$t=(a=>(a[a.aggregator=0]="aggregator",a[a.scanlator=1]="scanlator",a))($t||{}),xt=(a=>(a[a.pending=0]="pending",a[a.completed=1]="completed",a[a.offline=2]="offline",a[a.incompat=3]="incompat",a))(xt||{}),fe=(a=>(a.id="id",a.name="name",a.slug="slug",a))(fe||{}),K=(a=>(a.blank="about:blank",a.title="meta.title",a.reader="meta.reader",a))(K||{});function ae(a=0){return new Promise(e=>setTimeout(e,a))}const Dt=/(vol(ume)?|season)(\s*|-|\.)(\d+)/i,St=/^S([1-9])\s/i,It=/(ch(ap(t(er)?|\.)?|\.)?|#|episode\.?|capitolo\.?|capitulo\.?|bölüm\.?)(\s*|-)(\d+([_-~,.]\d+)?)/i,Tt=/\d+([_-~,.]\d+)?/,Pt=/[_-~,]/;function Ct(a){const e=a.match(Dt);if(e)return{volStr:e[0],volValueStr:e[4]};const t=a.match(St);return t?{volStr:t[0],volValueStr:t[1]}:{}}function j(a){if(!a)return;if(!isNaN(+a))return{chap:+a};const{volStr:e,volValueStr:t}=Ct(a),r=e?a.replace(e,"").trim():a,n=r.match(It),s=r.match(Tt),i=n?.[6],l=i??s?.[0];if(!l)return;const c=+l.replace(Pt,".");if(isNaN(c))return;const o=e&&t&&!isNaN(+t)&&a.indexOf(e)<a.indexOf(i?n[0]:s[0])?+t:void 0;return{vol:o===void 0||o<=0?void 0:o,chap:c}}async function Y(a,e=240){return new Promise(t=>{const r=new Image;r.crossOrigin="anonymous",r.onerror=()=>t(void 0),r.onload=()=>{const n=document.createElement("canvas"),s=n.getContext("2d"),i=Math.max(1,r.naturalWidth/e),l=r.naturalWidth/i,c=r.naturalHeight/i;n.width=l,n.height=c;const o=/iPad|iPhone|iPod/.test(navigator.userAgent);try{s.drawImage(r,0,0,l,c);const u=n.toDataURL(o?"image/jpg":"image/webp",o?.99:.8).split(",").slice(-1)[0];t(u)}catch{t(void 0)}},r.src=a})}async function Mt(a,e=240){const t=await Bt(a);if(t)return await new Promise(async r=>{const n=Y(t,e),s=setTimeout(()=>r(void 0),100),i=await n;clearTimeout(s),r(i)})}async function Bt(a){if(a.startsWith("blob:"))return a;try{const e=await fetch(a);if(e.status>=400)return;const t=await e.blob();return URL.createObjectURL(t)}catch{return}}function I(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=B(a,n);if(typeof i=="number"||i){if(typeof i!="string")return i;const l=i.replace(/(\n|\t)/g," ").trim();if(l){const c=te(l,s.map(ee));if(c)return c}}}}function L(a){if(a?.startsWith("window")){const e=a.indexOf(".");return e===-1?void 0:I(window,a.substring(e+1))}return H(a?d(a):document.querySelector("pre")?.textContent)}function T(a,e){if(typeof a=="number")return e?e(a):a}function m(a,e){if(typeof a=="string")return e?e(a):a}function O(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],h=u.group??"";r[h]=(r[h]??0)+1;const g=u.lang??"";u.vol!==void 0?n[g]=u.vol:n[g]!==void 0&&(u.inferVol=n[g])}const s=[],i={},l=e?.preferGroup,c=o=>o.lang??"";for(const o of t){const u=c(o),h=i[u],g=s[h];if(!(g&&g.chap===o.chap&&(g.vol===o.vol||g.vol===void 0||o.vol===void 0))){i[u]=s.length,s.push(o);continue}if(!l){g.vol===void 0&&o.vol!=null&&(s[h]=o);continue}g.group!==l&&(o.group==l||g.group&&!o.group||r[o.group??""]>r[g.group??""])&&(s[h]=o)}return s}const jt=[{seconds:1,locales:{en:"sec",vi:"gi\xE2y",tr:"ikinci",es:"segunda"}},{seconds:60,locales:{en:"min",vi:"ph\xFAt",tr:"dakika"}},{seconds:3600,locales:{en:"hour",vi:"gi\u1EDD",tr:"saat",fr:"heure",it:"ora",es:"hora"}},{seconds:86400,locales:{en:"day",vi:"ng\xE0y",tr:"g\xFCn",fr:"jour",it:"giorno",es:"d\xEDa"}},{seconds:604800,locales:{en:"week",vi:"tu\u1EA7n",tr:"hafta",fr:"semaine",it:"settimana",es:"semana"}},{seconds:2592e3,locales:{en:"month",vi:"th\xE1ng",tr:"ay",fr:"mois",it:"mese",es:"mes"}},{seconds:31536e3,locales:{en:"year",vi:"n\u0103m",tr:"yil",fr:"an",it:"anno",es:"a\xF1o"}}],Lt=/^\d+$/;function me(a,e){const t=a?.toLowerCase();if(!t)return;const r=Date.now();if(t.includes("now"))return r;if(t.includes("yesterday"))return r-864e5;if(Lt.test(t))return+t;const n=new Date(t);if(n instanceof Date){const o=n.valueOf();if(!isNaN(o))return n.getHours()===0&&n.getMinutes()===0?Math.min(r,o+432e5):o}const s=jt.find(o=>e&&o.locales[e]&&t.indexOf(o.locales[e])!==-1?!0:t.indexOf(o.locales.en)!==-1);if(!s)return;const i=t.split(" ").filter(Boolean),l=we(i)??(e==="en"?we(i,["a","an"]):void 0);if(!l)return;const c=r-l*s.seconds*1e3;return c>0?c:void 0}function we(a,e){for(let t=0;t<a.length;t++){const r=a[t];if(e?.includes(r))return 1;const n=+r;if(n)return n<0?void 0:n}}function Ot(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 re(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 ne(a){if(!a)return;let e=a;e.startsWith("//")&&(e=`https:${e}`);try{return new URL(e)}catch{return}}function A(a){if(!(!a||typeof a!="string"))return a.includes("//")?ne(a)?.pathname:a}function At(a,e){const t=[...e],r=[];let n=!1,s=0;const i=Math.min(a.length,100);for(let c=0;c<i;c++){if(s>=10/2){const p=10-r.length;if(p>0){const f=c+p<=a.length?a.slice(c,c+p):t.slice(0,p);r.push(...f)}break}const o=a[c],u=o.id!==void 0,h=t.findIndex(p=>u&&p.id===o.id||p.slug===o.slug||p.name==o.name),g=h===-1?void 0:t.splice(h,1)[0];!g||g.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 l=[];for(let c=0;c<r.length;c++){const o=r[c];(o.changed||c<10)&&l.push(o)}return{hasMore:e.length<2||e.length-t.length<2,rawReleases:l}}function Ut(a,e){const t={};return a.forEach(r=>{const n=r.chapters.reduce((s,i)=>{const l=i.lang||e||"";return s[l]||(s[l]=[]),s[l].push(i),s},{});Object.entries(n).forEach(([s,i])=>{const l=`${r.slug}:${s}`;t[l]?(t[l].chapters.push(...i),O(t[l].chapters)):t[l]={...r,lang:s===""?void 0:s,chapters:i}})}),Object.values(t)}function ve(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 $=(a=>(a.title="title",a.reader="reader",a.releases="releases",a.chapters="chapters",a.search="search",a))($||{}),Et=Object.defineProperty,Nt=(a,e,t)=>e in a?Et(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,U=(a,e,t)=>Nt(a,typeof e!="symbol"?e+"":e,t);class V{constructor(e){U(this,"headless"),U(this,"siteId"),U(this,"spec"),U(this,"siteMeta"),U(this,"tags"),U(this,"context"),U(this,"methodsMap",{[$.title]:()=>this.getRawTitleData(),[$.reader]:()=>this.getRawReaderData(),[$.releases]:()=>this.getRawReleasesData(),[$.search]:()=>this.getRawSearchData(),[$.chapters]:()=>this.getRawChaptersData()}),U(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){const r=await this.methodsMap[e](),n=!r&&(e===$.title||e===$.reader)&&await kt(this.spec);if(t&&!r&&!n)return;const s=location.origin+location.pathname;return{type:e,is404:n,specId:this.spec.id,siteName:this.getSiteName(e,r),favUrl:Wt(),htmlLang:qt(),url:s,data:r,spec:this.spec,context:this.context}}parseReaderUrl(e,t,r){const n=!this.siteId,s=t.includes("/");let i=s?e:this.siteMeta.readerBase;if(i.startsWith("/")||(i="/"+i),i.endsWith("/")||(i=i+"/"),!s)return n?{basePath:"",slug:`${i}${t}`}:{basePath:i,slug:t};const l=i.includes("{");let c=t;if(c[0]!=="/"&&(c.includes("/")||n&&!l))try{c=new URL(t,location.href).pathname}catch{}if(c.endsWith("/")&&(c=c.slice(0,-1)),l){const o=i.split("/").filter(Boolean),u=c.split("/").filter(Boolean);if(o.length<u.length){const h=u[o.indexOf("{lang}")]?.toLowerCase(),g=u[o.indexOf("{titleId}")],p=u[o.indexOf("{titleSlug}")];if(n)return{basePath:"",slug:c,lang:h,titleId:g,titleSlug:p};if(i=i.replace("{lang}",h).replace("{titleId}",g).replace("{titleSlug}",p),c.startsWith(i))return{basePath:i,slug:c.replace(i,""),lang:h,titleId:g,titleSlug:p}}}else if(!n&&c.startsWith(i))return{basePath:i,slug:c.replace(i,"")};return{basePath:"",slug:c}}parseTitleUrl(e){if(typeof e!="string")return{};const t=A(e);if(t===void 0)return{};if(this.siteMeta.single)return{slug:ve(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=Ut(e.rawReleases,t);if(r.length)return this.context.oldRawReleases?At(r,this.context.oldRawReleases):{rawReleases:r,hasMore:!0}}getTagIdsFromNames(e){if(!e?.length)return;const t=this.normalizedTagsMap??(this.normalizedTagsMap=_t(this.tags)),r=e.map(n=>t[se(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===$.title)return t.name;if(e===$.reader)return t.title.name}const r=this.spec.name,n=(r&&d(r))??d('meta[property="og:site_name"]|attr:content');return n&&n.length>2?n:void 0}}U(V,"specId"),U(V,"siteId");function _t(a){const e={};return a.forEach(({id:t,name:r,altNames:n})=>{e[se(r)]=t,n&&n.forEach(s=>{e[se(s)]=t})}),e}function se(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 kt(a){return zt()===404||a[404]&&await E(a[404],{lazy:!0,timeoutMs:5e3})?!0:document.title.toLowerCase().includes("not found")}function zt(){try{return window.performance.getEntries().find(a=>a.entryType==="navigation")?.responseStatus}catch{return}}function Wt(){return d('link[rel="icon"][sizes="32x32"],link[rel="icon"][sizes="192x192"],link[rel="apple-touch-icon"]|attr:href')}function qt(){return d("html|attr:lang")||"en"}class v extends V{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 l=this.getJsonRawReleases(m(e.json),e)?.filter(c=>c.chapters.length);return l?.length?l: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(l=>{const c=d(e.url,l),o=A(c),u=d(e.name,l),h=d(e.at,l);if(!o||!u)return;const g=me(h,this.siteMeta.defaultLang);return{titleEl:l,id:d(e.id,l),path:o,name:u,lang:d(e.lang,l)?.toLowerCase(),at:g?Math.min(g,n):void 0}}).filter(Boolean);if(!s.length)return;const i=[];return await Promise.all(s.map(async l=>{const{path:c,titleEl:o,lang:u,at:h,...g}=l,{id:p,slug:f}=this.parseTitleUrl(c);if(!f)return;const w=g.id||p,y=await this.getChapters(t,{root:o,titleId:w,titleSlug:f,titleName:l?.name,lang:u})??[];y.length&&i.push({slug:f,chapters:u||h?y.map(b=>({...b,elIndex:void 0,lang:b.lang??u,ts:b.ts??h})):y,...g,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||d(e.id),s=await this.getChapters(e.chapter,{lazy:e.chapter?.lazy??!0,titleId:n,titleSlug:r,titleName:d(e.name)})??[],i=d(e.name);if(!i)return;const l=await this.getValidImgSrc(e.img,i),c=l&&this.context.includeImgBytes?await Mt(l):void 0,o=this.getFirstChapterUrl(),u=e.firstBtn,h=q(e.tags)?.map(f=>f.split(",")).flat().map(f=>f.trim()).filter(Boolean),g=d(e.type),p=q(e.langs)?.map(f=>f.toLowerCase());return{id:n||d(e.id),url:location.origin+location.pathname,slug:r,name:i,langs:p?.length?p:e.langs&&this.siteMeta.defaultLang?[this.siteMeta.defaultLang]:void 0,tags:this.getTagIdsFromNames([...h??[],...g?[g]:[]]),chapters:s,hasMoreChapters:e.hasMore?!!document.querySelector(e.hasMore):void 0,img:l,imgBytes:c,firstUrl:o,firstBtn:!o&&u&&document.querySelector(u)?u:void 0,trackers:this.getTrackersMap(e.trackers)}}getTrackersMap(e){if(!e)return;const t=d(e.mal),r=d(e.anl);if(!t&&!r)return;const n={};return t&&(n.mal=this.parseTrackerId(t)),r&&(n.anl=this.parseTrackerId(r)),n}parseTrackerId(e){return e.split("?")[0].split("#")[0].split("/").filter(Boolean).slice(-1)[0]}getFirstChapterUrl(){const e=d(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 M(33,30,()=>{const r=d(e)||d(`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})}getRawReaderTitleData(e){const t=this.spec.reader?.title;if(!t)return;const r=t.sel?document.querySelector(t.sel)??void 0:void 0,n=d(t.name,r);if(!n)return;const s=Ot(d(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||d(t.id,r)}}const i=d(t.url,r),{slug:l,id:c}=this.parseTitleUrl(i);if(!(!n||!i||(this.siteMeta.single?l===void 0:!l)))return{name:n,img:s,url:new URL(i,location.origin).href,slug:l,id:c||d(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=e.reader.content;if(!(!r||await v.verifyImgsCotainer(r)))return;const n=this.parseReaderUrl(t.readerBase,location.pathname,location.href),{slug:s,basePath:i,lang:l}=n,c=this.getRawReaderTitleData({id:n.titleId,slug:n.titleSlug});if(!c)return;const o=d(e.reader.group),{id:u,slug:h}=c,g=e.reader?.chapter,p=!!this.context.disableLazyChapters,f=!!this.context.includeHiddenChapters,w=await this.getChapters(g,{titleId:u,titleSlug:h,titleName:c.name,lang:l,lazy:f||!p,includeHiddenChapters:f,timeoutMs:f?3e3:25e3,includeIndex:!0,basePath:i,preferGroup:o})??[],y=d(e.reader.label)?.toLowerCase().replace(c.name.toLowerCase(),"");if(!y)return;const{vol:b,chap:R=0}=j(y)||{},N=this.findNeighborChapter({sel:e.reader.prev,basePath:i,titleUrl:c.url}),G=this.findNeighborChapter({sel:e.reader.next,basePath:i,titleUrl:c.url}),F=u??(()=>{const C=this.spec.reader?.title;if(!C?.id)return;const D=C.sel?document.querySelector(C.sel)??void 0:void 0;if(!(C.sel&&!D))return d(C.id,D)})();return this.finalizeRawReaderData({vol:b,chap:R,lang:l??d(e.reader.lang)?.toLowerCase()??(e.reader.lang?this.siteMeta.defaultLang:void 0),slug:s,basePath:i,group:o??d(e.reader.group),imgs:q(e.reader.imgs),title:{id:F,url:c.url,slug:h,name:c.name,langs:l?[l]:void 0,img:c.img,chapters:w,hasMoreChapters:!w.length&&!f&&!!this.context.disableLazyChapters&&!!g?.label}},{prevSlug:N,nextSlug:G})}async getRawChaptersData(){const e=this.siteMeta.chapters;if(e===K.blank)return;const t=e===K.reader,r=!e||e===K.title,n=t?(await this.getRawReaderData())?.title:r?await this.getRawTitleData():void 0,s=this.spec.chapters?.chapter,i=n?.slug??this.context.titleSlug,l=n?.id??this.context.rawId,c=this.context.lang,o=s?s.json?this.getJsonChapters(L(m(s.json)),{chapterSpec:s,basePath:re(this.siteMeta.readerBase,{titleSlug:i,titleId:l,lang:c})}):await this.getChapters(s,{titleId:l,titleSlug:i,titleName:n?.name,lazy:this.spec.chapters?.lazy,includeHiddenChapters:!0,lang:c}):n?.chapters;if(!o)return;const u=c?o.filter(h=>!h.lang||h.lang===c):o;return{chapters:u,title:n?{...n,chapters:[]}:await this.getTitleData(this.spec.chapters?.title),hasMore:!1,asc:!1,total:u.length}}async getRawSearchData(){const e=this.spec.search,t=this.context.lang;if(!e)return;const r=e.title;if(r.json){const o=this.getJsonRawReleases(m(r.json),r,t);return o?.length?{rawReleases:o}:void 0}e.delay?await ae(e.delay):e.loading&&await ae(500);const{chapter:n}=r,s=[],i=e.lazy?e.empty||e.loading?550:100:1;let l=0;const c=await M(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)&&++l>=3)return o});if(c)return await Promise.all(c.map(async o=>{const u=d(r.url,o),h=A(u),g=d(r.name,o),{slug:p,id:f}=this.parseTitleUrl(h);if(!h||!g||!p)return;const w=d(r.lang,o);w&&t&&w!==t||s.push({id:f||d(r.id,o),slug:p,name:g,img:d(r.img??"img|[attr:data-src,attr-contain:src]",o),lang:w,chapters:await this.getChapters(n,{root:o,titleId:f,titleSlug:p,titleName:g})??[]})})),{rawReleases:s}}getJsonRawReleases(e,t,r){const n=L(e),s=I(n,t.sel);if(!s?.length||!Array.isArray(s))return;const i=[];return s.forEach(l=>{const c=m(I(l,t.lang))?.toLowerCase();if(c&&r&&c!==r)return;const o=I(l,t.url),{id:u,slug:h}=T(o,b=>({id:void 0,slug:b+""}))??this.parseTitleUrl(A(o)),g=m(I(l,t.name));if(!h||!g)return;const p=u||I(l,t.id),f=T(p,b=>b+"")??m(p),w=t.chapter?this.getJsonChapters(l,{chapterSpec:t.chapter,basePath:re(this.siteMeta.readerBase,{titleId:f,titleSlug:h,lang:c})}):void 0,y=m(I(l,t.img),b=>{try{return new URL(b,location.origin).href}catch{return}});i.push({id:f,slug:h,name:g,lang:c,img:y,chapters:w??[]})}),i}getJsonChapters(e,{chapterSpec:t,basePath:r}){if(!e)return;const n=I(e,t.sel);if(!n)return;const s=Array.isArray(n)?n:[n];if(!s?.length)return;const i=[];return s.forEach(l=>{const c=I(l,t.label),o=T(c,b=>({vol:void 0,chap:b}))??j(m(c));if(!o)return;const u=I(l,t.url),h=m(u)??T(u,b=>b+""),g=h?this.parseChapterUrl(r,h):void 0,p=o.vol??I(l,t.vol),f=I(l,t.id),w=I(l,t.at),y=w?new Date(w).getTime():void 0;i.push({slug:g?.slug,vol:T(p)??m(p,b=>+b),chap:o.chap,id:m(f)??T(f,b=>b+""),lang:m(I(l,t.lang))?.toLowerCase(),group:m(I(l,t.group)),ts:y||void 0})}),i.length?O(i,{preferGroup:this.context.preferGroup}):void 0}async getChapters(e,{root:t,titleId:r,titleSlug:n,titleName:s,lang:i,includeHiddenChapters:l=!1,lazy:c=!0,timeoutMs:o,includeIndex:u,basePath:h,preferGroup:g}){const p=e?.sel;if(!p||!e.label)return;const f=p.includes("{titleSlug}")?n?p.replace("{titleSlug}",n):void 0:p;if(!f)return;let w;if(e.trigger&&(!l||(w=await E(e.trigger,{timeoutMs:5e3,lazy:!0}),!w)))return;const y=[],b=await M(c?o?o/50:200:1,50,async()=>{w&&(Z(w),await ae(50));const S=Array.from((t??document.documentElement)?.querySelectorAll(f));if(S.length)return S}),R=(b??[]).map((S,J)=>({id:d(e.id,S),label:d(e.label,S)?.toLowerCase(),url:d(e.url,S),at:d(e.at,S),lang:d(e.lang,S),group:d(e.group,S),elIndex:J})),N=s?.toLowerCase(),G=N&&!!R[0]?.label?.startsWith(N),F=(e.dismiss?(t??document.body).querySelector(e.dismiss):void 0)??w;if(F&&Z(F),!b?.length)return[];const C=R.map(({label:S})=>{if(!S)return;const J=G?S?.replace(N,"").trim():S;return j(J)}),D=C[1]?.chap;!C[0]&&(D===void 0||D<=1)&&(C[0]={chap:0});const Ar=h??re(this.siteMeta.readerBase,{titleId:r,titleSlug:n,lang:i}),Ur=Date.now();return C.forEach((S,J)=>{if(!S)return;const{id:Er,url:nt,at:Nr,lang:_r,group:kr,elIndex:zr}=R[J],st=me(Nr,this.siteMeta.defaultLang),Q={...S,id:Er,lang:_r?.toLowerCase(),group:kr,ts:st?Math.min(Ur,st):void 0};u&&(Q.elIndex=zr);const X=nt?this.parseChapterUrl(Ar,nt):void 0;X&&(Q.slug=X.slug,X.lang&&(Q.lang=X.lang)),y.push(Q)}),O(y,{preferGroup:g??this.context.preferGroup})}parseChapterUrl(e,t){if(t?.startsWith("#"))return;if(t?.startsWith("http")&&!t.includes(`//${location.hostname}/`))return{slug:t};const r=A(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],{lazy:!!e.lazy}))}async isReaderPage(e,t){const r=e?.sel;return t&&!r?!1:!r||!!await E(r,{lazy:!!e.lazy})}static async verifyImgsCotainer(e){const t=e.split(",").map(r=>r.trim()).filter(Boolean).map(r=>`${r} img, ${r} canvas`).join(",");return!!await E(t,{lazy:!0,all:!1})}findNeighborChapter({sel:e,basePath:t,titleUrl:r}){const n=d(e);if(!n||n.startsWith("#")||n.startsWith("/#"))return;const s=A(n);if(s&&!(s===location.pathname||r===s||r===`${location.origin}${s}`))return this.parseReaderUrl(t,s,n).slug||void 0}finalizeRawReaderData(e,{prevSlug:t,nextSlug:r}={}){const n=e.title.chapters;if(!n.length){const o=v.extractVolChapFromSlug(t),u=v.extractVolChapFromSlug(r);return!o&&!u?e:{...e,prev:o?{...o,slug:t}:void 0,next:u?{...u,slug:r}:void 0}}let s,i,l,c;for(let o=0;o<n.length&&!(s&&(!t||l)&&!r&&c);o++){const u=n[o];!s&&(e.slug&&e.slug==u.slug||e.chap===u.chap&&(e.vol===u.vol||e.vol===void 0))?(s=u,i=o):!l&&t&&t===u.slug?l=u:!c&&r&&r===u.slug&&(c=u)}return i!==void 0&&(l??(l=n[i+1]),c??(c=n[i-1])),l&&!l.slug&&(l.slug=t),c&&!c.slug&&(c.slug=r),s&&!s.slug&&(s.slug=e.slug),{...e,inferVol:s?.inferVol,prev:l,next:c}}static extractVolChapFromSlug(e){if(!e)return;const t=e.split("-").filter(r=>r.length<10).join(" ");return j(t)}}var Gt=Object.defineProperty,Ft=(a,e,t)=>e in a?Gt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ht=(a,e,t)=>Ft(a,e+"",t);class ye extends v{async getRawReleases(){const e=Vt();if(!e)return;const t=await super.getRawReleases();if(!t)return;const r=[];return t.forEach(n=>{if(!n.name.endsWith("...")){r.push(n);return}const s=n.name.slice(0,-3),i=e.split(s)[1];if(!i)return;const l=i.indexOf('"');if(l===-1)return;const c=`${s}${i.substring(0,l)}`;r.push({...n,name:c})}),r}}Ht(ye,"specId","asura");function Vt(){const a=Array.from(document.querySelectorAll("script:not([src])"));for(let e=0;e<a.length;e++){const t=a[e].textContent;if(t&&t.indexOf('{\\"latest\\":')!==-1)return t.replaceAll("\\","")}}function Jt(){return Math.random().toString(16).slice(2)}async function Kt({addListener:a,removeListener:e,transform:t,filter:r,handler:n,onTimeout:s,timeout:i,once:l}){return new Promise(c=>{a(h);const o=()=>l===!0&&e(h),u=i?setTimeout(()=>{o(),c(void 0),s?.()},i):void 0;async function h(g,...p){g=t?t(g):g,g!==void 0&&(!r||r(g,...p))&&(o(),c(g),n?.(g,...p),u&&clearTimeout(u))}})}async function Yt(a){return(await Kt({addListener:e=>window.addEventListener("message",e),removeListener:e=>window.removeEventListener("message",e),...a}))?.data}async function Qt(a){const{receiverWindow:e,timeout:t,targetOrigin:r,event:n,args:s}=a,i={reqId:Jt(),event:n,args:s};return(e||window)?.postMessage(i,r??"*"),(await Yt({filter:l=>l?.data?.resId===i.reqId,timeout:t??3e4,once:!0}))?.result}const P={isAny:!0};function x(a,...e){return Qt({event:"tk:fetchResult",args:{baseUrl:a,segments:e}})}var Xt=Object.defineProperty,Zt=(a,e,t)=>e in a?Xt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ea=(a,e,t)=>Zt(a,e+"",t);class be extends v{async getRawReaderData(){const e=`https://${location.host}`,[t,r]=await Promise.all([x(e,"api","manga","info"),x(e,"api","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 l=j(s.readChapter?.title);if(l)return this.finalizeRawReaderData({basePath:i.basePath,slug:i.slug,...l,imgs:s.readChapter.pages.map(c=>new URL(c.image,location.origin).href),title:{url:`${e}/manga/${n.id}`,slug:n.id,name:n.title,tags:this.getTagIdsFromNames([n.type].filter(Boolean)),chapters:O(n.chapters.map(c=>({slug:c.id,chap:c.number})),{preferGroup:this.context.preferGroup})}})}}ea(be,"specId","atsu");var ta=Object.defineProperty,aa=(a,e,t)=>e in a?ta(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ra=(a,e,t)=>aa(a,e+"",t);class Re extends v{parseTitleUrl(e){return{slug:A(e)?.split("/").filter(Boolean)[1]}}async getRawReaderData(){const e=await super.getRawReaderData();if(e)return{...e,imgs:e.imgs?.map(t=>t.startsWith("https://k")?t.replace("https://k","https://n"):t)}}}ra(Re,"specId","bato");var na=Object.defineProperty,sa=(a,e,t)=>e in a?na(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ia=(a,e,t)=>sa(a,e+"",t);class ie extends v{async getRawReaderData(){const e=await super.getRawReaderData();if(e)return{...e,imgs:e.imgs?.map(t=>t.startsWith("https://k")?t.replace("https://k","https://n"):t)}}}ia(ie,"specId","bato3x");var la=Object.defineProperty,oa=(a,e,t)=>e in a?la(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ca=(a,e,t)=>oa(a,e+"",t);class $e extends ie{parseChapterUrl(e,t){return{slug:t.split("/").filter(Boolean).slice(-1)[0]}}async getRawChaptersData(){const{rawId:e,titleSlug:t}=this.context,r=e??t?.split("-")[0];if(r)try{const n=await fetch(`${location.origin}/ap2/`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:"query get_comic_chapterList($comicId: ID!, $start: Int) { get_comic_chapterList(comicId: $comicId, start: $start) { id data { id dname title urlPath } }}",variables:{comicId:r,start:-1}})});if(!n.ok)return;const s=this.getJsonChapters(await n.json(),{basePath:this.siteMeta.readerBase,chapterSpec:{sel:"data.get_comic_chapterList",label:"data.dname",url:"data.urlPath"}});return s?{chapters:s}:void 0}catch{return}}}ca($e,"specId","bato4x");function xe(a){return String(a).normalize("NFKD").replace(/[\u0300-\u036f]/g,"").trim().toLowerCase().replace(/[^a-z0-9 -]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-")}var ua=Object.defineProperty,ga=(a,e,t)=>e in a?ua(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,pa=(a,e,t)=>ga(a,e+"",t);class De extends v{async getRawReleases(){const e=await super.getRawReleases();if(e?.length)return e.map(t=>({...t,slug:`${t.slug}-${xe(t.name)}`}))}async getRawChaptersData(){const e=L(),t=T(B(e,"result.pagination.total"),n=>Math.ceil(n/100))||0,r=(await Promise.all(Array.from({length:Math.max(0,t)},async(n,s)=>{if(s==0)return this.parseChapters(e);try{const i=location.href.replace("page=1",`page=${s+1}`),l=await fetch(i);return this.parseChapters(await l.json())||[]}catch{return[]}}))).flat();return{chapters:O(r,{preferGroup:this.context.preferGroup})}}parseChapters(e){const t=[];return B(e,"result.items")?.forEach?.(r=>{const n=T(B(r,"chapter_id"),i=>i+""),s=T(B(r,"number"));!n||s===void 0||t.push({slug:n,chap:s,vol:T(B(r,"volume"))||void 0,lang:m(B(r,"language")),group:m(B(r,"scanlation_group.name")),ts:T(B(r,"created_at"))})}),t}}pa(De,"specId","comix");var ha=Object.defineProperty,da=(a,e,t)=>e in a?ha(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,fa=(a,e,t)=>da(a,e+"",t);class Se extends v{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)}}}fa(Se,"specId","dynasty");var ma=Object.defineProperty,wa=(a,e,t)=>e in a?ma(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,va=(a,e,t)=>wa(a,e+"",t);class Ie extends V{async getRawReleasesData(){const e=L();if(e)return this.finalizeRawReleasesData({rawReleases:e.manga.map(t=>({id:t.id?t.id+"":void 0,name:t.title,slug:t.slug,chapters:t.chapters.map(r=>this.praseRawChapter(r))}))})}async getRawSearchData(){const e=L();if(e)return{rawReleases:e.data.map(t=>({id:t.id?t.id+"":void 0,slug:t.slug,name:t.title,img:`${location.origin}/${t.cover}`,chapters:[]}))}}async getRawTitleData(){const{slug:e}=this.parseTitleUrl(location.pathname);if(!e)return;const t=await x(location.origin,"api","backend","api","manga",e);if(!t)return;const r=this.parseRawTitleData(t.value),n=this.context.includeImgBytes&&r.img?await Y(r.img):void 0;return{...r,imgBytes:n}}async getRawReaderData(){const{slug:e,titleSlug:t}=this.parseReaderUrl(this.siteMeta.readerBase,location.pathname,location.href);if(!e||!t)return;const[r,n]=await Promise.all([x(location.origin,"api","backend","api","manga",t),x(location.origin,"api","backend","api","chapters","by-number",t,e)]);if(!r||!n)return;const s=await this.parseRawTitleData(r.value),i=n.value;return{slug:e,chap:i.number,basePath:`/${location.pathname.split("/").filter(Boolean).slice(0,-1).join("/")}/`,imgs:i.pages.sort((l,c)=>l.order-c.order).map(l=>`${location.origin}${l.image.startsWith("/")?l.image:`/${l.image}`}`),title:s}}async getRawChaptersData(){const e=L();if(!e)return;const t=this.parseRawTitleData(e);return{chapters:t.chapters,title:{...t,chapters:[]}}}parseRawTitleData(e){return{id:e.id?e.id+"":void 0,url:`${location.origin}/${this.siteMeta.titleBase}/${e.slug}`,slug:e.slug,name:e.title,img:`${location.origin}/${e.cover}`,tags:this.getTagIdsFromNames([e.type,...e.genres.map(t=>t.name)].filter(Boolean)),chapters:e.chapters.map(t=>this.praseRawChapter(t)),hasMoreChapters:e.pagination.hasNextPage}}praseRawChapter(e){return{chap:e.number,slug:e.number+"",ts:new Date(e.createdAt||e.uploadedAt||e.updatedAt).getTime()}}}va(Ie,"specId","falcon");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 Te extends v{async getRawTitleData(){const e=await super.getRawTitleData();if(e)return{...e,chapters:[{slug:"1",chap:0}]}}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(".")),l=m(d(".total_pages|text"),o=>+o)||1,c=Array.from({length:l},(o,u)=>`${n}${u+1}${i}`);return{...e,slug:"1",chap:0,imgs:c,title:{...e.title,chapters:[{slug:"1",chap:0}]}}}}Ra(Te,"specId","imhen");var $a=Object.defineProperty,xa=(a,e,t)=>e in a?$a(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Da=(a,e,t)=>xa(a,e+"",t);class Pe extends v{async getRawTitleData(){const e=await super.getRawTitleData();if(e)return{...e,chapters:Me()}}async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=Me();if(t.length)return{...e,title:{...e.title,img:Ce(e.title.slug),chapters:t}}}async getRawSearchData(){const e=await super.getRawSearchData();if(e)return{...e,rawReleases:e.rawReleases.map(t=>({...t,img:Ce(t.slug)}))}}}Da(Pe,"specId","kagane");function Ce(a){return`https://api.${location.host}/api/v1/series/${a}/thumbnail`}function Me(){const a=["initialBooksData","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),l=H(i.slice(i.indexOf("["),i.indexOf("}]")+2).replaceAll("\\",""));if(!l?.length||!Array.isArray(l))return[];try{const c=[];return l.map(o=>{const u=j(o.name);u&&c.push({...u,slug:o.id,ts:o.created?new Date(o.created).getTime():void 0})}),O(c)}catch{return[]}}}return[]}var Sa=Object.defineProperty,Ia=(a,e,t)=>e in a?Sa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ta=(a,e,t)=>Ia(a,e+"",t);class le extends v{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=Pa(e)),!t)return;if(!this.siteId){const i={...this.siteMeta,releases:null,titleBase:"",readerBase:"",titleIdType:fe.name,trailing:t.endsWith("/"),defaultLang:d("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:A(e);return ve(t,"/").split("/").slice(0,-1).join("/")}}Ta(le,"specId","madara");function Pa(a){if(!a)return;const e=a.sel?document.querySelector(a.sel)??void 0:void 0;return d(a.url,e)}var Ca=Object.defineProperty,Ma=(a,e,t)=>e in a?Ca(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ba=(a,e,t)=>Ma(a,e+"",t);class Be extends v{async getRawTitleData(){const e=await super.getRawTitleData();if(!e)return;const t=await je(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 je(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}})}}Ba(Be,"specId","mangaball");async function je(a){const e=await M(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()})})}),O(t,{preferGroup:a})}var ja=Object.defineProperty,La=(a,e,t)=>e in a?ja(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Oa=(a,e,t)=>La(a,e+"",t);const Aa={a:.1,b:.2,c:.3,d:.4};class Le extends v{parseTitleUrl(e){return{slug:A(e)?.split("/").filter(Boolean)[1]}}async getRawReleases(){const e=L()?.data;if(!e)return;const t=[];return e.forEach(({relationships:r,attributes:n,id:s})=>{const i=r.find(({type:h})=>h==="manga"),l=_(n.volume),c=_(n.chapter);if(c===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:l,chap:c,lang:n.translatedLanguage,ts:new Date(n.readableAt).valueOf()}]})}),t}async getRawTitleData(){const e=`https://api.${location.host}/manga/`,[t,r]=await Promise.all([x(e,P),x(e,P,"feed")]);if(!t||!r)return;const n=r.value.data?.map?.(c=>{const{attributes:o,id:u}=c;if(typeof o!="object"||typeof u!="string"||!u)return;const{externalUrl:h,title:g,volume:p,chapter:f,translatedLanguage:w}=o;return{slug:h||u,label:g||void 0,vol:_(p),chap:_(f),lang:w||"en",ts:new Date(o.readableAt).valueOf()}}).filter(c=>c?.chap!=null)??[],{data:s}=t.value;if(!s)return;const i=Ae({data:s,getTagIdsFromNames:c=>this.getTagIdsFromNames(c)});if(!i)return;const l=this.context.includeImgBytes&&i.img?await Y(i.img):void 0;return{...i,imgBytes:l,chapters:O(n,{preferGroup:this.context.preferGroup}),hasMoreChapters:(r.value.total||0)>(r.value.limit||0)}}async getRawReaderData(){const e="https://api.mangadex.org/",[t,r,n]=await Promise.all([x(e,"chapter",P),x(e,"at-home","server",P),x(e,"manga",P,"aggregate")]);if(!t||!r||!n)return;const s=t.value.data,{volume:i,chapter:l,externalUrl:c,translatedLanguage:o}=s.attributes||{},{baseUrl:u,chapter:{data:h,dataSaver:g,hash:p}}=r.value,f=s.relationships?.find?.(D=>D.type==="manga");if(!f)return;const w=Ae({data:f,getTagIdsFromNames:D=>this.getTagIdsFromNames(D)});if(!w||typeof n.value.volumes!="object")return;const y=Oe(n.value,{preferGroup:this.context.preferGroup})??[];(typeof l!="string"||l==="none")&&!y.length&&y.push({chap:0,slug:s.id});const b=y.findIndex(D=>D.slug===s.id),R=s.relationships?.find?.(D=>D.type==="scanlation_group"),N=u.endsWith("/")?u:u+"/",G=!!localStorage.getItem("md")?.includes?.('"dataSaver":true'),F=`${N}${G?"data-saver":"data"}/`,C=((G?g:h)??[]).map?.(D=>`${F}${p}/${D}`)??[];return{externalUrl:c,vol:_(i),inferVol:y[b]?.inferVol,chap:_(l)||0,imgs:C,lang:o,slug:s.id,prev:y[b+1],next:y[b-1],basePath:"/chapter/",group:R?.attributes?.name,groupUrl:R?.attributes?.website,isWebtoon:f?.attributes?.tags?.some(D=>D.attributes.name.en==="Long Strip"),title:{...w,chapters:y}}}async getRawChaptersData(){const e=L();if(!e)return;let t;try{t=Oe(e,{preferGroup:this.context.preferGroup})}catch{return}if(t)return{chapters:t,lang:this.context.lang??"en",asc:!1,hasMore:!1,total:t.length}}}Oa(Le,"specId","mangadex");function _(a){if(typeof a!="string"||a==="none")return;const e=parseFloat(a);if(e!==e)return;const t=a[a.length-1];return e+(Aa[t]??0)}function Oe(a,{preferGroup:e}){if(typeof a.volumes!="object")return;const t=Object.values(a.volumes).map(({volume:r,chapters:n})=>{const s=_(r);return Object.values(n).map(({id:i,chapter:l})=>{const c=_(l);if(c!==void 0)return{vol:s,chap:c,slug:i}})}).flat().filter(Boolean).reverse();return O(t,{preferGroup:e})}function Ae({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:l,tags:c,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 h=Ua(),g=(i??[])?.map?.(R=>typeof R=="string"?R:void 0).filter(Boolean)??[],p=g.filter(R=>R&&(!h||h.includes(R))),f=l?.map?.(R=>{const[[,N]=[]]=Object.entries(R);return N}),w=n?.find?.(R=>R.type==="cover_art")?.attributes?.fileName,y=w?`https://mangadex.org/covers/${t}/${w}.256.jpg`:void 0,b=(c||[]).map(R=>R?.attributes?.name?.en).concat(o).filter(Boolean);return{url:`${location.origin}/title/${t}`,slug:t,name:u,altNames:f,langs:p.length>0?p:g.length>0?g:["en"],img:y,tags:e(b)}}function Ua(){const a=localStorage.getItem("md");if(!a)return;const e=H(a);if(e)try{const t=e?.userPreferences?.filteredLanguages;return t?.length?t:void 0}catch{return}}var Ea=Object.defineProperty,Na=(a,e,t)=>e in a?Ea(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,_a=(a,e,t)=>Na(a,e+"",t);class Ue extends v{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 Z(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}))}}}_a(Ue,"specId","mangafire");var ka=Object.defineProperty,za=(a,e,t)=>e in a?ka(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Wa=(a,e,t)=>za(a,e+"",t);class Ee extends v{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),l=i[i.length-1];return{basePath:s,slug:l.startsWith("pg-")?i.slice(0,-1).join("/"):n}}async getImgs(){const e=await M(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(",")}}Wa(Ee,"specId","mangago");var qa=Object.defineProperty,Ga=(a,e,t)=>e in a?qa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Fa=(a,e,t)=>Ga(a,e+"",t);class Ne extends v{async getRawTitleData(){const e=`https://backend.${location.host}`,t=await x(e,"chapters-with-ids",P,P),r=await super.getRawTitleData();if(!(!t?.value||!r))return{...r,langs:await Ha(),chapters:oe(t.value)}}async getRawChaptersData(){const e=L();if(e)return{chapters:oe(e)}}async getRawReaderData(){const e=`https://backend.${location.host}`,[t,r]=await Promise.all([x(e,"chapters-with-ids",P,P),x(e,"read",P)]);if(!t?.value||!r?.value?.length)return;const n=await super.getRawReaderData();if(!n)return;const s=new URLSearchParams(location.search).get("number")??"0";return{...n,slug:`${n.slug}?number=${s}`,imgs:r.value,title:{...n.title,chapters:oe(t.value)}}}}Fa(Ne,"specId","mangahaven");async function Ha(){const a=document.querySelector('[role="tabpanel"] button');if(!a)return;const e=document.createElement("style");e.innerHTML="[data-radix-popper-content-wrapper] { display: none !important; }",document.head.appendChild(e),a.click();const t=await M(50,10,()=>q('img[src*="/flags/"]|attr:src|pattern:.+/(.+).svg'));return a.click(),setTimeout(()=>document.head.removeChild(e),1e3),t}function oe(a){const e=[];return a?.forEach?.(t=>{const r=+t.chapter;isNaN(r)||!t.id||e.push({chap:r,slug:`${t.id}?number=${t.chapter}`,lang:t.lang?.toLowerCase?.()})}),e}var Va=Object.defineProperty,Ja=(a,e,t)=>e in a?Va(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ka=(a,e,t)=>Ja(a,e+"",t);class _e extends v{parseTitleUrl(e){return{slug:A(e)?.split("/").filter(Boolean)[1]}}}Ka(_e,"specId","mangapill");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,Xa=(a,e,t)=>Qa(a,e+"",t);class ke extends v{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]}))}}}Xa(ke,"specId","mangaplus");var Za=Object.defineProperty,er=(a,e,t)=>e in a?Za(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,tr=(a,e,t)=>er(a,e+"",t);class ze extends le{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 m(r)??T(r,n=>n+"")}}tr(ze,"specId","mangastream");var ar=Object.defineProperty,rr=(a,e,t)=>e in a?ar(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,nr=(a,e,t)=>rr(a,e+"",t);class We extends v{async getRawReaderData(){const e=await super.getRawReaderData();return!e||!e.title.chapters.length?e:{...e,prev:e.prev?{...e.prev,slug:ce(e.title.slug,e.prev.slug)}:void 0,next:e.next?{...e.next,slug:ce(e.title.slug,e.next.slug)}:void 0,title:{...e.title,chapters:e.title.chapters.map(t=>({...t,slug:ce(e.title.slug,t.slug)}))}}}}nr(We,"specId","mangatime");function ce(a,e){if(e)return`/manga/${a}/chapter-${e}`}var sr=Object.defineProperty,ir=(a,e,t)=>e in a?sr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,lr=(a,e,t)=>ir(a,e+"",t);class qe extends v{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=T(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=(+(d(".page_select .select|text")||"1")||1)-1,i=r.replace(n,""),[l,c]=i.split("."),o=l.length,u=+l-s,h=u+t-1,g=[];for(let p=u;p<=h;p++)g.push(`${n}${(p+"").padStart(o,"0")}${c?`.${c}`:""}`);return{...e,imgs:g}}parseChapterUrl(e,t){return this.parseReaderUrl(e,Ge(t),t)}}lr(qe,"specId","mangatown");function Ge(a){return a.replace(location.origin,"").replace("//","/")}var or=Object.defineProperty,cr=(a,e,t)=>e in a?or(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ur=(a,e,t)=>cr(a,e+"",t);class Fe extends v{async getRawReaderData(){const e=await super.getRawReaderData();return e&&{...e,slug:e.slug.split("/").slice(0,-1).join("/")||e.slug.split("/")[0]}}}ur(Fe,"specId","mangaworld");var gr=Object.defineProperty,pr=(a,e,t)=>e in a?gr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,hr=(a,e,t)=>pr(a,e+"",t);class He extends v{async getRawTitleData(){const e=await super.getRawTitleData();if(e)return{...e,hasMoreChapters:e.chapters.length===50}}}hr(He,"specId","mgeko");var dr=Object.defineProperty,fr=(a,e,t)=>e in a?dr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,mr=(a,e,t)=>fr(a,e+"",t);class Ve extends V{async getRawReleasesData(){}async getRawSearchData(){}async getRawTitleData(){const e=await Je();if(!e)return;const t=d("#cover img|[attr:data-src,attr-contain:src]")??e.img;return{...e,img:t,imgBytes:this.context.includeImgBytes&&e.img?await Y(e.img):void 0}}async getRawReaderData(){const e=await Je();if(!e)return;const t=d("#image-container img|[attr:data-src,attr-contain:src]"),r=ne(t);if(!r)return;const n=r.pathname.split("/").filter(Boolean).slice(0,-1).join("/"),s=`${r.origin}/${n}/`;return{chap:0,slug:"1",basePath:e.url.replace(location.origin,"").slice(1),imgs:e.pages.map((i,l)=>`${s}${l+1}.${Ke(i)}`),title:{name:e.name,slug:e.slug,url:e.url,chapters:[{slug:"1",chap:0}]}}}async getRawChaptersData(){const e=await this.getRawTitleData();if(!e)return;const{chapters:t,...r}=e;return{title:{...r,chapters:[]},chapters:t}}}mr(Ve,"specId","nhentai");async function Je(){const a=await M(100,20,()=>window._gallery);if(!a?.id||!a?.title||!a?.images?.pages)return;const{title:e,images:{pages:t,cover:r},media_id:n}=a;return{name:e.pretty??e.english??e.japanese,slug:a.id+"",url:`${location.origin}/g/${a.id}`,chapters:[{slug:"1",chap:0}],pages:t.map(s=>s.t??"w"),img:await wr(n,r.t)}}async function wr(a,e){if(!a||!e)return;const t=Ke(e),r=(await M(10,20,()=>window._n_app))?.options?.thumb_cdn_urls?.[0];if(r)return`https://${r}/galleries/${a}/cover.${t}`}function Ke(a){return{j:"jpg",p:"png",g:"gif",w:"webp"}[a]??"webp"}var vr=Object.defineProperty,yr=(a,e,t)=>e in a?vr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,br=(a,e,t)=>yr(a,e+"",t);class Ye extends v{finalizeRawReaderData(e,{prevSlug:t,nextSlug:r}={}){if(!e.title.chapters.length){const n=j(t?.split(".").slice(0,-1).join(".")),s=j(r?.split(".").slice(0,-1).join("."));return!n&&!s?e:{...e,prev:n?{...n,slug:t}:void 0,next:s?{...s,slug:r}:void 0}}return super.finalizeRawReaderData(e,{prevSlug:t,nextSlug:r})}}br(Ye,"specId","rawkuma");var Rr=Object.defineProperty,$r=(a,e,t)=>e in a?Rr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,xr=(a,e,t)=>$r(a,e+"",t);class Qe extends v{async getRawTitleData(){const e=await super.getRawTitleData();if(!e)return;const t=q(".info-detail__row > .genre-btn,.info__right .stats__row:first-child|text")?.map(r=>[r,...r.split(" ")]).flat();return Xe({...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:{...Xe({...e.title,url:t,tags:[]},".episode-list .js-ep-cnt"),hasMoreChapters:!1}}}async getRawChaptersData(){const{rawId:e,skip:t}=this.context,r=1e3,n=t?Math.floor(t/1e3)+1:1;try{const s=await fetch(`/series/${e}/episodes?page=${n}&sort=NEWEST&max_limit=${r}`);return Dr(await s.json())}catch{return}}parseTitleUrl(e){if(!e)return{};const t=e.split("/").filter(Boolean);return{slug:t[1]??t[0]}}}xr(Qe,"specId","tapas");function Xe(a,e){const t=Sr(e)>20;return{...a,chapters:t?[]:a.chapters,hasMoreChapters:t}}function Dr(a){const e=a?.data?.episodes;if(!Array.isArray(e))return;const t=e.map(n=>({chap:n.pending_scene??n.scene,slug:n.id+"",ts:new Date(n.publish_date)?.valueOf?.()||void 0})),r=a?.data?.pagination;return{chapters:t,total:r?.total??t.length,hasMore:!!r?.has_next}}function Sr(a){return+(document.querySelector(a)?.textContent?.trim().split(" ")[0]||0)}var Ir=Object.defineProperty,Tr=(a,e,t)=>e in a?Ir(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Pr=(a,e,t)=>Tr(a,e+"",t);class Ze extends v{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(l=>({...l,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("/"),l=`${i.slice(0,4).join("/")}/list?title_no=${r}`,c=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:l,titleName: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:l,slug:l,name:s,langs:[o],chapters:(c??[]).map(u=>({...u,lang:o})),hasMoreChapters:!1}}}async getReaderImgs(){const e=q("#_imageList img|[attr:data-url,attr:src]");return e?.length?e:await M(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=ne(r);return{basePath:"",slug:n.pathname+n.search}}return{basePath:"",slug:r}}}Pr(Ze,"specId","webtoon");function Cr(a){if(a)return typeof a=="string"||Array.isArray(a)?a.length?a:void 0:typeof a=="object"?Object.keys(a).length?a:void 0:a}var Mr=Object.defineProperty,Br=(a,e,t)=>e in a?Mr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,jr=(a,e,t)=>Br(a,e+"",t);class et extends v{async getRawReleases(){const e=L();if(!e?.data?.length)return;const t=[];return e.data?.forEach(r=>{const n=j(r.chapter)?.chap,s=ue(r.relationships?.manga);!s||n===void 0||t.push({...s,chapters:[{vol:+r.vol||void 0,chap:n,slug:r.id,lang:m(r.lang),ts:m(r.published_at,i=>new Date(i).getTime())}]})}),t}async getRawTitleData(){const e=await super.getRawTitleData();if(!e)return;const t=`https://api.${location.host}`,[r,n]=await Promise.all([x(t,"manga",e.id??P),x(t,"manga",e.id??P,"chapters")]),s=r?.value?.relationships?.available_languages?.map?.(i=>m(i)).filter(Boolean);if(e.langs=Cr(s),n){const i=[];n.value.data?.forEach(l=>{const c=j(l.chapter),o=m(l.id);!c||!o||i.push({vol:+l.volume||void 0,chap:c.chap,slug:o,lang:m(l.language),group:m(l.relationships?.groups?.[0]?.name),ts:m(l.created_at,u=>new Date(u).getTime())})}),i.length&&(e.chapters=i,e.hasMoreChapters=n.value.total>n.value.limit)}return e}async getRawReaderData(){const e=this.parseReaderUrl(this.siteMeta.readerBase,location.pathname,location.href),t=e.slug.split("/").filter(Boolean)[0],r=`https://api.${location.host}`,[n,s]=await Promise.all([x(r,"chapter",t),x(r,"manga",P,"aggregate")]);if(!n||!s)return;const i=n.value,l=T(+i.chapter),c=i.relationships?.manga,o=ue(c);if(!o||l===void 0)return;const u=m(i.language),h=m(i.relationships?.groups?.[0]?.name),g=c.relationships?.tags?.map(y=>y.name)?.filter(Boolean),p=this.parseAggregateChapter(s.value),f=`${i.node}/data/${t}/`,w=i.data_optimized?.map?.(y=>`${f}${y.name}`);return this.finalizeRawReaderData({basePath:e.basePath,slug:`${t}/1`,vol:+i.volume||void 0,chap:l,lang:u,group:h,title:{...o,url:`${location.origin}/title/${o.id}/${o.slug}`,tags:g?this.getTagIdsFromNames(g):void 0,langs:s.value.languages?.map(y=>m(y)).filter(Boolean),chapters:p},imgs:w})}async getRawChaptersData(){const e=L();return e?{chapters:this.parseAggregateChapter(e)}:void 0}parseAggregateChapter(e){const t=e.groups?.map?.(s=>m(s?.name)),r=e.langs?.map?.(s=>m(s)).filter(Boolean),n=[];return e.chapters?.forEach(s=>{const i=j(s.chapter);if(!i)return;const l=+s.volume||void 0,c=i.chap;Object.entries(s.entries||{}).forEach(([o,u])=>{const h=m(u.published_at,p=>new Date(p).getTime()),g=T(u.language,p=>r?.[p]);u?.groups?.forEach(p=>{n.push({vol:l,chap:c,slug:o,lang:g,group:t[p],ts:h})})})}),O(n,{preferGroup:this.context.preferGroup})}async getRawSearchData(){try{const e=new URLSearchParams(location.search).get("title");if(!e)return;const t=await fetch(`https://api.${location.host}/manga?title=${encodeURIComponent(e)}&limit=42`);if(!t.ok)return;const r=await t.json(),n=[];return r?.data?.forEach?.(s=>{const i=ue(s);i&&n.push(i)}),{rawReleases:n}}catch{return}}}jr(et,"specId","weebdex");function ue(a){if(!a)return;const e=a?.relationships?.cover;return{id:a.id,slug:xe(a.title),name:a.title,img:e?`https://srv.notdelta.xyz/covers/${a.id}/${e.id}${e.ext}`:void 0,chapters:[]}}const Lr=[ye,be,Re,ie,$e,De,Se,Ie,Te,Pe,le,Be,Le,Ue,Ee,Ne,_e,ke,ze,He,We,qe,Fe,Ve,Ye,Qe,Ze,et];function tt(a){const e=Lr.find(t=>t.specId===a.spec.id)??v;return new e(a)}async function Or(a){const{spec:e,type:t}=a,r=a.siteMeta??e?.meta;if(e&&r){const n=t?[t]:at(r,e.generic);if(!n.length)return;const s=tt({...a,spec:e,siteMeta:r});return await W(n.map(i=>s.getRawPageByType(i,n.length>1)))}return await W((a.genericSpecs??[]).map(n=>{if(!n.meta||!n.generic)return[];const s=t?[t]:at(n.meta,n.generic);if(!s.length)return[];const i=tt({...a,spec:n,siteMeta:n.meta});return s.map(l=>i.getRawPageByType(l,!0))}).flat())}function at(a,e){if(location.pathname==="/"&&!a.single)return[];const{titleBase:t,readerBase:r}=a,n=location.pathname.split("/").filter(Boolean),s=rt(n,r),i=rt(n,t);if(s&&i)return[$.reader,$.title];const l=[];return!i&&(s!==!1||e)&&l.push($.reader),!s&&(i!==!1||e)&&l.push($.title),!l.length&&e?[$.reader,$.title]:l}function rt(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 l=!1;for(let c=0;c<t.length;c++){const o=t[c];if(o[0]!=="{"){if(o!==a[c])return!1;l=!0}}if(l&&i===(s?0:1))return!0}z.PageType=$,z.scrape=Or}));
1
+ (function(W,q){typeof exports=="object"&&typeof module<"u"?q(exports):typeof define=="function"&&define.amd?define(["exports"],q):(W=typeof globalThis<"u"?globalThis:W||self,q(W._trackkun_={}))})(this,(function(W){"use strict";function q(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)})})}async function C(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 C(a-1,e,t);n(s)},e)})}async function U(a,e,t=0){const r=e.root??document.documentElement,n=e.timeoutMs??1e4;return C(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 Z(a){if(a instanceof HTMLOptionElement){const e=a.parentElement instanceof HTMLOptGroupElement?a.parentElement.parentElement:a.parentElement;if(!e||!(e instanceof HTMLSelectElement))return;const t=a.getAttribute("value")||"";if(e.value===t)return;e.value=t,e.dispatchEvent(new Event("change"));return}a instanceof HTMLAnchorElement&&a.addEventListener("click",e=>e.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 G(a){if(a)try{return JSON.parse(a)}catch{return}}const pe={text:fe,attr:gt,"attr-contain":pt,value:ht,row:dt,"bg-image":ft,json:mt},lt={pattern:wt,remove:vt,atob:yt};function d(a,e){if(a)return he(a,e,ct)}function F(a,e){if(a)return he(a,e,ut)}function he(a,e,t){if(!a)return;const r=a.split("||").map(n=>n.trim()).filter(Boolean);for(const n of r){const s=ot(n);if(!s)continue;const i=t(e??document.documentElement,s);if(i)return i}}function ot(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(ee),transformers:r.map(ee)}}function ee(a){const e=a.indexOf(":"),t=e!==-1;return{fn:t?a.substring(0,e):a,param:t?a.substring(e+1):""}}function ct(a,e){if(!e.selector)return de(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=de(s,e);if(i)return i}}}function ut(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=pe[s.fn],l=i(n,s.param);if(l){r.push(te(l,e.transformers));break}}if(r.length)return r}function de(a,e){for(const t of e.extractors){const r=pe[t.fn],n=r(a,t.param);if(n)return te(n,e.transformers)}}function te(a,e){let t=a;for(const r of e){const n=lt[r.fn];n&&(t=n(t,r.param).trim())}return t}function fe(a){return Array.from(a.childNodes).filter(e=>e.nodeType===3).map(e=>_(e.textContent)).filter(Boolean).join(" ").trim()||_(a.textContent)}function gt(a,e){return _(a.getAttribute(e))}function pt(a,e){let t=a.getAttribute(e);if(!t){const r=a.getAttributeNames().find(n=>n.includes(e));r&&(t=a.getAttribute(r))}return _(t)}function ht(a){return a.value}function dt(a,e){if(!e)return;const t=_(a.textContent)?.toLowerCase(),r=e.toLowerCase();if(!(t!==r&&t!==`${r}:`))return _(a.nextElementSibling?.textContent??a.nextSibling?.textContent)}function ft(a){const e=getComputedStyle(a).backgroundImage;if(!(!e||!e.startsWith("url(")))return e.slice(5,-2)||void 0}function mt(a,e){const t=M(G(fe(a)),e);return typeof t=="number"?t+"":typeof t=="string"?_(t+""):void 0}function M(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?M(i,s):i}catch{return}}function _(a){if(a)return a?.replace(/(\n|\t)/g," ").trim()||void 0}function wt(a,e){if(e)try{return a.replace(new RegExp(e,"i"),"$1")}catch{}return a}function vt(a,e){if(e)try{return a.replaceAll(new RegExp(e,"gi"),"")}catch{}return a}function yt(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 l=t.trim();l.length>0&&e.push(l),t=""}else t+=i}const n=t.trim();return n.length>0&&e.push(n),e}var Rt=(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))(Rt||{}),$t=(a=>(a[a.ok=1]="ok",a[a.hidden=2]="hidden",a[a.deleted=3]="deleted",a))($t||{}),xt=(a=>(a[a.aggregator=0]="aggregator",a[a.scanlator=1]="scanlator",a))(xt||{}),Dt=(a=>(a[a.pending=0]="pending",a[a.completed=1]="completed",a[a.offline=2]="offline",a[a.incompat=3]="incompat",a))(Dt||{}),me=(a=>(a.id="id",a.name="name",a.slug="slug",a))(me||{}),K=(a=>(a.blank="about:blank",a.title="meta.title",a.reader="meta.reader",a))(K||{});function ae(a=0){return new Promise(e=>setTimeout(e,a))}const St=/(vol(ume)?|season)(\s*|-|\.)(\d+)/i,It=/^S([1-9])\s/i,Tt=/(ch(ap(t(er)?|\.)?|\.)?|#|episode\.?|capitolo\.?|capitulo\.?|bölüm\.?)(\s*|-)(\d+([_-~,.]\d+)?)/i,Pt=/\d+([_-~,.]\d+)?/,Ct=/[_-~,]/;function Mt(a){const e=a.match(St);if(e)return{volStr:e[0],volValueStr:e[4]};const t=a.match(It);return t?{volStr:t[0],volValueStr:t[1]}:{}}function B(a){if(!a)return;if(!isNaN(+a))return{chap:+a};const{volStr:e,volValueStr:t}=Mt(a),r=e?a.replace(e,"").trim():a,n=r.match(Tt),s=r.match(Pt),i=n?.[6],l=i??s?.[0];if(!l)return;const c=+l.replace(Ct,".");if(isNaN(c))return;const o=e&&t&&!isNaN(+t)&&a.indexOf(e)<a.indexOf(i?n[0]:s[0])?+t:void 0;return{vol:o===void 0||o<=0?void 0:o,chap:c}}async function Q(a,e=240){return new Promise(t=>{const r=new Image;r.crossOrigin="anonymous",r.onerror=()=>t(void 0),r.onload=()=>{const n=document.createElement("canvas"),s=n.getContext("2d"),i=Math.max(1,r.naturalWidth/e),l=r.naturalWidth/i,c=r.naturalHeight/i;n.width=l,n.height=c;const o=/iPad|iPhone|iPod/.test(navigator.userAgent);try{s.drawImage(r,0,0,l,c);const u=n.toDataURL(o?"image/jpg":"image/webp",o?.99:.8).split(",").slice(-1)[0];t(u)}catch{t(void 0)}},r.src=a})}async function Bt(a,e=240){const t=await jt(a);if(t)return await new Promise(async r=>{const n=Q(t,e),s=setTimeout(()=>r(void 0),100),i=await n;clearTimeout(s),r(i)})}async function jt(a){if(a.startsWith("blob:"))return a;try{const e=await fetch(a);if(e.status>=400)return;const t=await e.blob();return URL.createObjectURL(t)}catch{return}}function S(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=M(a,n);if(typeof i=="number"||i){if(typeof i!="string")return i;const l=i.replace(/(\n|\t)/g," ").trim();if(l){const c=te(l,s.map(ee));if(c)return c}}}}function j(a){if(a?.startsWith("window")){const e=a.indexOf(".");return e===-1?void 0:S(window,a.substring(e+1))}return G(a?d(a):document.querySelector("pre")?.textContent)}function I(a,e){if(typeof a=="number")return e?e(a):a}function m(a,e){if(typeof a=="string")return e?e(a):a}function L(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],h=u.group??"";r[h]=(r[h]??0)+1;const g=u.lang??"";u.vol!==void 0?n[g]=u.vol:n[g]!==void 0&&(u.inferVol=n[g])}const s=[],i={},l=e?.preferGroup,c=o=>o.lang??"";for(const o of t){const u=c(o),h=i[u],g=s[h];if(!(g&&g.chap===o.chap&&(g.vol===o.vol||g.vol===void 0||o.vol===void 0))){i[u]=s.length,s.push(o);continue}if(!l){g.vol===void 0&&o.vol!=null&&(s[h]=o);continue}g.group!==l&&(o.group==l||g.group&&!o.group||r[o.group??""]>r[g.group??""])&&(s[h]=o)}return s}const Lt=[{seconds:1,locales:{en:"sec",vi:"gi\xE2y",tr:"ikinci",es:"segunda"}},{seconds:60,locales:{en:"min",vi:"ph\xFAt",tr:"dakika"}},{seconds:3600,locales:{en:"hour",vi:"gi\u1EDD",tr:"saat",fr:"heure",it:"ora",es:"hora"}},{seconds:86400,locales:{en:"day",vi:"ng\xE0y",tr:"g\xFCn",fr:"jour",it:"giorno",es:"d\xEDa"}},{seconds:604800,locales:{en:"week",vi:"tu\u1EA7n",tr:"hafta",fr:"semaine",it:"settimana",es:"semana"}},{seconds:2592e3,locales:{en:"month",vi:"th\xE1ng",tr:"ay",fr:"mois",it:"mese",es:"mes"}},{seconds:31536e3,locales:{en:"year",vi:"n\u0103m",tr:"yil",fr:"an",it:"anno",es:"a\xF1o"}}],Ot=/^\d+$/;function we(a,e){const t=a?.toLowerCase();if(!t)return;const r=Date.now();if(t.includes("now"))return r;if(t.includes("yesterday"))return r-864e5;if(Ot.test(t))return+t;const n=new Date(t);if(n instanceof Date){const o=n.valueOf();if(!isNaN(o))return n.getHours()===0&&n.getMinutes()===0?Math.min(r,o+432e5):o}const s=Lt.find(o=>e&&o.locales[e]&&t.indexOf(o.locales[e])!==-1?!0:t.indexOf(o.locales.en)!==-1);if(!s)return;const i=t.split(" ").filter(Boolean),l=ve(i)??(e==="en"?ve(i,["a","an"]):void 0);if(!l)return;const c=r-l*s.seconds*1e3;return c>0?c:void 0}function ve(a,e){for(let t=0;t<a.length;t++){const r=a[t];if(e?.includes(r))return 1;const n=+r;if(n)return n<0?void 0:n}}function At(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 re(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 ne(a){if(!a)return;let e=a;e.startsWith("//")&&(e=`https:${e}`);try{return new URL(e)}catch{return}}function O(a){if(!(!a||typeof a!="string"))return a.includes("//")?ne(a)?.pathname:a}function Ut(a,e){const t=[...e],r=[];let n=!1,s=0;const i=Math.min(a.length,100);for(let c=0;c<i;c++){if(s>=10/2){const p=10-r.length;if(p>0){const f=c+p<=a.length?a.slice(c,c+p):t.slice(0,p);r.push(...f)}break}const o=a[c],u=o.id!==void 0,h=t.findIndex(p=>u&&p.id===o.id||p.slug===o.slug||p.name==o.name),g=h===-1?void 0:t.splice(h,1)[0];!g||g.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 l=[];for(let c=0;c<r.length;c++){const o=r[c];(o.changed||c<10)&&l.push(o)}return{hasMore:e.length<2||e.length-t.length<2,rawReleases:l}}function Et(a,e){const t={};return a.forEach(r=>{const n=r.chapters.reduce((s,i)=>{const l=i.lang||e||"";return s[l]||(s[l]=[]),s[l].push(i),s},{});Object.entries(n).forEach(([s,i])=>{const l=`${r.slug}:${s}`;t[l]?(t[l].chapters.push(...i),L(t[l].chapters)):t[l]={...r,lang:s===""?void 0:s,chapters:i}})}),Object.values(t)}function ye(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 $=(a=>(a.title="title",a.reader="reader",a.releases="releases",a.chapters="chapters",a.search="search",a))($||{}),Nt=Object.defineProperty,_t=(a,e,t)=>e in a?Nt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,A=(a,e,t)=>_t(a,typeof e!="symbol"?e+"":e,t);class H{constructor(e){A(this,"headless"),A(this,"siteId"),A(this,"spec"),A(this,"siteMeta"),A(this,"tags"),A(this,"context"),A(this,"methodsMap",{[$.title]:()=>this.getRawTitleData(),[$.reader]:()=>this.getRawReaderData(),[$.releases]:()=>this.getRawReleasesData(),[$.search]:()=>this.getRawSearchData(),[$.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){const r=await this.methodsMap[e](),n=!r&&(e===$.title||e===$.reader)&&await zt(this.spec);if(t&&!r&&!n)return;const s=location.origin+location.pathname;return{type:e,is404:n,specId:this.spec.id,siteName:this.getSiteName(e,r),favUrl:qt(),htmlLang:Ft(),url:s,data:r,spec:this.spec,context:this.context}}parseReaderUrl(e,t,r){const n=!this.siteId,s=t.includes("/");let i=s?e:this.siteMeta.readerBase;if(i.startsWith("/")||(i="/"+i),i.endsWith("/")||(i=i+"/"),!s)return n?{basePath:"",slug:`${i}${t}`}:{basePath:i,slug:t};const l=i.includes("{");let c=t;if(c[0]!=="/"&&(c.includes("/")||n&&!l))try{c=new URL(t,location.href).pathname}catch{}if(c.endsWith("/")&&(c=c.slice(0,-1)),l){const o=i.split("/").filter(Boolean),u=c.split("/").filter(Boolean);if(o.length<u.length){const h=u[o.indexOf("{lang}")]?.toLowerCase(),g=u[o.indexOf("{titleId}")],p=u[o.indexOf("{titleSlug}")];if(n)return{basePath:"",slug:c,lang:h,titleId:g,titleSlug:p};if(i=i.replace("{lang}",h).replace("{titleId}",g).replace("{titleSlug}",p),c.startsWith(i))return{basePath:i,slug:c.replace(i,""),lang:h,titleId:g,titleSlug:p}}}else if(!n&&c.startsWith(i))return{basePath:i,slug:c.replace(i,"")};return{basePath:"",slug:c}}parseTitleUrl(e){if(typeof e!="string")return{};const t=O(e);if(t===void 0)return{};if(this.siteMeta.single)return{slug:ye(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=Et(e.rawReleases,t);if(r.length)return this.context.oldRawReleases?Ut(r,this.context.oldRawReleases):{rawReleases:r,hasMore:!0}}getTagIdsFromNames(e){if(!e?.length)return;const t=this.normalizedTagsMap??(this.normalizedTagsMap=kt(this.tags)),r=e.map(n=>t[se(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===$.title)return t.name;if(e===$.reader)return t.title.name}const r=this.spec.name,n=(r&&d(r))??d('meta[property="og:site_name"]|attr:content');return n&&n.length>2?n:void 0}}A(H,"specId"),A(H,"siteId");function kt(a){const e={};return a.forEach(({id:t,name:r,altNames:n})=>{e[se(r)]=t,n&&n.forEach(s=>{e[se(s)]=t})}),e}function se(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 Wt()===404||a[404]&&await U(a[404],{lazy:!0,timeoutMs:5e3})?!0:document.title.toLowerCase().includes("not found")}function Wt(){try{return window.performance.getEntries().find(a=>a.entryType==="navigation")?.responseStatus}catch{return}}function qt(){return d('link[rel="icon"][sizes="32x32"],link[rel="icon"][sizes="192x192"],link[rel="apple-touch-icon"]|attr:href')}function Ft(){return d("html|attr:lang")||"en"}class y extends H{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 l=this.getJsonRawReleases(m(e.json),e)?.filter(c=>c.chapters.length);return l?.length?l:void 0}const t=e.chapter,r=await U(e.sel,{lazy:!0,all:!0});if(!r?.length)return;const n=Date.now(),s=r.slice(0,100).map(l=>{const c=d(e.url,l),o=O(c),u=d(e.name,l),h=d(e.at,l);if(!o||!u)return;const g=we(h,this.siteMeta.defaultLang);return{titleEl:l,id:d(e.id,l),path:o,name:u,lang:d(e.lang,l)?.toLowerCase(),at:g?Math.min(g,n):void 0}}).filter(Boolean);if(!s.length)return;const i=[];return await Promise.all(s.map(async l=>{const{path:c,titleEl:o,lang:u,at:h,...g}=l,{id:p,slug:f}=this.parseTitleUrl(c);if(!f)return;const w=g.id||p,v=await this.getChapters(t,{root:o,titleId:w,titleSlug:f,titleName:l?.name,lang:u})??[];v.length&&i.push({slug:f,chapters:u||h?v.map(b=>({...b,elIndex:void 0,lang:b.lang??u,ts:b.ts??h})):v,...g,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||d(e.id),s=await this.getChapters(e.chapter,{lazy:e.chapter?.lazy??!0,titleId:n,titleSlug:r,titleName:d(e.name)})??[],i=d(e.name);if(!i)return;const l=await this.getValidImgSrc(e.img,i),c=l&&this.context.includeImgBytes?await Bt(l):void 0,o=this.getFirstChapterUrl(),u=e.firstBtn,h=F(e.tags)?.map(f=>f.split(",")).flat().map(f=>f.trim()).filter(Boolean),g=d(e.type),p=F(e.langs)?.map(f=>f.toLowerCase());return{id:n||d(e.id),url:location.origin+location.pathname,slug:r,name:i,langs:p?.length?p:e.langs&&this.siteMeta.defaultLang?[this.siteMeta.defaultLang]:void 0,tags:this.getTagIdsFromNames([...h??[],...g?[g]:[]]),chapters:s,hasMoreChapters:e.hasMore?!!document.querySelector(e.hasMore):void 0,img:l,imgBytes:c,firstUrl:o,firstBtn:!o&&u&&document.querySelector(u)?u:void 0,trackers:this.getTrackersMap(e.trackers)}}getTrackersMap(e){if(!e)return;const t=d(e.mal),r=d(e.anl);if(!t&&!r)return;const n={};return t&&(n.mal=this.parseTrackerId(t)),r&&(n.anl=this.parseTrackerId(r)),n}parseTrackerId(e){return e.split("?")[0].split("#")[0].split("/").filter(Boolean).slice(-1)[0]}getFirstChapterUrl(){const e=d(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 C(33,30,()=>{const r=d(e)||d(`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})}getRawReaderTitleData(e){const t=this.spec.reader?.title;if(!t)return;const r=t.sel?document.querySelector(t.sel)??void 0:void 0,n=d(t.name,r);if(!n)return;const s=At(d(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||d(t.id,r)}}const i=d(t.url,r),{slug:l,id:c}=this.parseTitleUrl(i);if(!(!n||!i||(this.siteMeta.single?l===void 0:!l)))return{name:n,img:s,url:new URL(i,location.origin).href,slug:l,id:c||d(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=e.reader.content;if(!(!r||await y.verifyImgsCotainer(r)))return;const n=this.parseReaderUrl(t.readerBase,location.pathname,location.href),{slug:s,basePath:i,lang:l}=n,c=this.getRawReaderTitleData({id:n.titleId,slug:n.titleSlug});if(!c)return;const o=d(e.reader.group),{id:u,slug:h}=c,g=e.reader?.chapter,p=!!this.context.disableLazyChapters,f=!!this.context.includeHiddenChapters,w=await this.getChapters(g,{titleId:u,titleSlug:h,titleName:c.name,lang:l,lazy:f||!p,includeHiddenChapters:f,timeoutMs:f?3e3:25e3,includeIndex:!0,basePath:i,preferGroup:o})??[],v=d(e.reader.label)?.toLowerCase().replace(c.name.toLowerCase(),"");if(!v)return;const{vol:b,chap:R=0}=B(v)||{},k=this.findNeighborChapter({sel:e.reader.prev,basePath:i,titleUrl:c.url}),z=this.findNeighborChapter({sel:e.reader.next,basePath:i,titleUrl:c.url}),V=u??(()=>{const E=this.spec.reader?.title;if(!E?.id)return;const D=E.sel?document.querySelector(E.sel)??void 0:void 0;if(!(E.sel&&!D))return d(E.id,D)})();return this.finalizeRawReaderData({vol:b,chap:R,lang:l??d(e.reader.lang)?.toLowerCase()??(e.reader.lang?this.siteMeta.defaultLang:void 0),slug:s,basePath:i,group:o??d(e.reader.group),imgs:F(e.reader.imgs),title:{id:V,url:c.url,slug:h,name:c.name,langs:l?[l]:void 0,img:c.img,chapters:w,hasMoreChapters:!w.length&&!f&&!!this.context.disableLazyChapters&&!!g?.label}},{prevSlug:k,nextSlug:z})}async getRawChaptersData(){const e=this.siteMeta.chapters;if(e===K.blank)return;const t=e===K.reader,r=!e||e===K.title,n=t?(await this.getRawReaderData())?.title:r?await this.getRawTitleData():void 0,s=this.spec.chapters?.chapter,i=n?.slug??this.context.titleSlug,l=n?.id??this.context.rawId,c=this.context.lang,o=s?s.json?this.getJsonChapters(j(m(s.json)),{chapterSpec:s,basePath:re(this.siteMeta.readerBase,{titleSlug:i,titleId:l,lang:c})}):await this.getChapters(s,{titleId:l,titleSlug:i,titleName:n?.name,lazy:this.spec.chapters?.lazy,includeHiddenChapters:!0,lang:c}):n?.chapters;if(!o)return;const u=c?o.filter(h=>!h.lang||h.lang===c):o;return{chapters:u,title:n?{...n,chapters:[]}:await this.getTitleData(this.spec.chapters?.title),hasMore:!1,asc:!1,total:u.length}}async getRawSearchData(){const e=this.spec.search,t=this.context.lang;if(!e)return;const r=e.title;if(r.json){const o=this.getJsonRawReleases(m(r.json),r,t);return o?.length?{rawReleases:o}:void 0}e.delay?await ae(e.delay):e.loading&&await ae(500);const{chapter:n}=r,s=[],i=e.lazy?e.empty||e.loading?550:100:1;let l=0;const c=await C(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)&&++l>=3)return o});if(c)return await Promise.all(c.map(async o=>{const u=d(r.url,o),h=O(u),g=d(r.name,o),{slug:p,id:f}=this.parseTitleUrl(h);if(!h||!g||!p)return;const w=d(r.lang,o);w&&t&&w!==t||s.push({id:f||d(r.id,o),slug:p,name:g,img:d(r.img??"img|[attr:data-src,attr-contain:src]",o),lang:w,chapters:await this.getChapters(n,{root:o,titleId:f,titleSlug:p,titleName:g})??[]})})),{rawReleases:s}}getJsonRawReleases(e,t,r){const n=j(e),s=S(n,t.sel);if(!s?.length||!Array.isArray(s))return;const i=[];return s.forEach(l=>{const c=m(S(l,t.lang))?.toLowerCase();if(c&&r&&c!==r)return;const o=S(l,t.url),{id:u,slug:h}=I(o,b=>({id:void 0,slug:b+""}))??this.parseTitleUrl(O(o)),g=m(S(l,t.name));if(!h||!g)return;const p=u||S(l,t.id),f=I(p,b=>b+"")??m(p),w=t.chapter?this.getJsonChapters(l,{chapterSpec:t.chapter,basePath:re(this.siteMeta.readerBase,{titleId:f,titleSlug:h,lang:c})}):void 0,v=m(S(l,t.img),b=>{try{return new URL(b,location.origin).href}catch{return}});i.push({id:f,slug:h,name:g,lang:c,img:v,chapters:w??[]})}),i}getJsonChapters(e,{chapterSpec:t,basePath:r}){if(!e)return;const n=S(e,t.sel);if(!n)return;const s=Array.isArray(n)?n:[n];if(!s?.length)return;const i=[];return s.forEach(l=>{const c=S(l,t.label),o=I(c,b=>({vol:void 0,chap:b}))??B(m(c));if(!o)return;const u=S(l,t.url),h=m(u)??I(u,b=>b+""),g=h?this.parseChapterUrl(r,h):void 0,p=o.vol??S(l,t.vol),f=S(l,t.id),w=S(l,t.at),v=w?new Date(w).getTime():void 0;i.push({slug:g?.slug,vol:I(p)??m(p,b=>+b),chap:o.chap,id:m(f)??I(f,b=>b+""),lang:m(S(l,t.lang))?.toLowerCase(),group:m(S(l,t.group)),ts:v||void 0})}),i.length?L(i,{preferGroup:this.context.preferGroup}):void 0}async getChapters(e,{root:t,titleId:r,titleSlug:n,titleName:s,lang:i,includeHiddenChapters:l=!1,lazy:c=!0,timeoutMs:o,includeIndex:u,basePath:h,preferGroup:g}){const p=e?.sel;if(!p||!e.label)return;const f=p.includes("{titleSlug}")?n?p.replace("{titleSlug}",n):void 0:p;if(!f)return;let w;if(!(e.trigger&&(!l||(w=await U(e.trigger,{timeoutMs:5e3,lazy:!0}),!w))))return await C(c?o?o/50:200:1,50,async()=>{w&&(Z(w),await ae(50));const v=Array.from((t??document.documentElement)?.querySelectorAll(f));if(!v.length)return;const b=(v??[]).map((P,J)=>({id:d(e.id,P),label:d(e.label,P)?.toLowerCase(),url:d(e.url,P),at:d(e.at,P),lang:d(e.lang,P),group:d(e.group,P),elIndex:J})),R=s?.toLowerCase(),k=R&&!!b[0]?.label?.startsWith(R),z=(e.dismiss?(t??document.body).querySelector(e.dismiss):void 0)??w;if(z&&Z(z),!v?.length)return[];const V=b.map(({label:P})=>{if(!P)return;const J=k?P?.replace(R,"").trim():P;return B(J)}),E=h??re(this.siteMeta.readerBase,{titleId:r,titleSlug:n,lang:i}),D=Date.now(),ge=[];if(V.forEach((P,J)=>{if(!P)return;const{id:Ur,url:st,at:Er,lang:Nr,group:_r,elIndex:kr}=b[J],it=we(Er,this.siteMeta.defaultLang),Y={...P,id:Ur,lang:Nr?.toLowerCase(),group:_r,ts:it?Math.min(D,it):void 0};u&&(Y.elIndex=kr);const X=st?this.parseChapterUrl(E,st):void 0;X&&(Y.slug=X.slug,X.lang&&(Y.lang=X.lang)),ge.push(Y)}),!!ge.length)return L(ge,{preferGroup:g??this.context.preferGroup})})}parseChapterUrl(e,t){if(t?.startsWith("#"))return;if(t?.startsWith("http")&&!t.includes(`//${location.hostname}/`))return{slug:t};const r=O(t);if(r)return this.parseReaderUrl(e,r,t)}async isTitlePage(e){return!(!e||(e.sel||e.lazy)&&!await U(e.sel??e.name?.split("|")?.[0],{lazy:!!e.lazy}))}async isReaderPage(e,t){const r=e?.sel;return t&&!r?!1:!r||!!await U(r,{lazy:!!e.lazy})}static async verifyImgsCotainer(e){const t=e.split(",").map(r=>r.trim()).filter(Boolean).map(r=>`${r} img, ${r} canvas`).join(",");return!!await U(t,{lazy:!0,all:!1})}findNeighborChapter({sel:e,basePath:t,titleUrl:r}){const n=d(e);if(!n||n.startsWith("#")||n.startsWith("/#"))return;const s=O(n);if(s&&!(s===location.pathname||r===s||r===`${location.origin}${s}`))return this.parseReaderUrl(t,s,n).slug||void 0}finalizeRawReaderData(e,{prevSlug:t,nextSlug:r}={}){const n=e.title.chapters;if(!n.length){const o=y.extractVolChapFromSlug(t),u=y.extractVolChapFromSlug(r);return!o&&!u?e:{...e,prev:o?{...o,slug:t}:void 0,next:u?{...u,slug:r}:void 0}}let s,i,l,c;for(let o=0;o<n.length&&!(s&&(!t||l)&&!r&&c);o++){const u=n[o];!s&&(e.slug&&e.slug==u.slug||e.chap===u.chap&&(e.vol===u.vol||e.vol===void 0))?(s=u,i=o):!l&&t&&t===u.slug?l=u:!c&&r&&r===u.slug&&(c=u)}return i!==void 0&&(l??(l=n[i+1]),c??(c=n[i-1])),l&&!l.slug&&(l.slug=t),c&&!c.slug&&(c.slug=r),s&&!s.slug&&(s.slug=e.slug),{...e,inferVol:s?.inferVol,prev:l,next:c}}static extractVolChapFromSlug(e){if(!e)return;const t=e.split("-").filter(r=>r.length<10).join(" ");return B(t)}}var Gt=Object.defineProperty,Ht=(a,e,t)=>e in a?Gt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Vt=(a,e,t)=>Ht(a,e+"",t);class be extends y{async getRawReleases(){const e=Jt();if(!e)return;const t=await super.getRawReleases();if(!t)return;const r=[];return t.forEach(n=>{if(!n.name.endsWith("...")){r.push(n);return}const s=n.name.slice(0,-3),i=e.split(s)[1];if(!i)return;const l=i.indexOf('"');if(l===-1)return;const c=`${s}${i.substring(0,l)}`;r.push({...n,name:c})}),r}}Vt(be,"specId","asura");function Jt(){const a=Array.from(document.querySelectorAll("script:not([src])"));for(let e=0;e<a.length;e++){const t=a[e].textContent;if(t&&t.indexOf('{\\"latest\\":')!==-1)return t.replaceAll("\\","")}}function Kt(){return Math.random().toString(16).slice(2)}async function Qt({addListener:a,removeListener:e,transform:t,filter:r,handler:n,onTimeout:s,timeout:i,once:l}){return new Promise(c=>{a(h);const o=()=>l===!0&&e(h),u=i?setTimeout(()=>{o(),c(void 0),s?.()},i):void 0;async function h(g,...p){g=t?t(g):g,g!==void 0&&(!r||r(g,...p))&&(o(),c(g),n?.(g,...p),u&&clearTimeout(u))}})}async function Yt(a){return(await Qt({addListener:e=>window.addEventListener("message",e),removeListener:e=>window.removeEventListener("message",e),...a}))?.data}async function Xt(a){const{receiverWindow:e,timeout:t,targetOrigin:r,event:n,args:s}=a,i={reqId:Kt(),event:n,args:s};return(e||window)?.postMessage(i,r??"*"),(await Yt({filter:l=>l?.data?.resId===i.reqId,timeout:t??3e4,once:!0}))?.result}const T={isAny:!0};function x(a,...e){return Xt({event:"tk:fetchResult",args:{baseUrl:a,segments:e}})}var Zt=Object.defineProperty,ea=(a,e,t)=>e in a?Zt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ta=(a,e,t)=>ea(a,e+"",t);class Re extends y{async getRawReaderData(){const e=`https://${location.host}`,[t,r]=await Promise.all([x(e,"api","manga","info"),x(e,"api","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 l=B(s.readChapter?.title);if(l)return this.finalizeRawReaderData({basePath:i.basePath,slug:i.slug,...l,imgs:s.readChapter.pages.map(c=>new URL(c.image,location.origin).href),title:{url:`${e}/manga/${n.id}`,slug:n.id,name:n.title,tags:this.getTagIdsFromNames([n.type].filter(Boolean)),chapters:L(n.chapters.map(c=>({slug:c.id,chap:c.number})),{preferGroup:this.context.preferGroup})}})}}ta(Re,"specId","atsu");var aa=Object.defineProperty,ra=(a,e,t)=>e in a?aa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,na=(a,e,t)=>ra(a,e+"",t);class $e extends y{parseTitleUrl(e){return{slug:O(e)?.split("/").filter(Boolean)[1]}}async getRawReaderData(){const e=await super.getRawReaderData();if(e)return{...e,imgs:e.imgs?.map(t=>t.startsWith("https://k")?t.replace("https://k","https://n"):t)}}}na($e,"specId","bato");var sa=Object.defineProperty,ia=(a,e,t)=>e in a?sa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,la=(a,e,t)=>ia(a,e+"",t);class ie extends y{async getRawReaderData(){const e=await super.getRawReaderData();if(e)return{...e,imgs:e.imgs?.map(t=>t.startsWith("https://k")?t.replace("https://k","https://n"):t)}}}la(ie,"specId","bato3x");var oa=Object.defineProperty,ca=(a,e,t)=>e in a?oa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ua=(a,e,t)=>ca(a,e+"",t);class xe extends ie{parseChapterUrl(e,t){return{slug:t.split("/").filter(Boolean).slice(-1)[0]}}async getRawChaptersData(){const{rawId:e,titleSlug:t}=this.context,r=e??t?.split("-")[0];if(r)try{const n=await fetch(`${location.origin}/ap2/`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:"query get_comic_chapterList($comicId: ID!, $start: Int) { get_comic_chapterList(comicId: $comicId, start: $start) { id data { id dname title urlPath } }}",variables:{comicId:r,start:-1}})});if(!n.ok)return;const s=this.getJsonChapters(await n.json(),{basePath:this.siteMeta.readerBase,chapterSpec:{sel:"data.get_comic_chapterList",label:"data.dname",url:"data.urlPath"}});return s?{chapters:s}:void 0}catch{return}}}ua(xe,"specId","bato4x");function De(a){return String(a).normalize("NFKD").replace(/[\u0300-\u036f]/g,"").trim().toLowerCase().replace(/[^a-z0-9 -]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-")}var ga=Object.defineProperty,pa=(a,e,t)=>e in a?ga(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ha=(a,e,t)=>pa(a,e+"",t);class Se extends y{async getRawReleases(){const e=await super.getRawReleases();if(e?.length)return e.map(t=>({...t,slug:`${t.slug}-${De(t.name)}`}))}async getRawChaptersData(){const e=j(),t=I(M(e,"result.pagination.total"),n=>Math.ceil(n/100))||0,r=(await Promise.all(Array.from({length:Math.max(0,t)},async(n,s)=>{if(s==0)return this.parseChapters(e);try{const i=location.href.replace("page=1",`page=${s+1}`),l=await fetch(i);return this.parseChapters(await l.json())||[]}catch{return[]}}))).flat();return{chapters:L(r,{preferGroup:this.context.preferGroup})}}parseChapters(e){const t=[];return M(e,"result.items")?.forEach?.(r=>{const n=I(M(r,"chapter_id"),i=>i+""),s=I(M(r,"number"));!n||s===void 0||t.push({slug:n,chap:s,vol:I(M(r,"volume"))||void 0,lang:m(M(r,"language")),group:m(M(r,"scanlation_group.name")),ts:I(M(r,"created_at"))})}),t}}ha(Se,"specId","comix");var da=Object.defineProperty,fa=(a,e,t)=>e in a?da(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ma=(a,e,t)=>fa(a,e+"",t);class Ie extends y{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)}}}ma(Ie,"specId","dynasty");var wa=Object.defineProperty,va=(a,e,t)=>e in a?wa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ya=(a,e,t)=>va(a,e+"",t);class Te extends H{async getRawReleasesData(){const e=j();if(e)return this.finalizeRawReleasesData({rawReleases:e.manga.map(t=>({id:t.id?t.id+"":void 0,name:t.title,slug:t.slug,chapters:t.chapters.map(r=>this.praseRawChapter(r))}))})}async getRawSearchData(){const e=j();if(e)return{rawReleases:e.data.map(t=>({id:t.id?t.id+"":void 0,slug:t.slug,name:t.title,img:`${location.origin}/${t.cover}`,chapters:[]}))}}async getRawTitleData(){const{slug:e}=this.parseTitleUrl(location.pathname);if(!e)return;const t=await x(location.origin,"api","backend","api","manga",e);if(!t)return;const r=this.parseRawTitleData(t.value),n=this.context.includeImgBytes&&r.img?await Q(r.img):void 0;return{...r,imgBytes:n}}async getRawReaderData(){const{slug:e,titleSlug:t}=this.parseReaderUrl(this.siteMeta.readerBase,location.pathname,location.href);if(!e||!t)return;const[r,n]=await Promise.all([x(location.origin,"api","backend","api","manga",t),x(location.origin,"api","backend","api","chapters","by-number",t,e)]);if(!r||!n)return;const s=await this.parseRawTitleData(r.value),i=n.value;return{slug:e,chap:i.number,basePath:`/${location.pathname.split("/").filter(Boolean).slice(0,-1).join("/")}/`,imgs:i.pages.sort((l,c)=>l.order-c.order).map(l=>`${location.origin}${l.image.startsWith("/")?l.image:`/${l.image}`}`),title:s}}async getRawChaptersData(){const e=j();if(!e)return;const t=this.parseRawTitleData(e);return{chapters:t.chapters,title:{...t,chapters:[]}}}parseRawTitleData(e){return{id:e.id?e.id+"":void 0,url:`${location.origin}/${this.siteMeta.titleBase}/${e.slug}`,slug:e.slug,name:e.title,img:`${location.origin}/${e.cover}`,tags:this.getTagIdsFromNames([e.type,...e.genres.map(t=>t.name)].filter(Boolean)),chapters:e.chapters.map(t=>this.praseRawChapter(t)),hasMoreChapters:e.pagination.hasNextPage}}praseRawChapter(e){return{chap:e.number,slug:e.number+"",ts:new Date(e.createdAt||e.uploadedAt||e.updatedAt).getTime()}}}ya(Te,"specId","falcon");var ba=Object.defineProperty,Ra=(a,e,t)=>e in a?ba(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,$a=(a,e,t)=>Ra(a,e+"",t);class Pe extends y{async getRawTitleData(){const e=await super.getRawTitleData();if(e)return{...e,chapters:[{slug:"1",chap:0}]}}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(".")),l=m(d(".total_pages|text"),o=>+o)||1,c=Array.from({length:l},(o,u)=>`${n}${u+1}${i}`);return{...e,slug:"1",chap:0,imgs:c,title:{...e.title,chapters:[{slug:"1",chap:0}]}}}}$a(Pe,"specId","imhen");var xa=Object.defineProperty,Da=(a,e,t)=>e in a?xa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Sa=(a,e,t)=>Da(a,e+"",t);class Ce extends y{async getRawTitleData(){const e=await super.getRawTitleData();if(e)return{...e,chapters:Be()}}async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=Be();if(t.length)return{...e,title:{...e.title,img:Me(e.title.slug),chapters:t}}}async getRawSearchData(){const e=await super.getRawSearchData();if(e)return{...e,rawReleases:e.rawReleases.map(t=>({...t,img:Me(t.slug)}))}}}Sa(Ce,"specId","kagane");function Me(a){return`https://api.${location.host}/api/v1/series/${a}/thumbnail`}function Be(){const a=["initialBooksData","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),l=G(i.slice(i.indexOf("["),i.indexOf("}]")+2).replaceAll("\\",""));if(!l?.length||!Array.isArray(l))return[];try{const c=[];return l.map(o=>{const u=B(o.name);u&&c.push({...u,slug:o.id,ts:o.created?new Date(o.created).getTime():void 0})}),L(c)}catch{return[]}}}return[]}var Ia=Object.defineProperty,Ta=(a,e,t)=>e in a?Ia(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Pa=(a,e,t)=>Ta(a,e+"",t);class le extends y{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:me.name,trailing:t.endsWith("/"),defaultLang:d("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:O(e);return ye(t,"/").split("/").slice(0,-1).join("/")}}Pa(le,"specId","madara");function Ca(a){if(!a)return;const e=a.sel?document.querySelector(a.sel)??void 0:void 0;return d(a.url,e)}var Ma=Object.defineProperty,Ba=(a,e,t)=>e in a?Ma(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ja=(a,e,t)=>Ba(a,e+"",t);class je extends y{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}})}}ja(je,"specId","mangaball");async function Le(a){const e=await C(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()})})}),L(t,{preferGroup:a})}var La=Object.defineProperty,Oa=(a,e,t)=>e in a?La(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Aa=(a,e,t)=>Oa(a,e+"",t);const Ua={a:.1,b:.2,c:.3,d:.4};class Oe extends y{parseTitleUrl(e){return{slug:O(e)?.split("/").filter(Boolean)[1]}}async getRawReleases(){const e=j()?.data;if(!e)return;const t=[];return e.forEach(({relationships:r,attributes:n,id:s})=>{const i=r.find(({type:h})=>h==="manga"),l=N(n.volume),c=N(n.chapter);if(c===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:l,chap:c,lang:n.translatedLanguage,ts:new Date(n.readableAt).valueOf()}]})}),t}async getRawTitleData(){const e=`https://api.${location.host}/manga/`,[t,r]=await Promise.all([x(e,T),x(e,T,"feed")]);if(!t||!r)return;const n=r.value.data?.map?.(c=>{const{attributes:o,id:u}=c;if(typeof o!="object"||typeof u!="string"||!u)return;const{externalUrl:h,title:g,volume:p,chapter:f,translatedLanguage:w}=o;return{slug:h||u,label:g||void 0,vol:N(p),chap:N(f),lang:w||"en",ts:new Date(o.readableAt).valueOf()}}).filter(c=>c?.chap!=null)??[],{data:s}=t.value;if(!s)return;const i=Ue({data:s,getTagIdsFromNames:c=>this.getTagIdsFromNames(c)});if(!i)return;const l=this.context.includeImgBytes&&i.img?await Q(i.img):void 0;return{...i,imgBytes:l,chapters:L(n,{preferGroup:this.context.preferGroup}),hasMoreChapters:(r.value.total||0)>(r.value.limit||0)}}async getRawReaderData(){const e="https://api.mangadex.org/",[t,r,n]=await Promise.all([x(e,"chapter",T),x(e,"at-home","server",T),x(e,"manga",T,"aggregate")]);if(!t||!r||!n)return;const s=t.value.data,{volume:i,chapter:l,externalUrl:c,translatedLanguage:o}=s.attributes||{},{baseUrl:u,chapter:{data:h,dataSaver:g,hash:p}}=r.value,f=s.relationships?.find?.(D=>D.type==="manga");if(!f)return;const w=Ue({data:f,getTagIdsFromNames:D=>this.getTagIdsFromNames(D)});if(!w||typeof n.value.volumes!="object")return;const v=Ae(n.value,{preferGroup:this.context.preferGroup})??[];(typeof l!="string"||l==="none")&&!v.length&&v.push({chap:0,slug:s.id});const b=v.findIndex(D=>D.slug===s.id),R=s.relationships?.find?.(D=>D.type==="scanlation_group"),k=u.endsWith("/")?u:u+"/",z=!!localStorage.getItem("md")?.includes?.('"dataSaver":true'),V=`${k}${z?"data-saver":"data"}/`,E=((z?g:h)??[]).map?.(D=>`${V}${p}/${D}`)??[];return{externalUrl:c,vol:N(i),inferVol:v[b]?.inferVol,chap:N(l)||0,imgs:E,lang:o,slug:s.id,prev:v[b+1],next:v[b-1],basePath:"/chapter/",group:R?.attributes?.name,groupUrl:R?.attributes?.website,isWebtoon:f?.attributes?.tags?.some(D=>D.attributes.name.en==="Long Strip"),title:{...w,chapters:v}}}async getRawChaptersData(){const e=j();if(!e)return;let t;try{t=Ae(e,{preferGroup:this.context.preferGroup})}catch{return}if(t)return{chapters:t,lang:this.context.lang??"en",asc:!1,hasMore:!1,total:t.length}}}Aa(Oe,"specId","mangadex");function N(a){if(typeof a!="string"||a==="none")return;const e=parseFloat(a);if(e!==e)return;const t=a[a.length-1];return e+(Ua[t]??0)}function Ae(a,{preferGroup:e}){if(typeof a.volumes!="object")return;const t=Object.values(a.volumes).map(({volume:r,chapters:n})=>{const s=N(r);return Object.values(n).map(({id:i,chapter:l})=>{const c=N(l);if(c!==void 0)return{vol:s,chap:c,slug:i}})}).flat().filter(Boolean).reverse();return L(t,{preferGroup:e})}function Ue({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:l,tags:c,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 h=Ea(),g=(i??[])?.map?.(R=>typeof R=="string"?R:void 0).filter(Boolean)??[],p=g.filter(R=>R&&(!h||h.includes(R))),f=l?.map?.(R=>{const[[,k]=[]]=Object.entries(R);return k}),w=n?.find?.(R=>R.type==="cover_art")?.attributes?.fileName,v=w?`https://mangadex.org/covers/${t}/${w}.256.jpg`:void 0,b=(c||[]).map(R=>R?.attributes?.name?.en).concat(o).filter(Boolean);return{url:`${location.origin}/title/${t}`,slug:t,name:u,altNames:f,langs:p.length>0?p:g.length>0?g:["en"],img:v,tags:e(b)}}function Ea(){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 Na=Object.defineProperty,_a=(a,e,t)=>e in a?Na(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ka=(a,e,t)=>_a(a,e+"",t);class Ee extends y{async getRawReaderData(){if((await U(".current-viewtype",{lazy:!0,all:!1}))?.textContent?.trim().toLowerCase()!=="volume")return await super.getRawReaderData()}async getRawChaptersData(){const e=this.context.lang??"en",t=await U(`.tab-content[data-name="chapter"] a.dropdown-item[data-code="${e.toUpperCase()}"]`,{lazy:!0,all:!1});if(t)return Z(t),await U(`.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}))}}}ka(Ee,"specId","mangafire");var za=Object.defineProperty,Wa=(a,e,t)=>e in a?za(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,qa=(a,e,t)=>Wa(a,e+"",t);class Ne extends y{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),l=i[i.length-1];return{basePath:s,slug:l.startsWith("pg-")?i.slice(0,-1).join("/"):n}}async getImgs(){const e=await C(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(Ne,"specId","mangago");var Fa=Object.defineProperty,Ga=(a,e,t)=>e in a?Fa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ha=(a,e,t)=>Ga(a,e+"",t);class _e extends y{async getRawTitleData(){const e=`https://backend.${location.host}`,t=await x(e,"chapters-with-ids",T,T),r=await super.getRawTitleData();if(!(!t?.value||!r))return{...r,langs:await Va(),chapters:oe(t.value)}}async getRawChaptersData(){const e=j();if(e)return{chapters:oe(e)}}async getRawReaderData(){const e=`https://backend.${location.host}`,[t,r]=await Promise.all([x(e,"chapters-with-ids",T,T),x(e,"read",T)]);if(!t?.value||!r?.value?.length)return;const n=await super.getRawReaderData();if(!n)return;const s=new URLSearchParams(location.search).get("number")??"0";return{...n,slug:`${n.slug}?number=${s}`,imgs:r.value,title:{...n.title,chapters:oe(t.value)}}}}Ha(_e,"specId","mangahaven");async function Va(){const a=document.querySelector('[role="tabpanel"] button');if(!a)return;const e=document.createElement("style");e.innerHTML="[data-radix-popper-content-wrapper] { display: none !important; }",document.head.appendChild(e),a.click();const t=await C(50,10,()=>F('img[src*="/flags/"]|attr:src|pattern:.+/(.+).svg'));return a.click(),setTimeout(()=>document.head.removeChild(e),1e3),t}function oe(a){const e=[];return a?.forEach?.(t=>{const r=+t.chapter;isNaN(r)||!t.id||e.push({chap:r,slug:`${t.id}?number=${t.chapter}`,lang:t.lang?.toLowerCase?.()})}),e}var Ja=Object.defineProperty,Ka=(a,e,t)=>e in a?Ja(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Qa=(a,e,t)=>Ka(a,e+"",t);class ke extends y{parseTitleUrl(e){return{slug:O(e)?.split("/").filter(Boolean)[1]}}}Qa(ke,"specId","mangapill");var Ya=Object.defineProperty,Xa=(a,e,t)=>e in a?Ya(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Za=(a,e,t)=>Xa(a,e+"",t);class ze extends y{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]}))}}}Za(ze,"specId","mangaplus");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 We extends le{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 m(r)??I(r,n=>n+"")}}ar(We,"specId","mangastream");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 qe extends y{async getRawReaderData(){const e=await super.getRawReaderData();return!e||!e.title.chapters.length?e:{...e,prev:e.prev?{...e.prev,slug:ce(e.title.slug,e.prev.slug)}:void 0,next:e.next?{...e.next,slug:ce(e.title.slug,e.next.slug)}:void 0,title:{...e.title,chapters:e.title.chapters.map(t=>({...t,slug:ce(e.title.slug,t.slug)}))}}}}sr(qe,"specId","mangatime");function ce(a,e){if(e)return`/manga/${a}/chapter-${e}`}var ir=Object.defineProperty,lr=(a,e,t)=>e in a?ir(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,or=(a,e,t)=>lr(a,e+"",t);class Fe extends y{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=I(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=(+(d(".page_select .select|text")||"1")||1)-1,i=r.replace(n,""),[l,c]=i.split("."),o=l.length,u=+l-s,h=u+t-1,g=[];for(let p=u;p<=h;p++)g.push(`${n}${(p+"").padStart(o,"0")}${c?`.${c}`:""}`);return{...e,imgs:g}}parseChapterUrl(e,t){return this.parseReaderUrl(e,Ge(t),t)}}or(Fe,"specId","mangatown");function Ge(a){return a.replace(location.origin,"").replace("//","/")}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,gr=(a,e,t)=>ur(a,e+"",t);class He extends y{async getRawReaderData(){const e=await super.getRawReaderData();return e&&{...e,slug:e.slug.split("/").slice(0,-1).join("/")||e.slug.split("/")[0]}}}gr(He,"specId","mangaworld");var pr=Object.defineProperty,hr=(a,e,t)=>e in a?pr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,dr=(a,e,t)=>hr(a,e+"",t);class Ve extends y{async getRawTitleData(){const e=await super.getRawTitleData();if(e)return{...e,hasMoreChapters:e.chapters.length===50}}}dr(Ve,"specId","mgeko");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,wr=(a,e,t)=>mr(a,e+"",t);class Je extends H{async getRawReleasesData(){}async getRawSearchData(){}async getRawTitleData(){const e=await Ke();if(!e)return;const t=d("#cover img|[attr:data-src,attr-contain:src]")??e.img;return{...e,img:t,imgBytes:this.context.includeImgBytes&&e.img?await Q(e.img):void 0}}async getRawReaderData(){const e=await Ke();if(!e)return;const t=d("#image-container img|[attr:data-src,attr-contain:src]"),r=ne(t);if(!r)return;const n=r.pathname.split("/").filter(Boolean).slice(0,-1).join("/"),s=`${r.origin}/${n}/`;return{chap:0,slug:"1",basePath:e.url.replace(location.origin,"").slice(1),imgs:e.pages.map((i,l)=>`${s}${l+1}.${Qe(i)}`),title:{name:e.name,slug:e.slug,url:e.url,chapters:[{slug:"1",chap:0}]}}}async getRawChaptersData(){const e=await this.getRawTitleData();if(!e)return;const{chapters:t,...r}=e;return{title:{...r,chapters:[]},chapters:t}}}wr(Je,"specId","nhentai");async function Ke(){const a=await C(100,20,()=>window._gallery);if(!a?.id||!a?.title||!a?.images?.pages)return;const{title:e,images:{pages:t,cover:r},media_id:n}=a;return{name:e.pretty??e.english??e.japanese,slug:a.id+"",url:`${location.origin}/g/${a.id}`,chapters:[{slug:"1",chap:0}],pages:t.map(s=>s.t??"w"),img:await vr(n,r.t)}}async function vr(a,e){if(!a||!e)return;const t=Qe(e),r=(await C(10,20,()=>window._n_app))?.options?.thumb_cdn_urls?.[0];if(r)return`https://${r}/galleries/${a}/cover.${t}`}function Qe(a){return{j:"jpg",p:"png",g:"gif",w:"webp"}[a]??"webp"}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 Ye extends y{finalizeRawReaderData(e,{prevSlug:t,nextSlug:r}={}){if(!e.title.chapters.length){const n=B(t?.split(".").slice(0,-1).join(".")),s=B(r?.split(".").slice(0,-1).join("."));return!n&&!s?e:{...e,prev:n?{...n,slug:t}:void 0,next:s?{...s,slug:r}:void 0}}return super.finalizeRawReaderData(e,{prevSlug:t,nextSlug:r})}}Rr(Ye,"specId","rawkuma");var $r=Object.defineProperty,xr=(a,e,t)=>e in a?$r(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Dr=(a,e,t)=>xr(a,e+"",t);class Xe extends y{async getRawTitleData(){const e=await super.getRawTitleData();if(!e)return;const t=F(".info-detail__row > .genre-btn,.info__right .stats__row:first-child|text")?.map(r=>[r,...r.split(" ")]).flat();return Ze({...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:{...Ze({...e.title,url:t,tags:[]},".episode-list .js-ep-cnt"),hasMoreChapters:!1}}}async getRawChaptersData(){const{rawId:e,skip:t}=this.context,r=1e3,n=t?Math.floor(t/1e3)+1:1;try{const s=await fetch(`/series/${e}/episodes?page=${n}&sort=NEWEST&max_limit=${r}`);return Sr(await s.json())}catch{return}}parseTitleUrl(e){if(!e)return{};const t=e.split("/").filter(Boolean);return{slug:t[1]??t[0]}}}Dr(Xe,"specId","tapas");function Ze(a,e){const t=Ir(e)>20;return{...a,chapters:t?[]:a.chapters,hasMoreChapters:t}}function Sr(a){const e=a?.data?.episodes;if(!Array.isArray(e))return;const t=e.map(n=>({chap:n.pending_scene??n.scene,slug:n.id+"",ts:new Date(n.publish_date)?.valueOf?.()||void 0})),r=a?.data?.pagination;return{chapters:t,total:r?.total??t.length,hasMore:!!r?.has_next}}function Ir(a){return+(document.querySelector(a)?.textContent?.trim().split(" ")[0]||0)}var Tr=Object.defineProperty,Pr=(a,e,t)=>e in a?Tr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Cr=(a,e,t)=>Pr(a,e+"",t);class et extends y{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(l=>({...l,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("/"),l=`${i.slice(0,4).join("/")}/list?title_no=${r}`,c=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:l,titleName: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:l,slug:l,name:s,langs:[o],chapters:(c??[]).map(u=>({...u,lang:o})),hasMoreChapters:!1}}}async getReaderImgs(){const e=F("#_imageList img|[attr:data-url,attr:src]");return e?.length?e:await C(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=ne(r);return{basePath:"",slug:n.pathname+n.search}}return{basePath:"",slug:r}}}Cr(et,"specId","webtoon");function Mr(a){if(a)return typeof a=="string"||Array.isArray(a)?a.length?a:void 0:typeof a=="object"?Object.keys(a).length?a:void 0:a}var Br=Object.defineProperty,jr=(a,e,t)=>e in a?Br(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Lr=(a,e,t)=>jr(a,e+"",t);class tt extends y{async getRawReleases(){const e=j();if(!e?.data?.length)return;const t=[];return e.data?.forEach(r=>{const n=B(r.chapter)?.chap,s=ue(r.relationships?.manga);!s||n===void 0||t.push({...s,chapters:[{vol:+r.vol||void 0,chap:n,slug:r.id,lang:m(r.lang),ts:m(r.published_at,i=>new Date(i).getTime())}]})}),t}async getRawTitleData(){const e=await super.getRawTitleData();if(!e)return;const t=`https://api.${location.host}`,[r,n]=await Promise.all([x(t,"manga",e.id??T),x(t,"manga",e.id??T,"chapters")]),s=r?.value?.relationships?.available_languages?.map?.(i=>m(i)).filter(Boolean);if(e.langs=Mr(s),n){const i=[];n.value.data?.forEach(l=>{const c=B(l.chapter),o=m(l.id);!c||!o||i.push({vol:+l.volume||void 0,chap:c.chap,slug:o,lang:m(l.language),group:m(l.relationships?.groups?.[0]?.name),ts:m(l.created_at,u=>new Date(u).getTime())})}),i.length&&(e.chapters=i,e.hasMoreChapters=n.value.total>n.value.limit)}return e}async getRawReaderData(){const e=this.parseReaderUrl(this.siteMeta.readerBase,location.pathname,location.href),t=e.slug.split("/").filter(Boolean)[0],r=`https://api.${location.host}`,[n,s]=await Promise.all([x(r,"chapter",t),x(r,"manga",T,"aggregate")]);if(!n||!s)return;const i=n.value,l=I(+i.chapter),c=i.relationships?.manga,o=ue(c);if(!o||l===void 0)return;const u=m(i.language),h=m(i.relationships?.groups?.[0]?.name),g=c.relationships?.tags?.map(v=>v.name)?.filter(Boolean),p=this.parseAggregateChapter(s.value),f=`${i.node}/data/${t}/`,w=i.data_optimized?.map?.(v=>`${f}${v.name}`);return this.finalizeRawReaderData({basePath:e.basePath,slug:`${t}/1`,vol:+i.volume||void 0,chap:l,lang:u,group:h,title:{...o,url:`${location.origin}/title/${o.id}/${o.slug}`,tags:g?this.getTagIdsFromNames(g):void 0,langs:s.value.languages?.map(v=>m(v)).filter(Boolean),chapters:p},imgs:w})}async getRawChaptersData(){const e=j();return e?{chapters:this.parseAggregateChapter(e)}:void 0}parseAggregateChapter(e){const t=e.groups?.map?.(s=>m(s?.name)),r=e.langs?.map?.(s=>m(s)).filter(Boolean),n=[];return e.chapters?.forEach(s=>{const i=B(s.chapter);if(!i)return;const l=+s.volume||void 0,c=i.chap;Object.entries(s.entries||{}).forEach(([o,u])=>{const h=m(u.published_at,p=>new Date(p).getTime()),g=I(u.language,p=>r?.[p]);u?.groups?.forEach(p=>{n.push({vol:l,chap:c,slug:o,lang:g,group:t[p],ts:h})})})}),L(n,{preferGroup:this.context.preferGroup})}async getRawSearchData(){try{const e=new URLSearchParams(location.search).get("title");if(!e)return;const t=await fetch(`https://api.${location.host}/manga?title=${encodeURIComponent(e)}&limit=42`);if(!t.ok)return;const r=await t.json(),n=[];return r?.data?.forEach?.(s=>{const i=ue(s);i&&n.push(i)}),{rawReleases:n}}catch{return}}}Lr(tt,"specId","weebdex");function ue(a){if(!a)return;const e=a?.relationships?.cover;return{id:a.id,slug:De(a.title),name:a.title,img:e?`https://srv.notdelta.xyz/covers/${a.id}/${e.id}${e.ext}`:void 0,chapters:[]}}const Or=[be,Re,$e,ie,xe,Se,Ie,Te,Pe,Ce,le,je,Oe,Ee,Ne,_e,ke,ze,We,Ve,qe,Fe,He,Je,Ye,Xe,et,tt];function at(a){const e=Or.find(t=>t.specId===a.spec.id)??y;return new e(a)}async function Ar(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 q(n.map(i=>s.getRawPageByType(i,n.length>1)))}return await q((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(l=>i.getRawPageByType(l,!0))}).flat())}function rt(a,e){if(location.pathname==="/"&&!a.single)return[];const{titleBase:t,readerBase:r}=a,n=location.pathname.split("/").filter(Boolean),s=nt(n,r),i=nt(n,t);if(s&&i)return[$.reader,$.title];const l=[];return!i&&(s!==!1||e)&&l.push($.reader),!s&&(i!==!1||e)&&l.push($.title),!l.length&&e?[$.reader,$.title]:l}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 l=!1;for(let c=0;c<t.length;c++){const o=t[c];if(o[0]!=="{"){if(o!==a[c])return!1;l=!0}}if(l&&i===(s?0:1))return!0}W.PageType=$,W.scrape=Ar}));
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "trackkun-dom",
3
3
  "author": "endyquang",
4
- "version": "2.17.3",
4
+ "version": "2.17.4",
5
5
  "license": "UNLICENSED",
6
6
  "description": "MP DOM parser & configurations",
7
7
  "main": "index.js",