trackkun-dom 2.3.0 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/adBlocker.json CHANGED
@@ -1 +1 @@
1
- {"hosts":["shop","top","pubfuture-ad.com","bidgear.com","googlesyndication.com","flytechb.com","roledale.com","e-planning.net","360yield.com","creativecdn.com","cpmrevenuegate.com","id5-sync.com","33across.com","nicelybacked.com","app-lite.com","shopee.vn","giftsacred.com","wugroansaghadry.com","dm2d.com","baltitilaite.com","topworkredbay.shop","typhonsdiscal.top","bassaqueued.top","hlnymphon.shop","vidiconmaskers.shop","hungrycedula.shop","ekamsply.com","bmndx.com","rtmark.net","e7z9t4x6a0v5mk3zo1a0xj2z7c6g8sa6js5z7s2c3h9x0s5fh3a6sjwb8q7m.xyz","phumsise.com","chumsaf.com","ad.baovip79.biz","uk88.top","stathome.org","outbrain.com","kismetrosland.life","d3n7ct9nohphbs.cloudfront.net","rlcdn.com","rfihub.com","stoolsocman.top","malthuscorno.shop","farcivinage.shop","fixatealaloi.top","footlogmerida.shop","attalidhatters.shop","ichthusthar.top","vingtunacroter.top","carbarnbonang.shop","doubleclick.net","acscdn.com","viglink.com","outheelrelict.com","netpub.media","cinderycandor.com","coaphumewy.net","vntsm.io","ad-delivery.net","radioonlinehd.net","a-ads.com","adskeeper.com","goomaphy.com","t7cp4fldl.com","endowmentoverhangutmost.com","vlitag.com","addthis.com","adschill.com","upblowcorbed.top","pubfuture.com","xylidichiatus.shop","jzbvwqeowwwoz.top","yockingdey.shop","infolinks.com","prospectprefer.com","benchsuited.com","busyexit.com","realsrvcdn.com","adhub.digital","stoachdarts.com","godpvqnszo.com","prplad.com","openx.net","socdm.com","cebidsbessel.com","vdo.ai","imasdk.googleapis.com","noshelfrequired.com","weinsteinandmiller.com","earthenicings.com","trotolhonor.com","zqvee2re50mr.com","waisheph.com","groapeeque.com","umbretalen.com","guigebichir.website","divvyprorata.com","dummieseardrum.com","hbcdn.net","falcatayamalka.com","admatic.com.tr","ppcnt.pro","gdpr.web0.eu","sowfootsolent.com","%20sowfootsolent.com%20","flarby.com","web0.eu","y8z5nv0slz06vj2k5vh6akv7dj2c8aj62zhj2v7zj8vp0zq7fj2gf4mv6zsb.me","pemsrv.com","magsrv.com","tsyndicate.com","xlviirdr.com","org.uk","funnelgloveaffable.com","wordsnought.com","fictionfittinglad.com","wrestcut.com","obediencechainednoun.com","scratchconsonant.com","pubadx.one","pestholy.com","mv.netprotect","microsoftonline.com","securly.com","t-mobile.at","bihussfoob.net","doruffleton.com","tenmrwwk.com","fcoexcuf.com","yxextvgvbbhfuff.com","crwdcntrl.net","mcheaprjnve.com","btcijivtsvph.com","yssmiccrhxiru.com","brand-display.com","ads.linkedin.com","xwnutgihjjkadbu.com","affec.tv","prplads.com","crockerydestructivespoken.com","lwonclbench.com","purpleads.io","abrhydona.com","taxismaned.top","viewyentreat.guru","foramscoypou.com","188.42.84.12","taiiwin.vin","licensekey2018.com","caribedkurukh.com","tzegilo.com","casibom.io","jubusvaleur.top","intimalsejoin.top","squeaksgridded.top","cussingversate.top","newcrystalcommunications.com","gypperywyling.com","wpadmngr.com","mc.yandex.ru","flinttovaria.com","bitonclick.com","fuzzyvisuals.com","mbidadm.com","23.109.170.2","pubmatic.com","invstatic101.creativecdn.com","antiadblocksystems.com","d3cod80thn7qnd.cloudfront.net","ndrrbpgmjpsng.com","uwolvsazk.com","chaseherbalpasty.com","adsco.re","lavangataled.com","betteradsystem.com","d2kk0o3fr7ed01.cloudfront.net","abtfliping.top","eloawiphi.net","dantaradiohd.net","liadm.com","jatosbathkol.com","links.services.disqus.com","tempest.services.disqus.com","muthfourre.com","koaptouw.com","exinesriles.com","mxhnkn.pro","blurbreimbursetrombone.com","awwagqorqpty.com","clobberprocurertightwad.com","coosync.com","bncloudfl.com","bullionglidingscuttle.com","btoomlalk.com","x8.games","mplmncb.com","shakingtacklingunpeeled.com","bankingbloatedcaptive.com","xibet.com","divisiondrearilyunfiled.com","isolatedovercomepasted.com","profitsfly.com","massifbramble.com","babistmucuses.com","urgingslaurae.com","greatmidship.com","oxbet.com","whoanebsos.net","lanky-bar.com","glizauvo.net","teksishe.net","hottedholster.com","spokanchap.com","dependsmoscow.com","akalibalboas.com","viewdeos.com","d11enq2rymy0yl.cloudfront.net","aukveygibngnjg.com","xadsmart.com","bqpvduxtfhwsd.com","qjeirnapocqcy.com","zxomvphodwdpcs.com","recordedthereby.com","proftrafficcounter.com","sympathizecrewfrugality.com","capaciousdrewreligion.com","jobetartane.com","amon1.net","bulkconflictpeculiarities.com","zodiacdinner.com","peanutrefusesplit.com","naupsithizeekee.com","ectypedechlog.com","topcpmcreativeformat.com","chaungourtee.com","tektosfolic.com","dapcerevis.shop","captorbaryton.com","wilfreddrear.shop","arvigorothan.com","cassabahotcake.top","craxzapas.com","ovologysnoops.com","oaphoace.net","h12-media.com","craniolgozzan.com","cuinageaquilid.com","laxativestuckunclog.com","earringsatisfiedsplice.com","childlessporcupinevaluables.com","appointeeivyspongy.com","flaxdescale.com","flatjeep.com","dtscout.com","scakuvap.com","occasionedcaneturner.com","unasonoric.com","tripsisvellums.com","zoeacaring.com","radioonlinehd.s3.amazonaws.com","gekeebsirs.com","pricklymine.com","pointlessplan.pro","coafeerapheepho.net","calculatingvoice.com","madurird.com","pointedpleasure.com","visariomedia.com","d13k7prax1yi04.cloudfront.net","xcafcyxddc.com","pbljxppwurd.com","peuru.com","streamtheworld.com","rubiconproject.com","adtelligent.com","zemanta.com","adswizz.com","chambulwacs.com","onclckmn.com","1xbetm.info","vealedincite.com","a11ybar.com","optvz.com","afcdn.net","gloutanacard.com","gollarpulsus.com","theetheks.com","bb2r.com","outoctillerytor.com","spacemancreativedom.net","ptougeegnep.net"],"css":".ad-topMobile,.ad,.ads-container,.ads,.adsbygalaksion,.adsbygoogle,.code-block,.display-banner,.radio-ad,#radio_content,#content *[class*=\"bg-ssp-\"],#adplus-anchor,#fixedban,#noktaplayercontainer,#p_6314647,#psdn-slot,#stickyplayervideoclose,#teaser1,#teaser3,*[class^=\"ad-\"],*[class^=\"ad_\"],*[class$=\"-ad\"],*[class$=\"_ad\"],*[class*=\"-ad-\"],*[class*=\"_ad_\"],*[class^=\"ads-\"],*[class^=\"ads_\"],*[class$=\"-ads\"],*[class$=\"_ads\"],*[class*=\"-ads-\"],*[class*=\"_ads_\"],*[data-adunit],*[data-google-query-id],*[id*=\"_ad_\"],*[id*=\"-ad-\"],*[id^=\"ad_\"],*[id^=\"ad-\"],*[id$=\"_ad\"],*[id$=\"-ad\"],*[id*=\"_ads_\"],*[id*=\"-ads-\"],*[id^=\"ads_\"],*[id^=\"ads-\"],*[id$=\"_ads\"],*[id$=\"-ads\"],*[id^=\"pf-\"],*[id^=\"publift-\"],iframe[src*=\"adata\"],iframe[src*=\"ad.\"],iframe[src*=\"ads.\"],iframe[src*=\"/ad\"],iframe[src*=\"/A=\"],iframe[src*=\"/click\"],iframe[src*=\"?click\"],iframe[src*=\"?banner\"],iframe[src*=\"=click\"],iframe[src*=\"clickurl=\"],iframe[src*=\".atwola.\"],iframe[src*=\"spinbox.\"],iframe[src*=\"transfer.go\"],iframe[src*=\"adfarm\"],iframe[src*=\"adfarmadSpace\"],iframe[src*=\"adserver\"],iframe[src*=\"adjuggler\"],iframe[src*=\".banner\"],iframe[src*=\"bluestreak\"],iframe[src*=\"doubleclick\"],iframe[src*=\"/rd.\"],iframe[src*=\"/0AD\"],iframe[src*=\".falkaq.\"],iframe[src*=\"connextra.\"],iframe[src*=\"tracksponsor.\"],iframe[data-aa],script[src*=\"doubleclick\"] + div,script[src*=\"romanticwait\"] + div,.empower-ad,*[data-empower-id],#empowerplayercontainer,*[id^=\"bg-ssp-\"],a[href*=\"ajker-sangbad.com\"],a[href*=\"story.alandal.com/psycho-asura\"],.google-auto-placed,*[data-ad-format],*[data-adtrack-id],div:has(> iframe[src*=\"radioonline\"]),.rev-src,iframe[src=\"about:blank\"] + div[style]:last-child,a[href*=\"deflink\"],#Arpian-ads,iframe[id^=\"bg_\"],.adv,#vi-smartbanner,*[data-ad-slot],html > iframe,div:has(> [prclck]),[prclck],a[href*=\"gotrackier\"],body > nav:not([id]):not([class]):not([style]) > a[style]:first-child:last-child,body > section:not([id]):not([class]):not([style]) > span:first-child:last-child > a[style],html > ins,.kln:has(> script),.adblock_title,.adblock_subtitle,div[id]:has(div[id] h4.adblock_title),div:has([data-izone]),script[src*=\"trotolhonor.com\"] + iframe,.custom-html-widget:has(script[src*=\"separatelysmackfibber\"]),#content a[href*=\"kit-food.com\"],*[pa-slot-container],*[id^=\"exo_slider\"],.exo-native-widget-outer-container,iframe[src*=\"a.magsrv.com\"],#theradios_content,script[src*=\"dummieseardrum\"] + iframe,.ts-im-container,.adxp-sticky,div[id*=\"ScriptRoot\"],#catfishAd,div:has(> script[src*=\"tingisincused.com\"]),.ob-widget-items-container:has([data-adv-id]),div:has(> #close-ad){position: fixed!important;display: none!important;opacity: 0!important;top: -99999px!important;left: -99999px!important;right: unset!important;bottom: unset!important;visibility: hidden!important;z-index: -1000!important;pointer-events: none!important;height: 0!important;width: 0!important;max-height: 0!important;min-height: 0!important;max-width: 0!important;min-width: 0!important;overflow: hidden!important;transform: translate(-99999px, -99999px) scale(0)!important;} body:has(div[id] h4.adblock_title) {overflow: unset !important;}"}
1
+ {"hosts":["shop","top","pubfuture-ad.com","bidgear.com","googlesyndication.com","flytechb.com","roledale.com","e-planning.net","360yield.com","creativecdn.com","cpmrevenuegate.com","id5-sync.com","33across.com","nicelybacked.com","app-lite.com","shopee.vn","giftsacred.com","wugroansaghadry.com","dm2d.com","baltitilaite.com","topworkredbay.shop","typhonsdiscal.top","bassaqueued.top","hlnymphon.shop","vidiconmaskers.shop","hungrycedula.shop","ekamsply.com","bmndx.com","rtmark.net","e7z9t4x6a0v5mk3zo1a0xj2z7c6g8sa6js5z7s2c3h9x0s5fh3a6sjwb8q7m.xyz","phumsise.com","chumsaf.com","ad.baovip79.biz","uk88.top","stathome.org","outbrain.com","kismetrosland.life","d3n7ct9nohphbs.cloudfront.net","rlcdn.com","rfihub.com","stoolsocman.top","malthuscorno.shop","farcivinage.shop","fixatealaloi.top","footlogmerida.shop","attalidhatters.shop","ichthusthar.top","vingtunacroter.top","carbarnbonang.shop","doubleclick.net","acscdn.com","viglink.com","outheelrelict.com","netpub.media","cinderycandor.com","coaphumewy.net","vntsm.io","ad-delivery.net","radioonlinehd.net","a-ads.com","adskeeper.com","goomaphy.com","t7cp4fldl.com","endowmentoverhangutmost.com","vlitag.com","addthis.com","adschill.com","upblowcorbed.top","pubfuture.com","xylidichiatus.shop","jzbvwqeowwwoz.top","yockingdey.shop","infolinks.com","prospectprefer.com","benchsuited.com","busyexit.com","realsrvcdn.com","adhub.digital","stoachdarts.com","godpvqnszo.com","prplad.com","openx.net","socdm.com","cebidsbessel.com","vdo.ai","imasdk.googleapis.com","noshelfrequired.com","weinsteinandmiller.com","earthenicings.com","trotolhonor.com","zqvee2re50mr.com","waisheph.com","groapeeque.com","umbretalen.com","guigebichir.website","divvyprorata.com","dummieseardrum.com","hbcdn.net","falcatayamalka.com","admatic.com.tr","ppcnt.pro","gdpr.web0.eu","sowfootsolent.com","%20sowfootsolent.com%20","flarby.com","web0.eu","y8z5nv0slz06vj2k5vh6akv7dj2c8aj62zhj2v7zj8vp0zq7fj2gf4mv6zsb.me","pemsrv.com","magsrv.com","tsyndicate.com","xlviirdr.com","org.uk","funnelgloveaffable.com","wordsnought.com","fictionfittinglad.com","wrestcut.com","obediencechainednoun.com","scratchconsonant.com","pubadx.one","pestholy.com","mv.netprotect","microsoftonline.com","securly.com","t-mobile.at","bihussfoob.net","doruffleton.com","tenmrwwk.com","fcoexcuf.com","yxextvgvbbhfuff.com","crwdcntrl.net","mcheaprjnve.com","btcijivtsvph.com","yssmiccrhxiru.com","brand-display.com","ads.linkedin.com","xwnutgihjjkadbu.com","affec.tv","prplads.com","crockerydestructivespoken.com","lwonclbench.com","purpleads.io","abrhydona.com","taxismaned.top","viewyentreat.guru","foramscoypou.com","188.42.84.12","taiiwin.vin","licensekey2018.com","caribedkurukh.com","tzegilo.com","casibom.io","jubusvaleur.top","intimalsejoin.top","squeaksgridded.top","cussingversate.top","newcrystalcommunications.com","gypperywyling.com","wpadmngr.com","mc.yandex.ru","flinttovaria.com","bitonclick.com","fuzzyvisuals.com","mbidadm.com","23.109.170.2","pubmatic.com","invstatic101.creativecdn.com","antiadblocksystems.com","d3cod80thn7qnd.cloudfront.net","ndrrbpgmjpsng.com","uwolvsazk.com","chaseherbalpasty.com","adsco.re","lavangataled.com","betteradsystem.com","d2kk0o3fr7ed01.cloudfront.net","abtfliping.top","eloawiphi.net","dantaradiohd.net","liadm.com","jatosbathkol.com","links.services.disqus.com","tempest.services.disqus.com","muthfourre.com","koaptouw.com","exinesriles.com","mxhnkn.pro","blurbreimbursetrombone.com","awwagqorqpty.com","clobberprocurertightwad.com","coosync.com","bncloudfl.com","bullionglidingscuttle.com","btoomlalk.com","x8.games","mplmncb.com","shakingtacklingunpeeled.com","bankingbloatedcaptive.com","xibet.com","divisiondrearilyunfiled.com","isolatedovercomepasted.com","profitsfly.com","kulroakonsu.net","massifbramble.com","babistmucuses.com","urgingslaurae.com","greatmidship.com","oxbet.com","whoanebsos.net","lanky-bar.com","glizauvo.net","teksishe.net","hottedholster.com","spokanchap.com","dependsmoscow.com","akalibalboas.com","viewdeos.com","d11enq2rymy0yl.cloudfront.net","aukveygibngnjg.com","xadsmart.com","bqpvduxtfhwsd.com","qjeirnapocqcy.com","zxomvphodwdpcs.com","recordedthereby.com","proftrafficcounter.com","sympathizecrewfrugality.com","capaciousdrewreligion.com","jobetartane.com","amon1.net","bulkconflictpeculiarities.com","zodiacdinner.com","peanutrefusesplit.com","naupsithizeekee.com","ectypedechlog.com","topcpmcreativeformat.com","chaungourtee.com","tektosfolic.com","dapcerevis.shop","captorbaryton.com","wilfreddrear.shop","arvigorothan.com","cassabahotcake.top","craxzapas.com","ovologysnoops.com","oaphoace.net","h12-media.com","craniolgozzan.com","cuinageaquilid.com","laxativestuckunclog.com","earringsatisfiedsplice.com","childlessporcupinevaluables.com","appointeeivyspongy.com","flaxdescale.com","flatjeep.com","dtscout.com","scakuvap.com","occasionedcaneturner.com","unasonoric.com","tripsisvellums.com","zoeacaring.com","radioonlinehd.s3.amazonaws.com","gekeebsirs.com","pricklymine.com","pointlessplan.pro","coafeerapheepho.net","calculatingvoice.com","madurird.com","pointedpleasure.com","visariomedia.com","d13k7prax1yi04.cloudfront.net","xcafcyxddc.com","pbljxppwurd.com","peuru.com","streamtheworld.com","rubiconproject.com","adtelligent.com","zemanta.com","adswizz.com","chambulwacs.com","onclckmn.com","1xbetm.info","vealedincite.com","a11ybar.com","optvz.com","afcdn.net","gloutanacard.com","gollarpulsus.com","theetheks.com","bb2r.com","outoctillerytor.com","spacemancreativedom.net","ptougeegnep.net","diagramjawlineunhappy.com","hotbjumelo.today","vaikijie.net","d3mzokty951c5w.cloudfront.net","displayvertising.com","boodybasalt.com","popcash.net","bvtpk.com"],"css":".ad-topMobile,.ad,.ads-container,.ads,.adsbygalaksion,.adsbygoogle,.code-block,.display-banner,.radio-ad,#radio_content,#content *[class*=\"bg-ssp-\"],#adplus-anchor,#fixedban,#noktaplayercontainer,#p_6314647,#psdn-slot,#stickyplayervideoclose,#teaser1,#teaser3,*[class^=\"ad-\"],*[class^=\"ad_\"],*[class$=\"-ad\"],*[class$=\"_ad\"],*[class*=\"-ad-\"],*[class*=\"_ad_\"],*[class^=\"ads-\"],*[class^=\"ads_\"],*[class$=\"-ads\"],*[class$=\"_ads\"],*[class*=\"-ads-\"],*[class*=\"_ads_\"],*[data-adunit],*[data-google-query-id],*[id*=\"_ad_\"],*[id*=\"-ad-\"],*[id^=\"ad_\"],*[id^=\"ad-\"],*[id$=\"_ad\"],*[id$=\"-ad\"],*[id*=\"_ads_\"],*[id*=\"-ads-\"],*[id^=\"ads_\"],*[id^=\"ads-\"],*[id$=\"_ads\"],*[id$=\"-ads\"],*[id^=\"pf-\"],*[id^=\"publift-\"],iframe[src*=\"adata\"],iframe[src*=\"ad.\"],iframe[src*=\"ads.\"],iframe[src*=\"/ad\"],iframe[src*=\"/A=\"],iframe[src*=\"/click\"],iframe[src*=\"?click\"],iframe[src*=\"?banner\"],iframe[src*=\"=click\"],iframe[src*=\"clickurl=\"],iframe[src*=\".atwola.\"],iframe[src*=\"spinbox.\"],iframe[src*=\"transfer.go\"],iframe[src*=\"adfarm\"],iframe[src*=\"adfarmadSpace\"],iframe[src*=\"adserver\"],iframe[src*=\"adjuggler\"],iframe[src*=\".banner\"],iframe[src*=\"bluestreak\"],iframe[src*=\"doubleclick\"],iframe[src*=\"/rd.\"],iframe[src*=\"/0AD\"],iframe[src*=\".falkaq.\"],iframe[src*=\"connextra.\"],iframe[src*=\"tracksponsor.\"],iframe[data-aa],script[src*=\"doubleclick\"] + div,script[src*=\"romanticwait\"] + div,.empower-ad,*[data-empower-id],#empowerplayercontainer,*[id^=\"bg-ssp-\"],a[href*=\"ajker-sangbad.com\"],a[href*=\"story.alandal.com/psycho-asura\"],.google-auto-placed,*[data-ad-format],*[data-adtrack-id],div:has(> iframe[src*=\"radioonline\"]),.rev-src,iframe[src=\"about:blank\"] + div[style]:last-child,a[href*=\"deflink\"],#Arpian-ads,iframe[id^=\"bg_\"],.adv,#vi-smartbanner,*[data-ad-slot],html > iframe,div:has(> [prclck]),[prclck],a[href*=\"gotrackier\"],body > nav:not([id]):not([class]):not([style]) > a[style]:first-child:last-child,body > section:not([id]):not([class]):not([style]) > span:first-child:last-child > a[style],html > ins,.kln:has(> script),.adblock_title,.adblock_subtitle,div[id]:has(div[id] h4.adblock_title),div:has([data-izone]),script[src*=\"trotolhonor.com\"] + iframe,.custom-html-widget:has(script[src*=\"separatelysmackfibber\"]),#content a[href*=\"kit-food.com\"],*[pa-slot-container],*[id^=\"exo_slider\"],.exo-native-widget-outer-container,iframe[src*=\"a.magsrv.com\"],#theradios_content,script[src*=\"dummieseardrum\"] + iframe,.ts-im-container,.adxp-sticky,div[id*=\"ScriptRoot\"],#catfishAd,div:has(> script[src*=\"tingisincused.com\"]),.ob-widget-items-container:has([data-adv-id]),div:has(> #close-ad){position: fixed!important;display: none!important;opacity: 0!important;top: -99999px!important;left: -99999px!important;right: unset!important;bottom: unset!important;visibility: hidden!important;z-index: -1000!important;pointer-events: none!important;height: 0!important;width: 0!important;max-height: 0!important;min-height: 0!important;max-width: 0!important;min-width: 0!important;overflow: hidden!important;transform: translate(-99999px, -99999px) scale(0)!important;} body:has(div[id] h4.adblock_title) {overflow: unset !important;}"}
package/index.js CHANGED
@@ -1 +1 @@
1
- (function(P,B){typeof exports=="object"&&typeof module<"u"?B(exports):typeof define=="function"&&define.amd?define(["exports"],B):(P=typeof globalThis<"u"?globalThis:P||self,B(P._trackkun_={}))})(this,function(P){"use strict";function B(a){let e=!1;return new Promise((t,r)=>{Promise.all(a.map(async s=>{const n=await s;!e&&n&&(e=!0,t(n))})).then(()=>{e||t(void 0)})})}function k(a,{removeTrailingSlash:e=!0}={}){if(!a)return;const t=e&&a.endsWith("/")?a.slice(0,-1):a;try{return new URL(t)}catch{return}}function $(a){if(!(!a||typeof a!="string"))return a.startsWith("http://")||a.startsWith("https://")?k(a)?.pathname:a.startsWith("//")?k(`https:${a}`)?.pathname:a}async function N(a,e,t){const r=await t(()=>{a=0});if(r!==void 0)return r;if(!(a<=0))return await new Promise(s=>{setTimeout(async()=>{const n=await N(a-1,e,t);s(n)},e)})}async function D(a,e,t=0){const r=e.root??document.documentElement,s=e.timeoutMs??1e4;return N(e.lazy===!0?s/50:0,50,()=>{const n=e.all===!0?Array.from(r.querySelectorAll(a)):r.querySelector(a)??void 0;return(e.all?!n?.length:!n)?void 0:n})}const G={text:je,attr:Oe,"attr-contain":Le,value:Ne,row:_e,"bg-image":Ae};function d(a,e){if(a)return Q(a,e,Pe)}function _(a,e){if(a)return Q(a,e,Be)}function Q(a,e,t){if(!a)return;const r=a.split("||").map(s=>s.trim()).filter(s=>!!s&&s.includes("|"));for(const s of r){const n=Ce(s);if(!n)continue;const i=t(e??document.documentElement,n.selector,n.instructions);if(i)return i}}function Ce(a){const[e,t]=a.split("|");if(!t)return;const r=(t?.startsWith("[")&&t.endsWith("]")?t.substring(1,t.length-1).split(","):[t]).map(s=>{const n=s.indexOf(":"),i=n!==-1;return{extractor:i?s.substring(0,n):s,param:i?s.substring(n+1):""}});return{selector:e||void 0,instructions:r}}function Pe(a,e,t){if(!e)return J(a,t);const r=e.split(",");for(const s of r){const n=Array.from(a.querySelectorAll(s));for(const i of n){const l=J(i,t);if(l)return l}}}function Be(a,e,t){const r=e?Array.from(a.querySelectorAll(e)):[a],s=[];for(const n of r)for(const i of t){const l=G[i.extractor],o=l(n,i.param);if(o){s.push(o);break}}if(s.length)return s}function J(a,e){for(const t of e){const r=G[t.extractor],s=r(a,t.param);if(s)return s}}function je(a){return Array.from(a.childNodes).filter(e=>e.nodeType===3).map(e=>j(e.textContent)).filter(Boolean).join(" ").trim()||j(a.textContent)}function Oe(a,e){return j(a.getAttribute(e))}function Le(a,e){let t=a.getAttribute(e);if(!t){const r=a.getAttributeNames().find(s=>s.includes(e));r&&(t=a.getAttribute(r))}return j(t)}function Ne(a){return a.value}function _e(a,e){if(!e)return;const t=j(a.textContent)?.toLowerCase(),r=e.toLowerCase();if(!(t!==r&&t!==`${r}:`))return j(a.nextElementSibling?.textContent??a.nextSibling?.textContent)}function Ae(a){const e=getComputedStyle(a).backgroundImage;if(!(!e||!e.startsWith("url(")))return e.slice(5,-2)||void 0}function j(a){if(a)return a?.replace(/(\n|\t)/g," ").trim()||void 0}var ze=(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))(ze||{}),We=(a=>(a[a.ok=1]="ok",a[a.hidden=2]="hidden",a[a.deleted=3]="deleted",a))(We||{}),ke=(a=>(a[a.aggregator=0]="aggregator",a[a.scanlator=1]="scanlator",a))(ke||{}),Ee=(a=>(a[a.pending=0]="pending",a[a.completed=1]="completed",a[a.offline=2]="offline",a[a.incompat=3]="incompat",a))(Ee||{}),E=(a=>(a.id="id",a.name="name",a.slug="slug",a))(E||{}),z=(a=>(a.blank="about:blank",a.title="meta.title",a.reader="meta.reader",a))(z||{});const Ue=/(vol(ume)?|season)(\s*|-|\.)(\d+)/i,qe=/^S([1-9])\s/i,Fe=/(ch(ap(t(er)?|\.)?|\.)?|^#|episode\.?|capitolo\.?|capitulo\.?|bölüm\.?)(\s*|-)(\d+([_-~,.]\d+)?)/i,Ve=/\d+([_-~,.]\d+)?/,He=/[_-~,]/;function Ge(a){const e=a.match(Ue);if(e)return{volStr:e[0],volValueStr:e[4]};const t=a.match(qe);return t?{volStr:t[0],volValueStr:t[1]}:{}}function O(a){if(!a)return;if(!isNaN(+a))return{chap:+a};const{volStr:e,volValueStr:t}=Ge(a),r=e?a.replace(e,"").trim():a,s=r.match(Fe),n=r.match(Ve),i=s?.[6],l=i??n?.[0];if(!l)return;const o=+l.replace(He,".");return isNaN(o)?void 0:{vol:e&&t&&!isNaN(+t)&&a.indexOf(e)<a.indexOf(i?s[0]:n[0])?+t:void 0,chap:o}}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 s=document.createElement("canvas"),n=s.getContext("2d"),i=Math.max(1,r.naturalWidth/e),l=r.naturalWidth/i,o=r.naturalHeight/i;s.width=l,s.height=o;const c=/iPad|iPhone|iPod/.test(navigator.userAgent);try{n.drawImage(r,0,0,l,o);const u=s.toDataURL(c?"image/jpg":"image/webp",c?.99:.8).split(",").slice(-1)[0];t(u)}catch{t(void 0)}},r.src=a})}async function Qe(a,e=240){const t=await Je(a);if(t)return await new Promise(async r=>{const s=Y(t,e),n=setTimeout(()=>r(void 0),100),i=await s;clearTimeout(n),r(i)})}async function Je(a){try{const e=await fetch(a);if(e.status>=400)return;const t=await e.blob();return URL.createObjectURL(t)}catch{return}}function A(a,e){a.sort((o,c)=>o.vol===void 0||c.vol===void 0?c.chap-o.chap:c.vol-o.vol||c.chap-o.chap);const t={},r={};for(let o=a.length-1;o>=0;o--){const c=a[o],u=c.group??"";t[u]=(t[u]??0)+1;const g=c.lang??"";c.vol!==void 0?r[g]=c.vol:r[g]!==void 0&&(c.inferVol=r[g])}const s=[],n={},i=e?.preferGroup,l=i?o=>o.lang??"":o=>[o.lang,o.group].filter(Boolean).join(":");for(const o of a){const c=l(o),u=n[c],g=s[u];if(!(g&&g.chap===o.chap&&(g.vol===o.vol||g.vol===void 0||o.vol===void 0))){n[c]=s.length,s.push(o);continue}if(!i){g.vol===void 0&&o.vol!=null&&(s[u]=o);continue}g.group!==i&&(o.group==i||g.group&&!o.group||t[o.group??""]>t[g.group??""])&&(s[u]=o)}return s}const Ye=[{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"}}];function Z(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;const s=new Date(t);if(s instanceof Date){const c=s.valueOf();if(!isNaN(c))return s.getHours()===0&&s.getMinutes()===0?Math.min(r,c+432e5):c}const n=Ye.find(c=>e&&c.locales[e]&&t.indexOf(c.locales[e])!==-1?!0:t.indexOf(c.locales.en)!==-1);if(!n)return;const i=t.split(" ").filter(Boolean),l=K(i)??(e==="en"?K(i,["a","an"]):void 0);if(!l)return;const o=r-l*n.seconds*1e3;return o>0?o:void 0}function K(a,e){for(let t=0;t<a.length;t++){const r=a[t];if(e?.includes(r))return 1;const s=+r;if(s)return s<0?void 0:s}}function X(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 Ze(a,{titleSlug:e,titleId:t}){if(!a)return"/";let r=a.replace("{titleSlug}",e);t&&(r=r.replace("{titleId}",t));const s=r.endsWith("/")?r:r+"/";return s.startsWith("/")?s:"/"+s}function Ke(a,e){const t=[...e],r=[];let s=!1,n=0;const i=Math.min(a.length,100);for(let o=0;o<i;o++){if(n>=10/2){const h=10-r.length;if(h>0){const w=o+h<=a.length?a.slice(o,o+h):t.slice(0,h);r.push(...w)}break}const c=a[o],u=c.id!==void 0,g=t.findIndex(h=>u&&h.id===c.id||h.slug===c.slug||h.name==c.name),p=g===-1?void 0:t.splice(g,1)[0];!p||p.chapters[0]?.chap!==c.chapters[0]?.chap?(s=!0,r.push({...c,changed:!0})):(n++,r.push(c))}if(!s)return{hasMore:!1,rawReleases:[]};if(r.length<=10)return{hasMore:!!a[a.length-1]?.changed,rawReleases:r};const l=[];for(let o=0;o<r.length;o++){const c=r[o];(c.changed||o<10)&&l.push(c)}return{hasMore:e.length<2||e.length-t.length<2,rawReleases:l}}function Xe(a,e){const t={};return a.forEach(r=>{const s=r.chapters.reduce((n,i)=>{const l=i.lang||e||"";return n[l]||(n[l]=[]),n[l].push(i),n},{});Object.entries(s).forEach(([n,i])=>{const l=`${r.slug}:${n}`;t[l]?(t[l].chapters.push(...i),A(t[l].chapters)):t[l]={...r,lang:n===""?void 0:n,chapters:i}})}),Object.values(t)}var S=(a=>(a.title="title",a.reader="reader",a.releases="releases",a.chapters="chapters",a.search="search",a))(S||{}),et=Object.defineProperty,tt=(a,e,t)=>e in a?et(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,x=(a,e,t)=>(tt(a,typeof e!="symbol"?e+"":e,t),t);class W{constructor(e){x(this,"headless"),x(this,"siteId"),x(this,"spec"),x(this,"siteMeta"),x(this,"tags"),x(this,"context"),x(this,"methodsMap",{[S.title]:()=>this.getRawTitleData(),[S.reader]:()=>this.getRawReaderData(),[S.releases]:()=>this.getRawReleasesData(),[S.search]:()=>this.getRawSearchData(),[S.chapters]:()=>this.getRawChaptersData()}),x(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 getRawSearchData(){throw new Error("Unimplemented")}async getRawPageByType(e,t=!1){const r=await this.methodsMap[e](),s=!r&&(e===S.title||e===S.reader)&&await rt(this.spec);if(t&&!r&&!s)return;const n=location.origin+location.pathname;return{type:e,is404:s,specId:this.spec.id,siteName:d(this.spec.name),url:n,data:r,spec:this.spec,context:this.context}}parseReaderSlug(e,t,r){let s=t;if(s[0]!=="/"&&s.includes("/"))try{s=new URL(t,location.href).pathname}catch{}if(s.endsWith("/")&&(s=s.slice(0,-1)),e.startsWith("/")||(e="/"+e),e.endsWith("/")||(e=e+"/"),e.includes("{")){const n=e.split("/").filter(Boolean),i=s.split("/").filter(Boolean);if(n.length<i.length){const l=i[n.indexOf("{lang}")],o=i[n.indexOf("{titleId}")],c=i[n.indexOf("{titleSlug}")],u=e.replace("{lang}",l).replace("{titleId}",o).replace("{titleSlug}",c);if(s.startsWith(u))return{basePath:u,lang:l?.toLowerCase(),titleId:o,titleSlug:c,slug:s.replace(u,"")}}}else if(s.startsWith(e))return{basePath:e,slug:s.replace(e,"")};return{basePath:"",slug:s[0]==="/"?s.substring(1):s}}parseTitleSlug(e){if(typeof e!="string")return{};const t=$(e),r=t?.split("/").filter(Boolean);if(!r?.length)return{};const s=this.siteMeta.titleBase.split("/").filter(Boolean),n=s.indexOf("{slug}");return(n===-1?r.length-s.length>=1:r.length===s.length)?{id:r[s.indexOf("{id}")],slug:n===-1?r.slice(s.length).join("/"):r[n]}:{slug:t}}finalizeRawReleasesData(e){const t=this.spec.releases?.title?.lang?this.siteMeta.defaultLang:void 0,r=Xe(e.rawReleases,t);if(r.length)return this.context.oldRawReleases?Ke(r,this.context.oldRawReleases):{rawReleases:r,hasMore:!0}}getTagIdsFromNames(e){if(!e?.length)return;const t=this.normalizedTagsMap??(this.normalizedTagsMap=at(this.tags)),r=e.map(s=>t[U(s)]).filter(Boolean);return r.length===0?void 0:Array.from(new Set(r)).sort((s,n)=>s-n)}}x(W,"specId"),x(W,"siteId");function at(a){const e={};return a.forEach(({id:t,name:r,altNames:s})=>{e[U(r)]=t,s&&s.forEach(n=>{e[U(n)]=t})}),e}function U(a){const e=a.toLowerCase().replaceAll(" ","").replaceAll("-","");return e[e.length-1]==="s"?e.substring(0,e.length-1):e}async function rt(a){return st()===404||a[404]&&await D(a[404],{lazy:!0,timeoutMs:5e3})?!0:document.title.toLowerCase().includes("not found")}function st(){try{return window.performance.getEntries().find(a=>a.entryType==="navigation")?.responseStatus}catch{return}}class f extends W{async getRawReleasesData(){if(!this.spec?.releases?.title)return;const{chapter:e,...t}=this.spec.releases.title,r=await D(t.sel,{lazy:!0,all:!0});if(!r?.length)return;const s=r.slice(0,100).map(i=>{const l=d(t.url,i),o=$(l),c=d(t.name,i),u=d(t.at,i);if(!(!o||!c))return{titleEl:i,id:d(t.id,i),path:o,name:c,lang:d(t.lang,i)?.toLowerCase(),at:Z(u,this.siteMeta.defaultLang)}}).filter(Boolean);if(!s.length)return;const n=[];return await Promise.all(s.map(async i=>{const{path:l,titleEl:o,lang:c,at:u,...g}=i,{id:p,slug:h}=this.parseTitleSlug(l);if(!h)return;const w=g.id||p,b=await this.getChapters(e,{root:o,titleId:w,titleSlug:h})??[];b.length&&n.push({slug:h,chapters:c||u?b.map(v=>({...v,elIndex:void 0,lang:v.lang??c,ts:v.ts??u})):b,...g,id:w})})),this.finalizeRawReleasesData({rawReleases:n})}getRawTitleData(){return this.getTitleData(this.spec.title)}async getTitleData(e){if(!e||(e.sel||e.lazy)&&!await D(e.sel??e.name,{lazy:!!e.lazy}))return;const t=d(e.name);if(!t)return;const{id:r,slug:s}=this.parseTitleSlug(location.pathname);if(!s)return;const n=_(e.tags)?.map(p=>p.split(",")).flat().map(p=>p.trim()).filter(Boolean),i=d(e.type),l=_(e.langs)?.map(p=>p.toLowerCase()),o=r||d(e.id),c=await this.getChapters(e.chapter,{lazy:!0,titleId:o,titleSlug:s})??[],u=e.img?await this.getValidImgSrc(e.img):void 0,g=u&&this.context.includeImgBytes?await Qe(u):void 0;return{id:o||d(e.id),url:location.origin+location.pathname,slug:s,name:t,langs:l?.length?l:e.langs&&this.siteMeta.defaultLang?[this.siteMeta.defaultLang]:void 0,tags:this.getTagIdsFromNames([...n??[],...i?[i]:[]]),chapters:c,hasMoreChapters:e.hasMore?!!document.querySelector(e.hasMore):void 0,img:u,imgBytes:g,firstUrl:this.getFirstChapterUrl()}}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){return N(33,30,()=>{const t=d(e);return t&&!t.startsWith("data:")?t.split(" ")[0]:void 0})}getRawReaderTitleData(e){const t=this.spec.reader?.title;if(!t)return;const r=t.sel?document.querySelector(t.sel)??void 0:void 0,s=d(t.name,r);if(!s)return;const n=X(d(t.img,r));if(e?.slug){let c=this.spec.meta.titleBase;e?.id&&(c=c.replace("{id}",e.id));const u=c.includes("{slug}");if(u&&(c=c.replace("{slug}",e.slug)),!c.includes("{")){c=u?c:`${c}/${e.slug}`;const g=this.spec.meta.trailing?"/":"",p=`${location.origin}/${c}${g}`;return{name:s,img:n,url:p,slug:e.slug,id:e.id||d(t.id)}}}const i=d(t.url,r),{slug:l,id:o}=this.parseTitleSlug(i);if(!(!s||!i||!l))return{name:s,img:n,url:i,slug:l,id:o||d(t.id)||e?.id}}async getRawReaderData(){const{spec:e,siteMeta:t}=this;if(!e?.reader||!await f.isReaderPage(e.reader,!!e.generic))return;const r=e.reader.content;if(!(!r||await f.verifyImgsCotainer(r)))return;const s=this.parseReaderSlug(t.readerBase,location.pathname,location.href),{slug:n,basePath:i,lang:l}=s,o=this.getRawReaderTitleData({id:s.titleId,slug:s.titleSlug});if(!o)return;const{id:c,slug:u}=o,g=e.reader?.chapter,p=!!this.context.disableLazyChapters,h=!!this.context.includeHiddenChapters,w=await this.getChapters(g,{titleId:c,titleSlug:u,lazy:h||!p,includeHiddenChapters:h,timeoutMs:h?3e3:29e3,includeIndex:!0})??[],b=d(e.reader.label)?.toLowerCase().replace(o.name.toLowerCase(),"");if(!b)return;const{vol:v,chap:y=0}=O(b)||{},m=this.findNeighborChapter({sel:e.reader.prev,basePath:i}),C=this.findNeighborChapter({sel:e.reader.next,basePath:i});return this.finalizeRawReaderData({vol:v,chap:y,lang:l??d(e.reader.lang)?.toLowerCase()??(e.reader.lang?this.siteMeta.defaultLang:void 0),slug:n,basePath:i,group:d(e.reader.group),imgs:_(e.reader.imgs),title:{id:c||d(this.spec.reader?.title.id),url:o.url,slug:u,name:o.name,langs:l?[l]:void 0,img:o.img,chapters:w,hasMoreChapters:!w.length&&!h&&!!this.context.disableLazyChapters&&!!g?.label}},{prevSlug:m,nextSlug:C})}async getRawChaptersData(){const e=this.siteMeta.chapters;if(e===z.blank)return;const t=e===z.reader,r=!e||e===z.title,s=t?(await this.getRawReaderData())?.title:r?await this.getRawTitleData():void 0;let n=s?.chapters;if(!t&&!r&&(n=await this.getChapters(this.spec.chapters?.chapter,{lazy:this.spec.chapters?.lazy})),!n)return;const{lang:i}=this.context,l=i?n.filter(o=>!o.lang||o.lang===i):n;return{chapters:l,title:s?{...s,chapters:[]}:await this.getTitleData(this.spec.chapters?.title),hasMore:!1,asc:!1,total:l.length}}async getRawSearchData(){const e=this.spec.search?.title;if(!e)return;const{chapter:t}=e,r=[];return await Promise.all(Array.from(document.querySelectorAll(e.sel)).map(async s=>{const n=d(e.url,s),i=$(n),l=d(e.name,s),{slug:o,id:c}=this.parseTitleSlug(i);!i||!l||!o||r.push({id:c,slug:o,name:l,chapters:await this.getChapters(t,{root:s,titleId:c,titleSlug:o})??[]})})),r.length?{rawReleases:r}:void 0}async getChapters(e,{root:t,titleId:r="",titleSlug:s="",includeHiddenChapters:n=!1,lazy:i=!0,timeoutMs:l,includeIndex:o}={}){if(!e||!e.sel||!e.label)return;let c=null;if(e.trigger){if(!n||(c=document.querySelector(e.trigger),!c))return;c.click()}const u=[],g=await D(e.sel,{root:t,all:!0,lazy:i,timeoutMs:l});if(!g?.length)return c?.click(),[];const p=(g??[]).map((y,m)=>({id:d(e.id,y),label:d(e.label,y),url:d(e.url,y),at:d(e.at,y),elIndex:m}));c?.click();const h=p.map(({label:y})=>O(y)),w=h[1]?.chap;!h[0]&&(w===void 0||w<=1)&&(h[0]={chap:0});const{readerBase:b}=this.siteMeta,v=Ze(b,{titleId:r,titleSlug:s});return h.forEach((y,m)=>{if(!y)return;const{id:C,url:M,at:F,elIndex:V}=p[m],R={...y,id:C,ts:Z(F,this.siteMeta.defaultLang)};o&&(R.elIndex=V);const Me=M?.startsWith("http")&&!M.includes(`//${location.hostname}/`),H=Me?M:$(M);if(!H){u.push(R);return}if(Me){u.push({...R,slug:H});return}const{slug:ba,lang:Ra}=this.parseReaderSlug(v,H,M);u.push({...R,slug:ba,lang:Ra})}),A(u)}static async isReaderPage(e,t){const r=e.sel;return t&&!r?!1:!r||!!await D(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 D(t,{lazy:!0,all:!1})}findNeighborChapter({sel:e,basePath:t}){const r=d(e);if(!r||r.startsWith("#")||r.startsWith("/#"))return;const s=$(r);if(s)return this.parseReaderSlug(t,s,r).slug||void 0}finalizeRawReaderData(e,{prevSlug:t,nextSlug:r}={}){const s=e.title.chapters;if(!s.length){const c=O(t),u=O(r);return!c&&!u?e:{...e,prev:c?{...c,slug:t}:void 0,next:u?{...u,slug:r}:void 0}}let n,i,l,o;for(let c=0;c<s.length&&!(n&&(!t||l)&&!r&&o);c++){const u=s[c];!n&&(e.slug==u.slug||e.chap===u.chap&&(e.vol===u.vol||e.vol===void 0))?(n=u,i=c):!l&&t===u.slug?l=u:!o&&r===u.slug&&(o=u)}return i!==void 0&&(l??(l=s[i+1]),o??(o=s[i-1])),{...e,inferVol:n?.inferVol,prev:l,next:o}}}var nt=Object.defineProperty,it=(a,e,t)=>e in a?nt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ot=(a,e,t)=>(it(a,typeof e!="symbol"?e+"":e,t),t);class ee extends f{parseTitleSlug(e){return{slug:$(e)?.split("/").filter(Boolean)[1]}}async getRawTitleData(){if(!(!this.headless&&navigator.userAgent.toLowerCase().includes("android")))return await super.getRawTitleData()}}ot(ee,"specId","bato");function lt(){return Math.random().toString(16).slice(2)}async function ct({addListener:a,removeListener:e,transform:t,filter:r,handler:s,onTimeout:n,timeout:i,once:l}){return new Promise(o=>{a(g);const c=()=>l===!0&&e(g),u=i?setTimeout(()=>{c(),o(void 0),n?.()},i):void 0;async function g(p,...h){p=t?t(p):p,p!==void 0&&(!r||r(p,...h))&&(c(),o(p),s?.(p,...h),u&&clearTimeout(u))}})}async function ut(a){return(await ct({addListener:e=>window.addEventListener("message",e),removeListener:e=>window.removeEventListener("message",e),...a}))?.data}async function gt(a){const{receiverWindow:e,timeout:t,targetOrigin:r,event:s,args:n}=a,i={reqId:lt(),event:s,args:n};return(e||window)?.postMessage(i,r??"*"),(await ut({filter:l=>l?.data?.resId===i.reqId,timeout:t??3e4,once:!0}))?.result}const L={isAny:!0};function T(a,...e){return gt({event:"tk:fetchResult",args:{baseUrl:a,segments:e}})}var dt=Object.defineProperty,pt=(a,e,t)=>e in a?dt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ht=(a,e,t)=>(pt(a,typeof e!="symbol"?e+"":e,t),t);const te=class Te extends f{async getRawReleasesData(){let e;try{const r=Array.from({length:2},async(s,n)=>{const i=`https://api.${location.host}/chapter?accept_erotic_content=true&page=${n+1}&order=new`;return(await fetch(i)).json()});e=(await Promise.all(r)).flat()}catch{return}const t=[];return e.forEach(r=>{const{vol:s,chap:n,hid:i,lang:l,updated_at:o,md_comics:c}=r,u=typeof n=="string"&&!isNaN(+n)?+n:void 0;typeof u=="number"&&t.push({id:c.hid,slug:c.slug,name:c.title,chapters:[{slug:i,vol:typeof s=="string"&&!isNaN(+s)?+s:void 0,chap:u,lang:l,ts:new Date(o).valueOf()}]})}),super.finalizeRawReleasesData({rawReleases:t})}async getRawTitleData(){const e=await super.getRawTitleData();if(!e)return e;const t=await T(`https://api.${location.host}`,"comic",L,"chapters");if(!t)return e;const r=t.url.split("/").filter(Boolean).slice(-2)[0],s=ae(t.value),n=d("h1 ~ div.text-sm span:first-child|row:demographic"),i=n?this.getTagIdsFromNames([n])?.[0]:void 0;return i&&!e.tags?.includes(i)&&(e.tags?.push(i),e.tags?.sort((l,o)=>l-o)),{...e,img:e.img??X(d(this.spec.title?.img)),id:r,hasMoreChapters:s?.hasMore??!1,chapters:s?.chapters??[]}}async getRawReaderData(){const e=await super.getRawReaderData();return e&&{...e,lang:e.lang&&e.lang?.length<=6?e.lang:Te.getLangFromReaderSlug(e.slug)||e.lang}}static getLangFromReaderSlug(e){const t=e.split("-");let r;for(let s=t.length-1;s>0;s--){const n=t[s];if(!isNaN(+n))break;r=r?`${n}-${r}`:n}return r&&r.length<=6?r:void 0}async getRawChaptersData(){const{rawId:e,lang:t="en",skip:r,preferGroup:s}=this.context;if(!e)return;const n=r?Math.floor(r/1e3)+1:void 0;try{const i=await fetch(`https://api.${location.host}/comic/${e}/chapters?lang=${t}&limit=1000${n&&n>1?`&page=${n}`:""}`),l=ae(await i.json(),s??"_");return l?{...l,lang:t,asc:!1}:void 0}catch{return}}};ht(te,"specId","comick");let ft=te;function ae(a,e){if(!Array.isArray(a?.chapters))return;const t=[];return a.chapters.forEach(r=>{const{vol:s,chap:n,hid:i,lang:l,updated_at:o,group_name:c}=r,u=typeof n=="string"&&!isNaN(+n)?+n:void 0;typeof u=="number"&&t.push({slug:i,vol:typeof s=="string"&&!isNaN(+s)?+s:void 0,chap:u,lang:l||"en",group:c?.[0]||void 0,ts:new Date(o).valueOf()})}),{chapters:A(t,{preferGroup:e}),total:a.total??t.length,hasMore:a.total>a.limit}}var mt=Object.defineProperty,wt=(a,e,t)=>e in a?mt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,vt=(a,e,t)=>(wt(a,typeof e!="symbol"?e+"":e,t),t);class re extends f{async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=window.pages,r=t?.map(s=>s?.image).filter(Boolean);if(!(!Array.isArray(r)||!r.length))return{...e,imgs:r,isWebtoon:t.some(s=>s.height/s.width>2)}}}vt(re,"specId","dynasty");var yt=Object.defineProperty,bt=(a,e,t)=>e in a?yt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Rt=(a,e,t)=>(bt(a,typeof e!="symbol"?e+"":e,t),t);class se extends f{async getRawChaptersData(){const e=this.context.titleSlug;if(!e)return;const t=`https://api.${location.host}/chapter/all/${e}`;return{chapters:(await(await fetch(t)).json()).map(St).filter(Boolean)}}}Rt(se,"specId","lua");function St(a){if(!a||typeof a.chapter_name!="string")return;const e=O(a.chapter_name);if(e)return{...e,slug:typeof a.chapter_slug=="string"?a.chapter_slug:void 0,ts:typeof a.created_at=="string"?new Date(a.created_at).valueOf():void 0}}function ne(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 $t=Object.defineProperty,xt=(a,e,t)=>e in a?$t(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Dt=(a,e,t)=>(xt(a,typeof e!="symbol"?e+"":e,t),t);class q extends f{async getRawReleasesData(){const e=this.detectNewSiteMeta(this.spec.releases,this.siteMeta);this.siteMeta=e??this.siteMeta;const t=await super.getRawReleasesData();if(t)return{...t,siteMeta:e}}async getRawTitleData(){const e=this.finalizeNewSiteMeta(this.siteMeta,{titleBase:this.extractBasePath(location.pathname)});this.siteMeta=e??this.siteMeta;const t=await super.getRawTitleData();if(t)return{...t,siteMeta:e}}async getRawReaderData(){const e=ie(this.spec.reader?.title),t=e?this.finalizeNewSiteMeta(this.siteMeta,{titleBase:this.extractBasePath($(e))}):void 0;this.siteMeta=t??this.siteMeta;const r=await super.getRawReaderData();if(r)return{...r,siteMeta:t}}async getRawSearchData(){const e=ie(this.spec.search?.title);if(!e)return;const t=this.finalizeNewSiteMeta(this.siteMeta,{titleBase:this.extractBasePath($(e))});this.siteMeta=t??this.siteMeta;const r=await super.getRawSearchData();if(r)return{...r,siteMeta:t}}detectNewSiteMeta(e,t){if(!e)return;const r=e.title,s=document.querySelector(r.sel)??void 0;if(!s)return;const n=$(d(r.url,s));if(n!==void 0)return this.finalizeNewSiteMeta(t,{titleBase:this.extractBasePath(n)})}finalizeNewSiteMeta(e,{titleBase:t}){if(e.titleBase!==t)return{...e,titleBase:t,readerBase:e.readerBase.replace(e.titleBase,t)}}extractBasePath(e){return ne(e,"/").split("/").slice(0,-1).join("/")}}Dt(q,"specId","madara");function ie(a){if(!a)return;const e=a.sel?document.querySelector(a.sel)??void 0:void 0;return d(a.url,e)}var It=Object.defineProperty,Mt=(a,e,t)=>e in a?It(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Tt=(a,e,t)=>(Mt(a,typeof e!="symbol"?e+"":e,t),t);const Ct={a:.1,b:.2,c:.3,d:.4};class oe extends W{parseTitleSlug(e){return{slug:$(e)?.split("/").filter(Boolean)[1]}}async getRawReleasesData(){let e=[];try{e=(await(await fetch("https://api.mangadex.org/chapter?limit=96&offset=0&includes[]=manga&contentRating[]=safe&contentRating[]=suggestive&contentRating[]=erotica&contentRating[]=pornographic&order[readableAt]=desc")).json()).data}catch{return}const t=[];return e.forEach(({relationships:r,attributes:s,id:n})=>{const i=r.find(({type:g})=>g==="manga"),l=I(s.volume),o=I(s.chapter);if(o===void 0)return;const{title:c}=i.attributes,u=c.en??Object.values(c)[0];t.push({slug:i.id,name:u,chapters:[{slug:s.externalUrl||n,vol:l,chap:o,lang:s.translatedLanguage,ts:new Date(s.readableAt).valueOf()}]})}),super.finalizeRawReleasesData({rawReleases:t})}async getRawTitleData(){const e="https://api.mangadex.org/manga/",[t,r]=await Promise.all([T(e,L),T(e,L,"feed")]);if(!t||!r)return;const s=r.value.data?.map?.(o=>{const{attributes:c,id:u}=o;if(typeof c!="object"||typeof u!="string"||!u)return;const{externalUrl:g,title:p,volume:h,chapter:w,translatedLanguage:b}=c;return{slug:g||u,label:p||void 0,vol:I(h),chap:I(w),lang:b||"en",ts:new Date(c.readableAt).valueOf()}}).filter(o=>o?.chap!=null)??[],{data:n}=t.value;if(!n)return;const i=ce({data:n,getTagIdsFromNames:o=>this.getTagIdsFromNames(o)});if(!i)return;const l=this.context.includeImgBytes&&i.img?await Y(i.img):void 0;return{...i,imgBytes:l,chapters:A(s),hasMoreChapters:(r.value.total||0)>(r.value.limit||0)}}async getRawReaderData(){const e="https://api.mangadex.org/",[t,r,s]=await Promise.all([T(e,"chapter",L),T(e,"at-home","server",L),T(e,"manga",L,"aggregate")]);if(!t||!r||!s)return;const n=t.value.data,{volume:i,chapter:l,externalUrl:o,translatedLanguage:c}=n.attributes||{},{baseUrl:u,chapter:{data:g,dataSaver:p,hash:h}}=r.value,w=n.relationships?.find?.(R=>R.type==="manga");if(!w)return;const b=ce({data:w,getTagIdsFromNames:R=>this.getTagIdsFromNames(R)});if(!b||typeof s.value.volumes!="object")return;const v=le(s.value)??[];(typeof l!="string"||l==="none")&&!v.length&&v.push({chap:0,slug:n.id});const y=v.findIndex(R=>R.slug===n.id),m=n.relationships?.find?.(R=>R.type==="scanlation_group"),C=u.endsWith("/")?u:u+"/",M=!!localStorage.getItem("md")?.includes?.('"dataSaver":true'),F=`${C}${M?"data-saver":"data"}/`,V=((M?p:g)??[]).map?.(R=>`${F}${h}/${R}`)??[];return{externalUrl:o,vol:I(i),inferVol:v[y]?.inferVol,chap:I(l)||0,imgs:V,lang:c,slug:n.id,prev:v[y+1],next:v[y-1],basePath:"/chapter/",groupName:m?.attributes?.name,groupUrl:m?.attributes?.website,isWebtoon:w?.attributes?.tags?.some(R=>R.attributes.name.en==="Long Strip"),title:{...b,chapters:v}}}async getRawChaptersData(){const{titleSlug:e,lang:t="en"}=this.context;let r;try{const s=await fetch(`https://api.mangadex.org/manga/${e}/aggregate?translatedLanguage[]=${t}`);r=le(await s.json())}catch{return}if(r)return{chapters:r,lang:t,asc:!1,hasMore:!1,total:r.length}}}Tt(oe,"specId","mangadex");function I(a){if(typeof a!="string"||a==="none")return;const e=parseFloat(a);if(e!==e)return;const t=a[a.length-1];return e+(Ct[t]??0)}function le(a){if(typeof a.volumes!="object")return;const e=Object.values(a.volumes).map(({volume:t,chapters:r})=>{const s=I(t);return Object.values(r).map(({id:n,chapter:i})=>{const l=I(i);if(l!==void 0)return{vol:s,chap:l,slug:n}})}).flat().filter(Boolean).reverse();return A(e)}function ce({data:a,getTagIdsFromNames:e}){const{id:t,attributes:r,relationships:s}=a;if(!t||typeof t!="string"||typeof r!="object")return;const{title:n,availableTranslatedLanguages:i,altTitles:l,tags:o,contentRating:c}=r;if(typeof n!="object"||i&&!Array.isArray(i))return;const u=Object.values(n)[0];if(!u||typeof u!="string")return;const g=Pt(),p=(i??[])?.map?.(m=>typeof m=="string"?m:void 0).filter(Boolean)??[],h=p.filter(m=>m&&(!g||g.includes(m))),w=l?.map?.(m=>{const[[,C]=[]]=Object.entries(m);return C}),b=s?.find?.(m=>m.type==="cover_art")?.attributes?.fileName,v=b?`https://mangadex.org/covers/${t}/${b}.256.jpg`:void 0,y=(o||[]).map(m=>m?.attributes?.name?.en).concat(c).filter(Boolean);return{url:`${location.origin}/title/${t}`,slug:t,name:u,altNames:w,langs:h.length>0?h:p.length>0?p:["en"],img:v,tags:e(y)}}function Pt(){const a=localStorage.getItem("md");if(a)try{const e=JSON.parse(a)?.userPreferences?.filteredLanguages;return e?.length?e:void 0}catch{return}}var Bt=Object.defineProperty,jt=(a,e,t)=>e in a?Bt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ot=(a,e,t)=>(jt(a,typeof e!="symbol"?e+"":e,t),t);class ue extends f{async getRawReleasesData(){const e=await super.getRawReleasesData();if(e)return{...e,rawReleases:e.rawReleases.map(t=>({...t,id:t.id?.split("?")[0]}))}}async getRawReaderData(){if((await D(".current-viewtype",{lazy:!0,all:!1}))?.textContent?.trim().toLowerCase()!=="volume")return await super.getRawReaderData()}async getRawChaptersData(){const{lang:e}=this.context;if(!e)return;const t=await D(`.tab-content[data-name="chapter"] a.dropdown-item[data-code="${e.toUpperCase()}"]`,{lazy:!0,all:!1});if(t)return t.click(),await D(`.tab-content[data-name="chapter"] li.item[data-number] a[href*="/${e}/"]`,{lazy:!0,all:!1}),await super.getRawChaptersData()}}Ot(ue,"specId","mangafire");var Lt=Object.defineProperty,Nt=(a,e,t)=>e in a?Lt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,_t=(a,e,t)=>(Nt(a,typeof e!="symbol"?e+"":e,t),t);class ge extends f{async getRawReaderData(){const e=await super.getRawReaderData();return e&&{...e,imgs:await this.getImgs()}}parseReaderSlug(e,t){const{slug:r,basePath:s}=super.parseReaderSlug(e,t),n=r.split("/").filter(Boolean),i=n[n.length-1];return{basePath:s,slug:i.startsWith("pg-")?n.slice(0,-1).join("/"):r}}async getImgs(){const e=await N(100,20,()=>window.imgsrcs),t=window.CryptoJS,r=t.enc.Hex.parse("e11adc3949ba59abbe56e057f20f883e"),s={iv:t.enc.Hex.parse("1234567890abcdef1234567890abcdef"),padding:t.pad.ZeroPadding};return t.AES.decrypt(e,r,s).toString(t.enc.Utf8).split(",")}}_t(ge,"specId","mangago");var At=Object.defineProperty,zt=(a,e,t)=>e in a?At(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Wt=(a,e,t)=>(zt(a,typeof e!="symbol"?e+"":e,t),t);class de extends f{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]}))}}}Wt(de,"specId","mangaplus");var kt=Object.defineProperty,Et=(a,e,t)=>e in a?kt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ut=(a,e,t)=>(Et(a,typeof e!="symbol"?e+"":e,t),t);class pe extends f{async getRawReleasesData(){const e=await super.getRawReleasesData();if(e)return{...e,rawReleases:e.rawReleases.map(t=>({...t,id:t.slug.substring(t.slug.lastIndexOf("-")+1)||void 0}))}}}Ut(pe,"specId","mangareader");var qt=Object.defineProperty,Ft=(a,e,t)=>e in a?qt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Vt=(a,e,t)=>(Ft(a,typeof e!="symbol"?e+"":e,t),t);class he extends q{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((s,n)=>n.time-s.time);const r=t[0].manga_ID;return typeof r=="string"?r:typeof r=="number"?r+"":void 0}detectNewSiteMeta(e,t){if(this.siteId==="realm"||!e)return;const r={...t,releases:ne(location.pathname,"/")},s=e.title,n=document.querySelector(s.sel)??void 0;if(!n)return;const i=$(d(s.url,n));if(i===void 0)return;const l=n.querySelector(s.chapter.sel)??void 0;if(!(!l||$(d(s.chapter.url,l))===void 0))return r.titleBase=this.extractBasePath(i),t.titleIdType===E.id&&(d(s.id,n)||(t.titleIdType=E.name)),this.finalizeNewSiteMeta(t,r)}finalizeNewSiteMeta(e,t){if(this.siteId==="realm")return;const r=Object.keys(t),s={...e};let n=!1;return r.forEach(i=>{const l=t[i];l!==e[i]&&(s[i]=l,n=!0)}),n?s:void 0}}Vt(he,"specId","mangastream");var Ht=Object.defineProperty,Gt=(a,e,t)=>e in a?Ht(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Qt=(a,e,t)=>(Gt(a,typeof e!="symbol"?e+"":e,t),t);class fe extends f{async getRawReaderData(){const e=await super.getRawReaderData();if(e)return{...e,title:{...e.title,name:e.title.name.replace("Ritorna a","").trim()}}}}Qt(fe,"specId","mangaworld");var Jt=Object.defineProperty,Yt=(a,e,t)=>e in a?Jt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Zt=(a,e,t)=>(Yt(a,typeof e!="symbol"?e+"":e,t),t);class me extends f{async getRawTitleData(){const e=await super.getRawTitleData();if(e)return{...e,hasMoreChapters:e.chapters.length===50}}}Zt(me,"specId","mgeko");var Kt=Object.defineProperty,Xt=(a,e,t)=>e in a?Kt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ea=(a,e,t)=>(Xt(a,typeof e!="symbol"?e+"":e,t),t);class we extends f{async getRawTitleData(){const e=await super.getRawTitleData();if(!e)return;const t=_(".info-detail__row > .genre-btn,.info__right .stats__row:first-child|text")?.map(r=>[r,...r.split(" ")]).flat();return ve({...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:{...ve({...e.title,url:t,tags:[]},".episode-list .js-ep-cnt"),hasMoreChapters:!1}}}async getRawChaptersData(){const{rawId:e,skip:t}=this.context,r=1e3,s=t?Math.floor(t/1e3)+1:1;try{const n=await fetch(`/series/${e}/episodes?page=${s}&sort=NEWEST&max_limit=${r}`);return ta(await n.json())}catch{return}}parseTitleSlug(e){if(!e)return{};const t=e.split("/").filter(Boolean);return{slug:t[1]??t[0]}}}ea(we,"specId","tapas");function ve(a,e){const t=aa(e)>20;return{...a,chapters:t?[]:a.chapters,hasMoreChapters:t}}function ta(a){const e=a?.data?.episodes;if(!Array.isArray(e))return;const t=e.map(s=>({chap:s.pending_scene??s.scene,slug:s.id+"",ts:new Date(s.publish_date)?.valueOf?.()||void 0})),r=a?.data?.pagination;return{chapters:t,total:r?.total??t.length,hasMore:!!r?.has_next}}function aa(a){return+(document.querySelector(a)?.textContent?.trim().split(" ")[0]||0)}var ra=Object.defineProperty,sa=(a,e,t)=>e in a?ra(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,na=(a,e,t)=>(sa(a,typeof e!="symbol"?e+"":e,t),t);class ye extends f{async getRawReleasesData(){const e=await super.getRawReleasesData();if(e)return{...e,rawReleases:e.rawReleases.map(t=>({...t,id:ia(t.slug)}))}}}na(ye,"specId","truyenqq");function ia(a){return a.substring(a.lastIndexOf("-")+1).replace(".html","")||void 0}var oa=Object.defineProperty,la=(a,e,t)=>e in a?oa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ca=(a,e,t)=>(la(a,typeof e!="symbol"?e+"":e,t),t);class be extends f{async getRawTitleData(){const e=await super.getRawTitleData();return e?.img?{...e,img:ua(e.img)}:e}getRawReaderTitleData(e){const t=super.getRawReaderTitleData(e);if(t)return{...t,name:t.name.split(" Chapter")[0]}}async getRawChaptersData(){const e=await this.getRawTitleData();if(!e)return;const t=T(location.origin,"api","chapters"),r=document.querySelector('button[data-key="chapters"]');if(!r)return;r.click();const s=setInterval(()=>r.click(),100),n=await t;if(clearInterval(s),!n?.value)return;const i=n.url.split("?")[1];if(!i)return;const l=new URLSearchParams(i).get("postId");if(!l)return;const o=n.value?.totalChapterCount;if(!o||o<50){const g=Re(n.value);return g?{chapters:g,title:e,hasMore:!1,skip:0,total:o}:void 0}const c=await fetch(`${location.origin}/api/chapters?postId=${l}&skip=0&take=1000&order=desc`),u=Re(await c.json());if(u)return{chapters:u,title:e,total:o,skip:0,hasMore:!1}}}ca(be,"specId","vortex");function ua(a){try{return new URL(a,location.href).searchParams.get("url")||a}catch{return a}}function Re(a){const e=a?.post?.chapters;if(e)return e.map(t=>({slug:t.slug,chap:t.number,ts:t.createdAt?new Date(t.createdAt)?.valueOf?.():void 0})).filter(t=>t.slug&&typeof t.chap=="number")}var ga=Object.defineProperty,da=(a,e,t)=>e in a?ga(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,pa=(a,e,t)=>(da(a,typeof e!="symbol"?e+"":e,t),t);class Se extends f{async getRawTitleData(){const e=new URLSearchParams(location.search),t=e.get("episode_no"),r=e.get("title_no");if(t||!r)return;const s=await super.getRawTitleData();if(!s)return;const n=location.pathname.split("/")[1];return{...s,slug:`${s.slug}?title_no=${r}`,id:r,langs:[n].filter(Boolean),chapters:s.chapters.map(i=>({...i,lang:n})),hasMoreChapters:(document.querySelector(".paginate")?.childElementCount??1)>1}}async getRawReaderData(){const e=new URLSearchParams(location.search),t=e.get("episode_no"),r=e.get("title_no");if(!t||!r)return;const s=O(d(".paginate > span:not(:first-child)|text"));if(s===void 0)return;const{chap:n}=s,i=document.title.split("|")[1]?.trim();if(!i)return;const l=location.pathname.split("/"),o=`${l.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 || .num|text"},{lazy:!1,titleId:r,titleSlug:o}),u=l[1];return{chap:n,lang:u,slug:`${location.pathname}?title_no=${r}&episode_no=${t}`,basePath:"",imgs:await this.getReaderImgs(),isWebtoon:!0,title:{id:r,url:o,slug:o,name:i,langs:[u],chapters:(c??[]).map(g=>({...g,lang:u})),hasMoreChapters:!1}}}async getReaderImgs(){const e=_("#_imageList img|[attr:data-url,attr:src]");return e?.length?e:await N(100,50,()=>window.__viewerState__?.scrollViewerParam?.imageList?.map(({url:t})=>t).filter(Boolean))}parseReaderSlug(e,t,r){if(!r)return{basePath:"",slug:t};if(r.startsWith("http://")||r.startsWith("https://")){const s=k(r);return{basePath:"",slug:s.pathname+s.search}}return{basePath:"",slug:r}}}pa(Se,"specId","webtoon");var ha=Object.defineProperty,fa=(a,e,t)=>e in a?ha(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ma=(a,e,t)=>(fa(a,typeof e!="symbol"?e+"":e,t),t);class $e extends f{async getRawChaptersData(){const{rawId:e}=this.context;if(!e)return;const t=await wa(e);if(!t)return;const r=document.createElement("DIV");r.innerHTML=t;const s=await this.getChapters({sel:'a[href*="/chapters/"]',url:"|attr:href",label:"span span|text",at:"time|attr:datetime"},{root:r,lazy:!0});if(s)return{chapters:s,hasMore:!1,asc:!1,total:s.length}}}ma($e,"specId","weebcentral");async function wa(a){const e=`https://weebcentral.com/series/${a}/full-chapter-list`;try{return await(await fetch(e)).text()}catch{return}}const va=[ee,ft,re,se,q,oe,ue,ge,de,pe,he,fe,me,we,be,ye,Se,$e];function xe(a){const e=va.find(t=>t.specId===a.spec.id)??f;return new e(a)}async function ya(a){const{spec:e}=a;if(e){const t=a.siteMeta??e.meta,r=a.type?[a.type]:De(t,e.generic);if(!r.length)return;const s=xe({...a,spec:e,siteMeta:t});return await B(r.map(n=>s.getRawPageByType(n,r.length>1)))}return await B((a.genericSpecs??[]).map(t=>{const r=De(t.meta,t.generic);if(!r.length)return[];const s=xe({...a,spec:t,siteMeta:t.meta});return r.map(n=>s.getRawPageByType(n,!0))}).flat())}function De(a,e){if(location.pathname==="/")return[];const{titleBase:t,readerBase:r}=a,s=location.pathname.split("/").filter(Boolean),n=Ie(s,r),i=Ie(s,t);if(n&&i)return[S.reader,S.title];const l=[];return!i&&(n!==!1||e)&&l.push(S.reader),!n&&(i!==!1||e)&&l.push(S.title),!l.length&&e?[S.reader,S.title]:l}function Ie(a,e){if(!e)return;const t=e.split("/").filter(Boolean),r=t.indexOf("{slug}"),s=r===t.length-1,n=!s&&r!==-1;if(s&&(t.pop(),!t.length))return;const i=a.length-t.length;if(n?i<0:i<=0)return!1;let l=!1;for(let o=0;o<t.length;o++){const c=t[o];if(c[0]!=="{"){if(c!==a[o])return!1;l=!0}}if(l&&i===(n?0:1))return!0}P.PageType=S,P.scrape=ya});
1
+ (function(P,B){typeof exports=="object"&&typeof module<"u"?B(exports):typeof define=="function"&&define.amd?define(["exports"],B):(P=typeof globalThis<"u"?globalThis:P||self,B(P._trackkun_={}))})(this,function(P){"use strict";function B(a){let e=!1;return new Promise((t,r)=>{Promise.all(a.map(async s=>{const n=await s;!e&&n&&(e=!0,t(n))})).then(()=>{e||t(void 0)})})}function U(a,{removeTrailingSlash:e=!0}={}){if(!a)return;const t=e&&a.endsWith("/")?a.slice(0,-1):a;try{return new URL(t)}catch{return}}function S(a){if(!(!a||typeof a!="string"))return a.startsWith("http://")||a.startsWith("https://")?U(a)?.pathname:a.startsWith("//")?U(`https:${a}`)?.pathname:a}async function N(a,e,t){const r=await t(()=>{a=0});if(r!==void 0)return r;if(!(a<=0))return await new Promise(s=>{setTimeout(async()=>{const n=await N(a-1,e,t);s(n)},e)})}async function x(a,e,t=0){const r=e.root??document.documentElement,s=e.timeoutMs??1e4;return N(e.lazy===!0?s/50:0,50,()=>{const n=e.all===!0?Array.from(r.querySelectorAll(a)):r.querySelector(a)??void 0;return(e.all?!n?.length:!n)?void 0:n})}const Q={text:Oe,attr:Le,"attr-contain":Ne,value:_e,row:ze,"bg-image":Ae};function d(a,e){if(a)return J(a,e,Be)}function _(a,e){if(a)return J(a,e,je)}function J(a,e,t){if(!a)return;const r=a.split("||").map(s=>s.trim()).filter(s=>!!s&&s.includes("|"));for(const s of r){const n=Pe(s);if(!n)continue;const i=t(e??document.documentElement,n.selector,n.instructions);if(i)return i}}function Pe(a){const[e,t]=a.split("|");if(!t)return;const r=(t?.startsWith("[")&&t.endsWith("]")?t.substring(1,t.length-1).split(","):[t]).map(s=>{const n=s.indexOf(":"),i=n!==-1;return{extractor:i?s.substring(0,n):s,param:i?s.substring(n+1):""}});return{selector:e||void 0,instructions:r}}function Be(a,e,t){if(!e)return Y(a,t);const r=e.split(",");for(const s of r){const n=Array.from(a.querySelectorAll(s));for(const i of n){const l=Y(i,t);if(l)return l}}}function je(a,e,t){const r=e?Array.from(a.querySelectorAll(e)):[a],s=[];for(const n of r)for(const i of t){const l=Q[i.extractor],o=l(n,i.param);if(o){s.push(o);break}}if(s.length)return s}function Y(a,e){for(const t of e){const r=Q[t.extractor],s=r(a,t.param);if(s)return s}}function Oe(a){return Array.from(a.childNodes).filter(e=>e.nodeType===3).map(e=>j(e.textContent)).filter(Boolean).join(" ").trim()||j(a.textContent)}function Le(a,e){return j(a.getAttribute(e))}function Ne(a,e){let t=a.getAttribute(e);if(!t){const r=a.getAttributeNames().find(s=>s.includes(e));r&&(t=a.getAttribute(r))}return j(t)}function _e(a){return a.value}function ze(a,e){if(!e)return;const t=j(a.textContent)?.toLowerCase(),r=e.toLowerCase();if(!(t!==r&&t!==`${r}:`))return j(a.nextElementSibling?.textContent??a.nextSibling?.textContent)}function Ae(a){const e=getComputedStyle(a).backgroundImage;if(!(!e||!e.startsWith("url(")))return e.slice(5,-2)||void 0}function j(a){if(a)return a?.replace(/(\n|\t)/g," ").trim()||void 0}var We=(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))(We||{}),ke=(a=>(a[a.ok=1]="ok",a[a.hidden=2]="hidden",a[a.deleted=3]="deleted",a))(ke||{}),Ee=(a=>(a[a.aggregator=0]="aggregator",a[a.scanlator=1]="scanlator",a))(Ee||{}),Ue=(a=>(a[a.pending=0]="pending",a[a.completed=1]="completed",a[a.offline=2]="offline",a[a.incompat=3]="incompat",a))(Ue||{}),q=(a=>(a.id="id",a.name="name",a.slug="slug",a))(q||{}),A=(a=>(a.blank="about:blank",a.title="meta.title",a.reader="meta.reader",a))(A||{});const qe=/(vol(ume)?|season)(\s*|-|\.)(\d+)/i,Fe=/^S([1-9])\s/i,Ve=/(ch(ap(t(er)?|\.)?|\.)?|^#|episode\.?|capitolo\.?|capitulo\.?|bölüm\.?)(\s*|-)(\d+([_-~,.]\d+)?)/i,He=/\d+([_-~,.]\d+)?/,Ge=/[_-~,]/;function Qe(a){const e=a.match(qe);if(e)return{volStr:e[0],volValueStr:e[4]};const t=a.match(Fe);return t?{volStr:t[0],volValueStr:t[1]}:{}}function O(a){if(!a)return;if(!isNaN(+a))return{chap:+a};const{volStr:e,volValueStr:t}=Qe(a),r=e?a.replace(e,"").trim():a,s=r.match(Ve),n=r.match(He),i=s?.[6],l=i??n?.[0];if(!l)return;const o=+l.replace(Ge,".");return isNaN(o)?void 0:{vol:e&&t&&!isNaN(+t)&&a.indexOf(e)<a.indexOf(i?s[0]:n[0])?+t:void 0,chap:o}}async function Z(a,e=240){return new Promise(t=>{const r=new Image;r.crossOrigin="anonymous",r.onerror=()=>t(void 0),r.onload=()=>{const s=document.createElement("canvas"),n=s.getContext("2d"),i=Math.max(1,r.naturalWidth/e),l=r.naturalWidth/i,o=r.naturalHeight/i;s.width=l,s.height=o;const c=/iPad|iPhone|iPod/.test(navigator.userAgent);try{n.drawImage(r,0,0,l,o);const u=s.toDataURL(c?"image/jpg":"image/webp",c?.99:.8).split(",").slice(-1)[0];t(u)}catch{t(void 0)}},r.src=a})}async function Je(a,e=240){const t=await Ye(a);if(t)return await new Promise(async r=>{const s=Z(t,e),n=setTimeout(()=>r(void 0),100),i=await s;clearTimeout(n),r(i)})}async function Ye(a){try{const e=await fetch(a);if(e.status>=400)return;const t=await e.blob();return URL.createObjectURL(t)}catch{return}}function z(a,e){a.sort((o,c)=>o.vol===void 0||c.vol===void 0?c.chap-o.chap:c.vol-o.vol||c.chap-o.chap);const t={},r={};for(let o=a.length-1;o>=0;o--){const c=a[o],u=c.group??"";t[u]=(t[u]??0)+1;const g=c.lang??"";c.vol!==void 0?r[g]=c.vol:r[g]!==void 0&&(c.inferVol=r[g])}const s=[],n={},i=e?.preferGroup,l=i?o=>o.lang??"":o=>[o.lang,o.group].filter(Boolean).join(":");for(const o of a){const c=l(o),u=n[c],g=s[u];if(!(g&&g.chap===o.chap&&(g.vol===o.vol||g.vol===void 0||o.vol===void 0))){n[c]=s.length,s.push(o);continue}if(!i){g.vol===void 0&&o.vol!=null&&(s[u]=o);continue}g.group!==i&&(o.group==i||g.group&&!o.group||t[o.group??""]>t[g.group??""])&&(s[u]=o)}return s}const Ze=[{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"}}];function K(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;const s=new Date(t);if(s instanceof Date){const c=s.valueOf();if(!isNaN(c))return s.getHours()===0&&s.getMinutes()===0?Math.min(r,c+432e5):c}const n=Ze.find(c=>e&&c.locales[e]&&t.indexOf(c.locales[e])!==-1?!0:t.indexOf(c.locales.en)!==-1);if(!n)return;const i=t.split(" ").filter(Boolean),l=X(i)??(e==="en"?X(i,["a","an"]):void 0);if(!l)return;const o=r-l*n.seconds*1e3;return o>0?o:void 0}function X(a,e){for(let t=0;t<a.length;t++){const r=a[t];if(e?.includes(r))return 1;const s=+r;if(s)return s<0?void 0:s}}function ee(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 Ke(a,{titleSlug:e,titleId:t,lang:r}){if(!a)return"/";let s=a;return e&&(s=s.replace("{titleSlug}",e)),t&&(s=s.replace("{titleId}",t)),r&&(s=s.replace("{lang}",r)),s.endsWith("/")||(s+="/"),s.startsWith("/")||(s="/"+s),s}function Xe(a,e){const t=[...e],r=[];let s=!1,n=0;const i=Math.min(a.length,100);for(let o=0;o<i;o++){if(n>=10/2){const h=10-r.length;if(h>0){const v=o+h<=a.length?a.slice(o,o+h):t.slice(0,h);r.push(...v)}break}const c=a[o],u=c.id!==void 0,g=t.findIndex(h=>u&&h.id===c.id||h.slug===c.slug||h.name==c.name),p=g===-1?void 0:t.splice(g,1)[0];!p||p.chapters[0]?.chap!==c.chapters[0]?.chap?(s=!0,r.push({...c,changed:!0})):(n++,r.push(c))}if(!s)return{hasMore:!1,rawReleases:[]};if(r.length<=10)return{hasMore:!!a[a.length-1]?.changed,rawReleases:r};const l=[];for(let o=0;o<r.length;o++){const c=r[o];(c.changed||o<10)&&l.push(c)}return{hasMore:e.length<2||e.length-t.length<2,rawReleases:l}}function et(a,e){const t={};return a.forEach(r=>{const s=r.chapters.reduce((n,i)=>{const l=i.lang||e||"";return n[l]||(n[l]=[]),n[l].push(i),n},{});Object.entries(s).forEach(([n,i])=>{const l=`${r.slug}:${n}`;t[l]?(t[l].chapters.push(...i),z(t[l].chapters)):t[l]={...r,lang:n===""?void 0:n,chapters:i}})}),Object.values(t)}var b=(a=>(a.title="title",a.reader="reader",a.releases="releases",a.chapters="chapters",a.search="search",a))(b||{}),tt=Object.defineProperty,at=(a,e,t)=>e in a?tt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,$=(a,e,t)=>(at(a,typeof e!="symbol"?e+"":e,t),t);class W{constructor(e){$(this,"headless"),$(this,"siteId"),$(this,"spec"),$(this,"siteMeta"),$(this,"tags"),$(this,"context"),$(this,"methodsMap",{[b.title]:()=>this.getRawTitleData(),[b.reader]:()=>this.getRawReaderData(),[b.releases]:()=>this.getRawReleasesData(),[b.search]:()=>this.getRawSearchData(),[b.chapters]:()=>this.getRawChaptersData()}),$(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 getRawSearchData(){throw new Error("Unimplemented")}async getRawPageByType(e,t=!1){const r=await this.methodsMap[e](),s=!r&&(e===b.title||e===b.reader)&&await st(this.spec);if(t&&!r&&!s)return;const n=location.origin+location.pathname;return{type:e,is404:s,specId:this.spec.id,siteName:d(this.spec.name),url:n,data:r,spec:this.spec,context:this.context}}parseReaderSlug(e,t,r){let s=t;if(s[0]!=="/"&&s.includes("/"))try{s=new URL(t,location.href).pathname}catch{}if(s.endsWith("/")&&(s=s.slice(0,-1)),e.startsWith("/")||(e="/"+e),e.endsWith("/")||(e=e+"/"),e.includes("{")){const n=e.split("/").filter(Boolean),i=s.split("/").filter(Boolean);if(n.length<i.length){const l=i[n.indexOf("{lang}")],o=i[n.indexOf("{titleId}")],c=i[n.indexOf("{titleSlug}")],u=e.replace("{lang}",l).replace("{titleId}",o).replace("{titleSlug}",c);if(s.startsWith(u))return{basePath:u,lang:l?.toLowerCase(),titleId:o,titleSlug:c,slug:s.replace(u,"")}}}else if(s.startsWith(e))return{basePath:e,slug:s.replace(e,"")};return{basePath:"",slug:s[0]==="/"?s.substring(1):s}}parseTitleSlug(e){if(typeof e!="string")return{};const t=S(e),r=t?.split("/").filter(Boolean);if(!r?.length)return{};const s=this.siteMeta.titleBase.split("/").filter(Boolean),n=s.indexOf("{slug}");return(n===-1?r.length-s.length>=1:r.length===s.length)?{id:r[s.indexOf("{id}")],slug:n===-1?r.slice(s.length).join("/"):r[n]}:{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?Xe(r,this.context.oldRawReleases):{rawReleases:r,hasMore:!0}}getTagIdsFromNames(e){if(!e?.length)return;const t=this.normalizedTagsMap??(this.normalizedTagsMap=rt(this.tags)),r=e.map(s=>t[F(s)]).filter(Boolean);return r.length===0?void 0:Array.from(new Set(r)).sort((s,n)=>s-n)}}$(W,"specId"),$(W,"siteId");function rt(a){const e={};return a.forEach(({id:t,name:r,altNames:s})=>{e[F(r)]=t,s&&s.forEach(n=>{e[F(n)]=t})}),e}function F(a){const e=a.toLowerCase().replaceAll(" ","").replaceAll("-","");return e[e.length-1]==="s"?e.substring(0,e.length-1):e}async function st(a){return nt()===404||a[404]&&await x(a[404],{lazy:!0,timeoutMs:5e3})?!0:document.title.toLowerCase().includes("not found")}function nt(){try{return window.performance.getEntries().find(a=>a.entryType==="navigation")?.responseStatus}catch{return}}class m extends W{async getRawReleasesData(){if(!this.spec?.releases?.title)return;const{chapter:e,...t}=this.spec.releases.title,r=await x(t.sel,{lazy:!0,all:!0});if(!r?.length)return;const s=r.slice(0,100).map(i=>{const l=d(t.url,i),o=S(l),c=d(t.name,i),u=d(t.at,i);if(!(!o||!c))return{titleEl:i,id:d(t.id,i),path:o,name:c,lang:d(t.lang,i)?.toLowerCase(),at:K(u,this.siteMeta.defaultLang)}}).filter(Boolean);if(!s.length)return;const n=[];return await Promise.all(s.map(async i=>{const{path:l,titleEl:o,lang:c,at:u,...g}=i,{id:p,slug:h}=this.parseTitleSlug(l);if(!h)return;const v=g.id||p,w=await this.getChapters(e,{root:o,titleId:v,titleSlug:h,lang:c})??[];w.length&&n.push({slug:h,chapters:c||u?w.map(y=>({...y,elIndex:void 0,lang:y.lang??c,ts:y.ts??u})):w,...g,id:v})})),this.finalizeRawReleasesData({rawReleases:n})}getRawTitleData(){return this.getTitleData(this.spec.title)}async getTitleData(e){if(!e||(e.sel||e.lazy)&&!await x(e.sel??e.name,{lazy:!!e.lazy}))return;const t=d(e.name);if(!t)return;const{id:r,slug:s}=this.parseTitleSlug(location.pathname);if(!s)return;const n=_(e.tags)?.map(p=>p.split(",")).flat().map(p=>p.trim()).filter(Boolean),i=d(e.type),l=_(e.langs)?.map(p=>p.toLowerCase()),o=r||d(e.id),c=await this.getChapters(e.chapter,{lazy:!0,titleId:o,titleSlug:s})??[],u=e.img?await this.getValidImgSrc(e.img):void 0,g=u&&this.context.includeImgBytes?await Je(u):void 0;return{id:o||d(e.id),url:location.origin+location.pathname,slug:s,name:t,langs:l?.length?l:e.langs&&this.siteMeta.defaultLang?[this.siteMeta.defaultLang]:void 0,tags:this.getTagIdsFromNames([...n??[],...i?[i]:[]]),chapters:c,hasMoreChapters:e.hasMore?!!document.querySelector(e.hasMore):void 0,img:u,imgBytes:g,firstUrl:this.getFirstChapterUrl()}}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){return N(33,30,()=>{const t=d(e);return t&&!t.startsWith("data:")?t.split(" ")[0]:void 0})}getRawReaderTitleData(e){const t=this.spec.reader?.title;if(!t)return;const r=t.sel?document.querySelector(t.sel)??void 0:void 0,s=d(t.name,r);if(!s)return;const n=ee(d(t.img,r));if(e?.slug){let c=this.spec.meta.titleBase;e?.id&&(c=c.replace("{id}",e.id));const u=c.includes("{slug}");if(u&&(c=c.replace("{slug}",e.slug)),!c.includes("{")){c=u?c:`${c}/${e.slug}`;const g=this.spec.meta.trailing?"/":"",p=`${location.origin}/${c}${g}`;return{name:s,img:n,url:p,slug:e.slug,id:e.id||d(t.id)}}}const i=d(t.url,r),{slug:l,id:o}=this.parseTitleSlug(i);if(!(!s||!i||!l))return{name:s,img:n,url:i,slug:l,id:o||d(t.id)||e?.id}}async getRawReaderData(){const{spec:e,siteMeta:t}=this;if(!e?.reader||!await m.isReaderPage(e.reader,!!e.generic))return;const r=e.reader.content;if(!(!r||await m.verifyImgsCotainer(r)))return;const s=this.parseReaderSlug(t.readerBase,location.pathname,location.href),{slug:n,basePath:i,lang:l}=s,o=this.getRawReaderTitleData({id:s.titleId,slug:s.titleSlug});if(!o)return;const{id:c,slug:u}=o,g=e.reader?.chapter,p=!!this.context.disableLazyChapters,h=!!this.context.includeHiddenChapters,v=await this.getChapters(g,{titleId:c,titleSlug:u,lang:l,lazy:h||!p,includeHiddenChapters:h,timeoutMs:h?3e3:29e3,includeIndex:!0,basePath:i})??[],w=d(e.reader.label)?.toLowerCase().replace(o.name.toLowerCase(),"");if(!w)return;const{vol:y,chap:I=0}=O(w)||{},f=this.findNeighborChapter({sel:e.reader.prev,basePath:i}),D=this.findNeighborChapter({sel:e.reader.next,basePath:i});return this.finalizeRawReaderData({vol:y,chap:I,lang:l??d(e.reader.lang)?.toLowerCase()??(e.reader.lang?this.siteMeta.defaultLang:void 0),slug:n,basePath:i,group:d(e.reader.group),imgs:_(e.reader.imgs),title:{id:c||d(this.spec.reader?.title.id),url:o.url,slug:u,name:o.name,langs:l?[l]:void 0,img:o.img,chapters:v,hasMoreChapters:!v.length&&!h&&!!this.context.disableLazyChapters&&!!g?.label}},{prevSlug:f,nextSlug:D})}async getRawChaptersData(){const e=this.siteMeta.chapters;if(e===A.blank)return;const t=e===A.reader,r=!e||e===A.title,s=t?(await this.getRawReaderData())?.title:r?await this.getRawTitleData():void 0;let n=s?.chapters;if(!t&&!r&&(n=await this.getChapters(this.spec.chapters?.chapter,{titleId:s?.id,titleSlug:s?.slug,lazy:this.spec.chapters?.lazy})),!n)return;const{lang:i}=this.context,l=i?n.filter(o=>!o.lang||o.lang===i):n;return{chapters:l,title:s?{...s,chapters:[]}:await this.getTitleData(this.spec.chapters?.title),hasMore:!1,asc:!1,total:l.length}}async getRawSearchData(){const e=this.spec.search?.title;if(!e)return;const{chapter:t}=e,r=[];return await Promise.all(Array.from(document.querySelectorAll(e.sel)).map(async s=>{const n=d(e.url,s),i=S(n),l=d(e.name,s),{slug:o,id:c}=this.parseTitleSlug(i);!i||!l||!o||r.push({id:c,slug:o,name:l,chapters:await this.getChapters(t,{root:s,titleId:c,titleSlug:o})??[]})})),r.length?{rawReleases:r}:void 0}async getChapters(e,{root:t,titleId:r,titleSlug:s,lang:n,includeHiddenChapters:i=!1,lazy:l=!0,timeoutMs:o,includeIndex:c,basePath:u}={}){if(!e||!e.sel||!e.label)return;let g=null;if(e.trigger){if(!i||(g=document.querySelector(e.trigger),!g))return;g.click()}const p=[],h=await x(e.sel,{root:t,all:!0,lazy:l,timeoutMs:o});if(!h?.length)return g?.click(),[];const v=(h??[]).map((f,D)=>({id:d(e.id,f),label:d(e.label,f),url:d(e.url,f),at:d(e.at,f),elIndex:D}));g?.click();const w=v.map(({label:f})=>O(f)),y=w[1]?.chap;!w[0]&&(y===void 0||y<=1)&&(w[0]={chap:0});const I=u??Ke(this.siteMeta.readerBase,{titleId:r,titleSlug:s,lang:n});return w.forEach((f,D)=>{if(!f)return;const{id:k,url:C,at:H,elIndex:R}=v[D],E={...f,id:k,ts:K(H,this.siteMeta.defaultLang)};c&&(E.elIndex=R);const Te=C?.startsWith("http")&&!C.includes(`//${location.hostname}/`),G=Te?C:S(C);if(!G){p.push(E);return}if(Te){p.push({...E,slug:G});return}const{slug:Ra,lang:Sa}=this.parseReaderSlug(I,G,C);p.push({...E,slug:Ra,lang:Sa})}),z(p)}static async isReaderPage(e,t){const r=e.sel;return t&&!r?!1:!r||!!await x(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 x(t,{lazy:!0,all:!1})}findNeighborChapter({sel:e,basePath:t}){const r=d(e);if(!r||r.startsWith("#")||r.startsWith("/#"))return;const s=S(r);if(s)return this.parseReaderSlug(t,s,r).slug||void 0}finalizeRawReaderData(e,{prevSlug:t,nextSlug:r}={}){const s=e.title.chapters;if(!s.length){const c=O(t),u=O(r);return!c&&!u?e:{...e,prev:c?{...c,slug:t}:void 0,next:u?{...u,slug:r}:void 0}}let n,i,l,o;for(let c=0;c<s.length&&!(n&&(!t||l)&&!r&&o);c++){const u=s[c];!n&&(e.slug==u.slug||e.chap===u.chap&&(e.vol===u.vol||e.vol===void 0))?(n=u,i=c):!l&&t===u.slug?l=u:!o&&r===u.slug&&(o=u)}return i!==void 0&&(l??(l=s[i+1]),o??(o=s[i-1])),{...e,inferVol:n?.inferVol,prev:l,next:o}}}var it=Object.defineProperty,ot=(a,e,t)=>e in a?it(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,lt=(a,e,t)=>(ot(a,typeof e!="symbol"?e+"":e,t),t);class te extends m{parseTitleSlug(e){return{slug:S(e)?.split("/").filter(Boolean)[1]}}async getRawTitleData(){if(!(!this.headless&&navigator.userAgent.toLowerCase().includes("android")))return await super.getRawTitleData()}}lt(te,"specId","bato");function ct(){return Math.random().toString(16).slice(2)}async function ut({addListener:a,removeListener:e,transform:t,filter:r,handler:s,onTimeout:n,timeout:i,once:l}){return new Promise(o=>{a(g);const c=()=>l===!0&&e(g),u=i?setTimeout(()=>{c(),o(void 0),n?.()},i):void 0;async function g(p,...h){p=t?t(p):p,p!==void 0&&(!r||r(p,...h))&&(c(),o(p),s?.(p,...h),u&&clearTimeout(u))}})}async function gt(a){return(await ut({addListener:e=>window.addEventListener("message",e),removeListener:e=>window.removeEventListener("message",e),...a}))?.data}async function dt(a){const{receiverWindow:e,timeout:t,targetOrigin:r,event:s,args:n}=a,i={reqId:ct(),event:s,args:n};return(e||window)?.postMessage(i,r??"*"),(await gt({filter:l=>l?.data?.resId===i.reqId,timeout:t??3e4,once:!0}))?.result}const L={isAny:!0};function T(a,...e){return dt({event:"tk:fetchResult",args:{baseUrl:a,segments:e}})}var pt=Object.defineProperty,ht=(a,e,t)=>e in a?pt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ft=(a,e,t)=>(ht(a,typeof e!="symbol"?e+"":e,t),t);const ae=class Ce extends m{async getRawReleasesData(){let e;try{const r=Array.from({length:2},async(s,n)=>{const i=`https://api.${location.host}/chapter?accept_erotic_content=true&page=${n+1}&order=new`;return(await fetch(i)).json()});e=(await Promise.all(r)).flat()}catch{return}const t=[];return e.forEach(r=>{const{vol:s,chap:n,hid:i,lang:l,updated_at:o,md_comics:c}=r,u=typeof n=="string"&&!isNaN(+n)?+n:void 0;typeof u=="number"&&t.push({id:c.hid,slug:c.slug,name:c.title,chapters:[{slug:i,vol:typeof s=="string"&&!isNaN(+s)?+s:void 0,chap:u,lang:l,ts:new Date(o).valueOf()}]})}),super.finalizeRawReleasesData({rawReleases:t})}async getRawTitleData(){const e=await super.getRawTitleData();if(!e)return e;const t=await T(`https://api.${location.host}`,"comic",L,"chapters");if(!t)return e;const r=t.url.split("/").filter(Boolean).slice(-2)[0],s=re(t.value),n=d("h1 ~ div.text-sm span:first-child|row:demographic"),i=n?this.getTagIdsFromNames([n])?.[0]:void 0;return i&&!e.tags?.includes(i)&&(e.tags?.push(i),e.tags?.sort((l,o)=>l-o)),{...e,img:e.img??ee(d(this.spec.title?.img)),id:r,hasMoreChapters:s?.hasMore??!1,chapters:s?.chapters??[]}}async getRawReaderData(){const e=await super.getRawReaderData();return e&&{...e,lang:e.lang&&e.lang?.length<=6?e.lang:Ce.getLangFromReaderSlug(e.slug)||e.lang}}static getLangFromReaderSlug(e){const t=e.split("-");let r;for(let s=t.length-1;s>0;s--){const n=t[s];if(!isNaN(+n))break;r=r?`${n}-${r}`:n}return r&&r.length<=6?r:void 0}async getRawChaptersData(){const{rawId:e,lang:t="en",skip:r,preferGroup:s}=this.context;if(!e)return;const n=r?Math.floor(r/1e3)+1:void 0;try{const i=await fetch(`https://api.${location.host}/comic/${e}/chapters?lang=${t}&limit=1000${n&&n>1?`&page=${n}`:""}`),l=re(await i.json(),s??"_");return l?{...l,lang:t,asc:!1}:void 0}catch{return}}};ft(ae,"specId","comick");let mt=ae;function re(a,e){if(!Array.isArray(a?.chapters))return;const t=[];return a.chapters.forEach(r=>{const{vol:s,chap:n,hid:i,lang:l,updated_at:o,group_name:c}=r,u=typeof n=="string"&&!isNaN(+n)?+n:void 0;typeof u=="number"&&t.push({slug:i,vol:typeof s=="string"&&!isNaN(+s)?+s:void 0,chap:u,lang:l||"en",group:c?.[0]||void 0,ts:new Date(o).valueOf()})}),{chapters:z(t,{preferGroup:e}),total:a.total??t.length,hasMore:a.total>a.limit}}var wt=Object.defineProperty,vt=(a,e,t)=>e in a?wt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,yt=(a,e,t)=>(vt(a,typeof e!="symbol"?e+"":e,t),t);class se extends m{async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=window.pages,r=t?.map(s=>s?.image).filter(Boolean);if(!(!Array.isArray(r)||!r.length))return{...e,imgs:r,isWebtoon:t.some(s=>s.height/s.width>2)}}}yt(se,"specId","dynasty");var bt=Object.defineProperty,Rt=(a,e,t)=>e in a?bt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,St=(a,e,t)=>(Rt(a,typeof e!="symbol"?e+"":e,t),t);class ne extends m{async getRawChaptersData(){const e=this.context.titleSlug;if(!e)return;const t=`https://api.${location.host}/chapter/all/${e}`;return{chapters:(await(await fetch(t)).json()).map($t).filter(Boolean)}}}St(ne,"specId","lua");function $t(a){if(!a||typeof a.chapter_name!="string")return;const e=O(a.chapter_name);if(e)return{...e,slug:typeof a.chapter_slug=="string"?a.chapter_slug:void 0,ts:typeof a.created_at=="string"?new Date(a.created_at).valueOf():void 0}}function ie(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 xt=Object.defineProperty,It=(a,e,t)=>e in a?xt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Dt=(a,e,t)=>(It(a,typeof e!="symbol"?e+"":e,t),t);class V extends m{async getRawReleasesData(){const e=this.detectNewSiteMeta(this.spec.releases,this.siteMeta);this.siteMeta=e??this.siteMeta;const t=await super.getRawReleasesData();if(t)return{...t,siteMeta:e}}async getRawTitleData(){const e=this.spec.title?.sel;if(e&&!await document.querySelector(e))return;const t=this.finalizeNewSiteMeta(this.siteMeta,{titleBase:this.extractBasePath(location.pathname)});this.siteMeta=t??this.siteMeta;const r=await super.getRawTitleData();if(r)return{...r,siteMeta:t}}async getRawReaderData(){const e=this.spec.reader?.sel;if(e&&!await document.querySelector(e))return;const t=oe(this.spec.reader?.title),r=t?this.finalizeNewSiteMeta(this.siteMeta,{titleBase:this.extractBasePath(S(t))}):void 0,s=await super.getRawReaderData();if(s)return{...s,siteMeta:r}}async getRawSearchData(){const e=oe(this.spec.search?.title);if(!e)return;const t=this.finalizeNewSiteMeta(this.siteMeta,{titleBase:this.extractBasePath(S(e))});this.siteMeta=t??this.siteMeta;const r=await super.getRawSearchData();if(r)return{...r,siteMeta:t}}detectNewSiteMeta(e,t){if(!e)return;const r=e.title,s=document.querySelector(r.sel)??void 0;if(!s)return;const n=S(d(r.url,s));if(n!==void 0)return this.finalizeNewSiteMeta(t,{titleBase:this.extractBasePath(n)})}finalizeNewSiteMeta(e,{titleBase:t}){if(e.titleBase!==t)return{...e,titleBase:t,readerBase:e.readerBase.replace(e.titleBase,t)}}extractBasePath(e){return ie(e,"/").split("/").slice(0,-1).join("/")}}Dt(V,"specId","madara");function oe(a){if(!a)return;const e=a.sel?document.querySelector(a.sel)??void 0:void 0;return d(a.url,e)}var Mt=Object.defineProperty,Tt=(a,e,t)=>e in a?Mt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ct=(a,e,t)=>(Tt(a,typeof e!="symbol"?e+"":e,t),t);const Pt={a:.1,b:.2,c:.3,d:.4};class le extends W{parseTitleSlug(e){return{slug:S(e)?.split("/").filter(Boolean)[1]}}async getRawReleasesData(){let e=[];try{e=(await(await fetch("https://api.mangadex.org/chapter?limit=96&offset=0&includes[]=manga&contentRating[]=safe&contentRating[]=suggestive&contentRating[]=erotica&contentRating[]=pornographic&order[readableAt]=desc")).json()).data}catch{return}const t=[];return e.forEach(({relationships:r,attributes:s,id:n})=>{const i=r.find(({type:g})=>g==="manga"),l=M(s.volume),o=M(s.chapter);if(o===void 0)return;const{title:c}=i.attributes,u=c.en??Object.values(c)[0];t.push({slug:i.id,name:u,chapters:[{slug:s.externalUrl||n,vol:l,chap:o,lang:s.translatedLanguage,ts:new Date(s.readableAt).valueOf()}]})}),super.finalizeRawReleasesData({rawReleases:t})}async getRawTitleData(){const e="https://api.mangadex.org/manga/",[t,r]=await Promise.all([T(e,L),T(e,L,"feed")]);if(!t||!r)return;const s=r.value.data?.map?.(o=>{const{attributes:c,id:u}=o;if(typeof c!="object"||typeof u!="string"||!u)return;const{externalUrl:g,title:p,volume:h,chapter:v,translatedLanguage:w}=c;return{slug:g||u,label:p||void 0,vol:M(h),chap:M(v),lang:w||"en",ts:new Date(c.readableAt).valueOf()}}).filter(o=>o?.chap!=null)??[],{data:n}=t.value;if(!n)return;const i=ue({data:n,getTagIdsFromNames:o=>this.getTagIdsFromNames(o)});if(!i)return;const l=this.context.includeImgBytes&&i.img?await Z(i.img):void 0;return{...i,imgBytes:l,chapters:z(s),hasMoreChapters:(r.value.total||0)>(r.value.limit||0)}}async getRawReaderData(){const e="https://api.mangadex.org/",[t,r,s]=await Promise.all([T(e,"chapter",L),T(e,"at-home","server",L),T(e,"manga",L,"aggregate")]);if(!t||!r||!s)return;const n=t.value.data,{volume:i,chapter:l,externalUrl:o,translatedLanguage:c}=n.attributes||{},{baseUrl:u,chapter:{data:g,dataSaver:p,hash:h}}=r.value,v=n.relationships?.find?.(R=>R.type==="manga");if(!v)return;const w=ue({data:v,getTagIdsFromNames:R=>this.getTagIdsFromNames(R)});if(!w||typeof s.value.volumes!="object")return;const y=ce(s.value)??[];(typeof l!="string"||l==="none")&&!y.length&&y.push({chap:0,slug:n.id});const I=y.findIndex(R=>R.slug===n.id),f=n.relationships?.find?.(R=>R.type==="scanlation_group"),D=u.endsWith("/")?u:u+"/",k=!!localStorage.getItem("md")?.includes?.('"dataSaver":true'),C=`${D}${k?"data-saver":"data"}/`,H=((k?p:g)??[]).map?.(R=>`${C}${h}/${R}`)??[];return{externalUrl:o,vol:M(i),inferVol:y[I]?.inferVol,chap:M(l)||0,imgs:H,lang:c,slug:n.id,prev:y[I+1],next:y[I-1],basePath:"/chapter/",groupName:f?.attributes?.name,groupUrl:f?.attributes?.website,isWebtoon:v?.attributes?.tags?.some(R=>R.attributes.name.en==="Long Strip"),title:{...w,chapters:y}}}async getRawChaptersData(){const{titleSlug:e,lang:t="en"}=this.context;let r;try{const s=await fetch(`https://api.mangadex.org/manga/${e}/aggregate?translatedLanguage[]=${t}`);r=ce(await s.json())}catch{return}if(r)return{chapters:r,lang:t,asc:!1,hasMore:!1,total:r.length}}}Ct(le,"specId","mangadex");function M(a){if(typeof a!="string"||a==="none")return;const e=parseFloat(a);if(e!==e)return;const t=a[a.length-1];return e+(Pt[t]??0)}function ce(a){if(typeof a.volumes!="object")return;const e=Object.values(a.volumes).map(({volume:t,chapters:r})=>{const s=M(t);return Object.values(r).map(({id:n,chapter:i})=>{const l=M(i);if(l!==void 0)return{vol:s,chap:l,slug:n}})}).flat().filter(Boolean).reverse();return z(e)}function ue({data:a,getTagIdsFromNames:e}){const{id:t,attributes:r,relationships:s}=a;if(!t||typeof t!="string"||typeof r!="object")return;const{title:n,availableTranslatedLanguages:i,altTitles:l,tags:o,contentRating:c}=r;if(typeof n!="object"||i&&!Array.isArray(i))return;const u=Object.values(n)[0];if(!u||typeof u!="string")return;const g=Bt(),p=(i??[])?.map?.(f=>typeof f=="string"?f:void 0).filter(Boolean)??[],h=p.filter(f=>f&&(!g||g.includes(f))),v=l?.map?.(f=>{const[[,D]=[]]=Object.entries(f);return D}),w=s?.find?.(f=>f.type==="cover_art")?.attributes?.fileName,y=w?`https://mangadex.org/covers/${t}/${w}.256.jpg`:void 0,I=(o||[]).map(f=>f?.attributes?.name?.en).concat(c).filter(Boolean);return{url:`${location.origin}/title/${t}`,slug:t,name:u,altNames:v,langs:h.length>0?h:p.length>0?p:["en"],img:y,tags:e(I)}}function Bt(){const a=localStorage.getItem("md");if(a)try{const e=JSON.parse(a)?.userPreferences?.filteredLanguages;return e?.length?e:void 0}catch{return}}var jt=Object.defineProperty,Ot=(a,e,t)=>e in a?jt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Lt=(a,e,t)=>(Ot(a,typeof e!="symbol"?e+"":e,t),t);class ge extends m{async getRawReleasesData(){const e=await super.getRawReleasesData();if(e)return{...e,rawReleases:e.rawReleases.map(t=>({...t,id:t.id?.split("?")[0]}))}}async getRawReaderData(){if((await x(".current-viewtype",{lazy:!0,all:!1}))?.textContent?.trim().toLowerCase()!=="volume")return await super.getRawReaderData()}async getRawChaptersData(){const{lang:e}=this.context;if(!e)return;const t=await x(`.tab-content[data-name="chapter"] a.dropdown-item[data-code="${e.toUpperCase()}"]`,{lazy:!0,all:!1});if(t)return t.click(),await x(`.tab-content[data-name="chapter"] li.item[data-number] a[href*="/${e}/"]`,{lazy:!0,all:!1}),await super.getRawChaptersData()}}Lt(ge,"specId","mangafire");var Nt=Object.defineProperty,_t=(a,e,t)=>e in a?Nt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,zt=(a,e,t)=>(_t(a,typeof e!="symbol"?e+"":e,t),t);class de extends m{async getRawReaderData(){const e=await super.getRawReaderData();return e&&{...e,imgs:await this.getImgs()}}parseReaderSlug(e,t){const{slug:r,basePath:s}=super.parseReaderSlug(e,t),n=r.split("/").filter(Boolean),i=n[n.length-1];return{basePath:s,slug:i.startsWith("pg-")?n.slice(0,-1).join("/"):r}}async getImgs(){const e=await N(100,20,()=>window.imgsrcs),t=window.CryptoJS,r=t.enc.Hex.parse("e11adc3949ba59abbe56e057f20f883e"),s={iv:t.enc.Hex.parse("1234567890abcdef1234567890abcdef"),padding:t.pad.ZeroPadding};return t.AES.decrypt(e,r,s).toString(t.enc.Utf8).split(",")}}zt(de,"specId","mangago");var At=Object.defineProperty,Wt=(a,e,t)=>e in a?At(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,kt=(a,e,t)=>(Wt(a,typeof e!="symbol"?e+"":e,t),t);class pe extends m{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]}))}}}kt(pe,"specId","mangaplus");var Et=Object.defineProperty,Ut=(a,e,t)=>e in a?Et(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,qt=(a,e,t)=>(Ut(a,typeof e!="symbol"?e+"":e,t),t);class he extends m{async getRawReleasesData(){const e=await super.getRawReleasesData();if(e)return{...e,rawReleases:e.rawReleases.map(t=>({...t,id:t.slug.substring(t.slug.lastIndexOf("-")+1)||void 0}))}}}qt(he,"specId","mangareader");var Ft=Object.defineProperty,Vt=(a,e,t)=>e in a?Ft(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ht=(a,e,t)=>(Vt(a,typeof e!="symbol"?e+"":e,t),t);class fe extends V{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((s,n)=>n.time-s.time);const r=t[0].manga_ID;return typeof r=="string"?r:typeof r=="number"?r+"":void 0}detectNewSiteMeta(e,t){if(this.siteId==="realm"||!e)return;const r={...t,releases:ie(location.pathname,"/")},s=e.title,n=document.querySelector(s.sel)??void 0;if(!n)return;const i=S(d(s.url,n));if(i===void 0)return;const l=n.querySelector(s.chapter.sel)??void 0;if(!(!l||S(d(s.chapter.url,l))===void 0))return r.titleBase=this.extractBasePath(i),t.titleIdType===q.id&&(d(s.id,n)||(t.titleIdType=q.name)),this.finalizeNewSiteMeta(t,r)}finalizeNewSiteMeta(e,t){if(this.siteId==="realm")return;const r=Object.keys(t),s={...e};let n=!1;return r.forEach(i=>{const l=t[i];l!==e[i]&&(s[i]=l,n=!0)}),n?s:void 0}}Ht(fe,"specId","mangastream");var Gt=Object.defineProperty,Qt=(a,e,t)=>e in a?Gt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Jt=(a,e,t)=>(Qt(a,typeof e!="symbol"?e+"":e,t),t);class me extends m{async getRawReaderData(){const e=await super.getRawReaderData();if(e)return{...e,title:{...e.title,name:e.title.name.replace("Ritorna a","").trim()}}}}Jt(me,"specId","mangaworld");var Yt=Object.defineProperty,Zt=(a,e,t)=>e in a?Yt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Kt=(a,e,t)=>(Zt(a,typeof e!="symbol"?e+"":e,t),t);class we extends m{async getRawTitleData(){const e=await super.getRawTitleData();if(e)return{...e,hasMoreChapters:e.chapters.length===50}}}Kt(we,"specId","mgeko");var Xt=Object.defineProperty,ea=(a,e,t)=>e in a?Xt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ta=(a,e,t)=>(ea(a,typeof e!="symbol"?e+"":e,t),t);class ve extends m{async getRawTitleData(){const e=await super.getRawTitleData();if(!e)return;const t=_(".info-detail__row > .genre-btn,.info__right .stats__row:first-child|text")?.map(r=>[r,...r.split(" ")]).flat();return ye({...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:{...ye({...e.title,url:t,tags:[]},".episode-list .js-ep-cnt"),hasMoreChapters:!1}}}async getRawChaptersData(){const{rawId:e,skip:t}=this.context,r=1e3,s=t?Math.floor(t/1e3)+1:1;try{const n=await fetch(`/series/${e}/episodes?page=${s}&sort=NEWEST&max_limit=${r}`);return aa(await n.json())}catch{return}}parseTitleSlug(e){if(!e)return{};const t=e.split("/").filter(Boolean);return{slug:t[1]??t[0]}}}ta(ve,"specId","tapas");function ye(a,e){const t=ra(e)>20;return{...a,chapters:t?[]:a.chapters,hasMoreChapters:t}}function aa(a){const e=a?.data?.episodes;if(!Array.isArray(e))return;const t=e.map(s=>({chap:s.pending_scene??s.scene,slug:s.id+"",ts:new Date(s.publish_date)?.valueOf?.()||void 0})),r=a?.data?.pagination;return{chapters:t,total:r?.total??t.length,hasMore:!!r?.has_next}}function ra(a){return+(document.querySelector(a)?.textContent?.trim().split(" ")[0]||0)}var sa=Object.defineProperty,na=(a,e,t)=>e in a?sa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ia=(a,e,t)=>(na(a,typeof e!="symbol"?e+"":e,t),t);class be extends m{async getRawReleasesData(){const e=await super.getRawReleasesData();if(e)return{...e,rawReleases:e.rawReleases.map(t=>({...t,id:oa(t.slug)}))}}}ia(be,"specId","truyenqq");function oa(a){return a.substring(a.lastIndexOf("-")+1).replace(".html","")||void 0}var la=Object.defineProperty,ca=(a,e,t)=>e in a?la(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ua=(a,e,t)=>(ca(a,typeof e!="symbol"?e+"":e,t),t);class Re extends m{async getRawTitleData(){const e=await super.getRawTitleData();return e?.img?{...e,img:ga(e.img)}:e}getRawReaderTitleData(e){const t=super.getRawReaderTitleData(e);if(t)return{...t,name:t.name.split(" Chapter")[0]}}async getRawChaptersData(){const e=await this.getRawTitleData();if(!e)return;const t=T(location.origin,"api","chapters"),r=document.querySelector('button[data-key="chapters"]');if(!r)return;r.click();const s=setInterval(()=>r.click(),100),n=await t;if(clearInterval(s),!n?.value)return;const i=n.url.split("?")[1];if(!i)return;const l=new URLSearchParams(i).get("postId");if(!l)return;const o=n.value?.totalChapterCount;if(!o||o<50){const g=Se(n.value);return g?{chapters:g,title:e,hasMore:!1,skip:0,total:o}:void 0}const c=await fetch(`${location.origin}/api/chapters?postId=${l}&skip=0&take=1000&order=desc`),u=Se(await c.json());if(u)return{chapters:u,title:e,total:o,skip:0,hasMore:!1}}}ua(Re,"specId","vortex");function ga(a){try{return new URL(a,location.href).searchParams.get("url")||a}catch{return a}}function Se(a){const e=a?.post?.chapters;if(e)return e.map(t=>({slug:t.slug,chap:t.number,ts:t.createdAt?new Date(t.createdAt)?.valueOf?.():void 0})).filter(t=>t.slug&&typeof t.chap=="number")}var da=Object.defineProperty,pa=(a,e,t)=>e in a?da(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ha=(a,e,t)=>(pa(a,typeof e!="symbol"?e+"":e,t),t);class $e extends m{async getRawTitleData(){const e=new URLSearchParams(location.search),t=e.get("episode_no"),r=e.get("title_no");if(t||!r)return;const s=await super.getRawTitleData();if(!s)return;const n=location.pathname.split("/")[1];return{...s,slug:`${s.slug}?title_no=${r}`,id:r,langs:[n].filter(Boolean),chapters:s.chapters.map(i=>({...i,lang:n})),hasMoreChapters:(document.querySelector(".paginate")?.childElementCount??1)>1}}async getRawReaderData(){const e=new URLSearchParams(location.search),t=e.get("episode_no"),r=e.get("title_no");if(!t||!r)return;const s=O(d(".paginate > span:not(:first-child)|text"));if(s===void 0)return;const{chap:n}=s,i=document.title.split("|")[1]?.trim();if(!i)return;const l=location.pathname.split("/"),o=`${l.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 || .num|text"},{lazy:!1,titleId:r,titleSlug:o}),u=l[1];return{chap:n,lang:u,slug:`${location.pathname}?title_no=${r}&episode_no=${t}`,basePath:"",imgs:await this.getReaderImgs(),isWebtoon:!0,title:{id:r,url:o,slug:o,name:i,langs:[u],chapters:(c??[]).map(g=>({...g,lang:u})),hasMoreChapters:!1}}}async getReaderImgs(){const e=_("#_imageList img|[attr:data-url,attr:src]");return e?.length?e:await N(100,50,()=>window.__viewerState__?.scrollViewerParam?.imageList?.map(({url:t})=>t).filter(Boolean))}parseReaderSlug(e,t,r){if(!r)return{basePath:"",slug:t};if(r.startsWith("http://")||r.startsWith("https://")){const s=U(r);return{basePath:"",slug:s.pathname+s.search}}return{basePath:"",slug:r}}}ha($e,"specId","webtoon");var fa=Object.defineProperty,ma=(a,e,t)=>e in a?fa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,wa=(a,e,t)=>(ma(a,typeof e!="symbol"?e+"":e,t),t);class xe extends m{async getRawChaptersData(){const{rawId:e}=this.context;if(!e)return;const t=await va(e);if(!t)return;const r=document.createElement("DIV");r.innerHTML=t;const s=await this.getChapters({sel:'a[href*="/chapters/"]',url:"|attr:href",label:"span span|text",at:"time|attr:datetime"},{root:r,lazy:!0});if(s)return{chapters:s,hasMore:!1,asc:!1,total:s.length}}}wa(xe,"specId","weebcentral");async function va(a){const e=`https://weebcentral.com/series/${a}/full-chapter-list`;try{return await(await fetch(e)).text()}catch{return}}const ya=[te,mt,se,ne,V,le,ge,de,pe,he,fe,me,we,ve,Re,be,$e,xe];function Ie(a){const e=ya.find(t=>t.specId===a.spec.id)??m;return new e(a)}async function ba(a){const{spec:e}=a;if(e){const t=a.siteMeta??e.meta,r=a.type?[a.type]:De(t,e.generic);if(!r.length)return;const s=Ie({...a,spec:e,siteMeta:t});return await B(r.map(n=>s.getRawPageByType(n,r.length>1)))}return await B((a.genericSpecs??[]).map(t=>{const r=De(t.meta,t.generic);if(!r.length)return[];const s=Ie({...a,spec:t,siteMeta:t.meta});return r.map(n=>s.getRawPageByType(n,!0))}).flat())}function De(a,e){if(location.pathname==="/")return[];const{titleBase:t,readerBase:r}=a,s=location.pathname.split("/").filter(Boolean),n=Me(s,r),i=Me(s,t);if(n&&i)return[b.reader,b.title];const l=[];return!i&&(n!==!1||e)&&l.push(b.reader),!n&&(i!==!1||e)&&l.push(b.title),!l.length&&e?[b.reader,b.title]:l}function Me(a,e){if(!e)return;const t=e.split("/").filter(Boolean),r=t.indexOf("{slug}"),s=r===t.length-1,n=!s&&r!==-1;if(s&&(t.pop(),!t.length))return;const i=a.length-t.length;if(n?i<0:i<=0)return!1;let l=!1;for(let o=0;o<t.length;o++){const c=t[o];if(c[0]!=="{"){if(c!==a[o])return!1;l=!0}}if(l&&i===(n?0:1))return!0}P.PageType=b,P.scrape=ba});
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "trackkun-dom",
3
3
  "author": "endyquang",
4
- "version": "2.3.0",
4
+ "version": "2.3.1",
5
5
  "license": "UNLICENSED",
6
6
  "description": "MP DOM parser & configurations",
7
7
  "main": "index.js",