trackkun-dom 2.7.3 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/adBlocker.json CHANGED
@@ -1 +1 @@
1
- {"hosts":["aliexpress.com","shopee.vn","shop","top","pubfuture-ad.com","tsyndicate.com","bidgear.com","googlesyndication.com","rlcdn.com","rfihub.com","doubleclick.net","viglink.com","acscdn.com","netpub.media","radioonlinehd.net","pubadx.one","pemsrv.com","magsrv.com","pure-device-app.com","flytechb.com","roledale.com","e-planning.net","360yield.com","creativecdn.com","cpmrevenuegate.com","id5-sync.com","33across.com","nicelybacked.com","app-lite.com","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","tembeyeaned.cyou","kismetrosland.life","d3n7ct9nohphbs.cloudfront.net","stoolsocman.top","malthuscorno.shop","farcivinage.shop","fixatealaloi.top","footlogmerida.shop","attalidhatters.shop","ichthusthar.top","vingtunacroter.top","carbarnbonang.shop","duppedbawsunt.life","jaspersfamilia.cyou","outheelrelict.com","cinderycandor.com","coaphumewy.net","vntsm.io","ad-delivery.net","a-ads.com","adskeeper.com","goomaphy.com","t7cp4fldl.com","endowmentoverhangutmost.com","ccg90.com","vlitag.com","addthis.com","mreadercdn.com","adschill.com","upblowcorbed.top","seisorsverbile.top","dependsmoscow.com","hottedholster.com","pubfuture.com","xylidichiatus.shop","jzbvwqeowwwoz.top","yockingdey.shop","infolinks.com","prospectprefer.com","benchsuited.com","busyexit.com","realsrvcdn.com","adhub.digital","stoachdarts.com","godpvqnszo.com","zuhempih.com","prplad.com","openx.net","socdm.com","redcapsunlime.com","cebidsbessel.com","vdo.ai","imasdk.googleapis.com","noshelfrequired.com","weinsteinandmiller.com","suffarilbf.com","earthenicings.com","trotolhonor.com","zqvee2re50mr.com","waisheph.com","groapeeque.com","aqle3.com","genuinelyunfit.com","impedegrimy.com","umbretalen.com","guigebichir.website","divvyprorata.com","dummieseardrum.com","hbcdn.net","falcatayamalka.com","ribwortjulep.com","noritesfarrago.com","admatic.com.tr","ppcnt.pro","sowfootsolent.com","%20sowfootsolent.com%20","flarby.com","web0.eu","codensmilax.com","y8z5nv0slz06vj2k5vh6akv7dj2c8aj62zhj2v7zj8vp0zq7fj2gf4mv6zsb.me","xlviirdr.com","org.uk","funnelgloveaffable.com","wordsnought.com","fictionfittinglad.com","wrestcut.com","obediencechainednoun.com","scratchconsonant.com","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","coshafvl.com","ymajpuqag.com","prplads.com","crockerydestructivespoken.com","parzoom.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","yandex.ru","fpyf8.com","can.re","flinttovaria.com","bitonclick.com","fuzzyvisuals.com","mimamsaslews.com","naupsithizeekee.com","lakeletbothria.com","mbidadm.com","23.109.170.2","orsedebebeeru.com","shopboyreminds.com","pubmatic.com","invstatic101.creativecdn.com","cinarra.com","analytics.yahoo.com","antiadblocksystems.com","d3cod80thn7qnd.cloudfront.net","ndrrbpgmjpsng.com","uwolvsazk.com","chaseherbalpasty.com","adsco.re","lojvicwu.com","qqwtwpdvhoq.com","lavangataled.com","betteradsystem.com","d2kk0o3fr7ed01.cloudfront.net","abtfliping.top","eloawiphi.net","dantaradiohd.net","liadm.com","wylin.ai","visageagar.com","unslylysmug.cfd","sondeliseafolk.com","jatosbathkol.com","links.services.disqus.com","tempest.services.disqus.com","muthfourre.com","koaptouw.com","exinesriles.com","lowseelor.com","sporulekakis.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","9bet.net","chilihandshakewing.com","cupbearergrowllurch.com","campfirecroutondecorator.com","profitsfly.com","kulroakonsu.net","trypsinneutral.com","massifbramble.com","babistmucuses.com","urgingslaurae.com","greatmidship.com","oxbet.com","whoanebsos.net","lanky-bar.com","glizauvo.net","teksishe.net","dirtsower.cyou","spokanchap.com","akalibalboas.com","viewdeos.com","d11enq2rymy0yl.cloudfront.net","aukveygibngnjg.com","xadsmart.com","bqpvduxtfhwsd.com","qjeirnapocqcy.com","zxomvphodwdpcs.com","murozwuddtow.com","msincsayqmji.com","recordedthereby.com","proftrafficcounter.com","sympathizecrewfrugality.com","capaciousdrewreligion.com","jobetartane.com","amon1.net","bulkconflictpeculiarities.com","zodiacdinner.com","peanutrefusesplit.com","ectypedechlog.com","topcpmcreativeformat.com","chaungourtee.com","tektosfolic.com","dapcerevis.shop","captorbaryton.com","wilfreddrear.shop","cowpencinclis.com","arvigorothan.com","cassabahotcake.top","craxzapas.com","ovologysnoops.com","mysidaebetire.com","oaphoace.net","h12-media.com","craniolgozzan.com","cuinageaquilid.com","beyliksyowler.com","tylulewe.com","ohgriforkvan.com","dinwhozi.com","stoopeddiscourse.com","laxativestuckunclog.com","earringsatisfiedsplice.com","childlessporcupinevaluables.com","footbathmockerpurse.com","janitorprecisiontrio.com","dodgyfactoidprecut.com","alvanhaybox.com","berthfrankly.com","appointeeivyspongy.com","flaxdescale.com","flatjeep.com","dtscout.com","scakuvap.com","occasionedcaneturner.com","highperformanceformat.com","aiharsoreersu.net","madurird.com","causoupushoutho.xyz","couphaithuph.net","dawac.com","bobapsoabauns.com","vooculok.com","jmeoyypc.xyz","unasonoric.com","corvoidhas.com","tripsisvellums.com","zoeacaring.com","radioonlinehd.s3.amazonaws.com","sparersetnean.shop","gekeebsirs.com","pricklymine.com","pointlessplan.pro","coafeerapheepho.net","calculatingvoice.com","pointedpleasure.com","ellipticaltrack.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","wry-boss.com","1xbetm.info","runative-syndicate.com","vealedincite.com","a11ybar.com","optvz.com","afcdn.net","gloutanacard.com","gollarpulsus.com","ungreeninwrit.com","centricgaffkya.com","errandsracket.com","dipppyruiners.top","theetheks.com","bb2r.com","richads.com","becorsolaom.com","outoctillerytor.com","spacemancreativedom.net","ptougeegnep.net","ptichoolsougn.net","trck.house","diagramjawlineunhappy.com","hotbjumelo.today","partners-show.com","vaikijie.net","bossedmarlier.help","medullagrooved.com","d3mzokty951c5w.cloudfront.net","displayvertising.com","kalingacurvant.com","boodybasalt.com","unluckasserta.com","popcash.net","bvtpk.com","sacwumsf.com","alfredatitres.com","jads.co","waust.at","e5ce73abf6.com","d980ffe9b6.com","ezodn.com","bluekai.com","go.ezodn.com","22hgc.com","ampproject.org","defroststringbenignity.com","caroakitab.com","abdalminhag.com","bobsleddomesticglandular.com","d3g5ovfngjw9bw.cloudfront.net","cdn4ads.com","cwggydrmj.xyz","loajawun.com","cyetwkoxmijucj.xyz","airingsjerky.com","horoutavitamin.click","lmcomments.com","stiffenromano.com","xylylicpeteca.com","toxinspalsied.com","metricswpsh.com","edcc0994fe.com","multstorage.com","ntvpforever.com","capndr.com","61d7a302a1.com","0491166852.com","chnsrv.com","tapioni.com","amselragman.com","doesnscapha.com","utysolomonaut.com","ukankingwithea.com","dh8azcl753e1e.cloudfront.net","d1pk6uu6wqrpce.cloudfront.net","poppeanwivers.com","mikratoyotas.com","renamereptiliantrance.com","twinrdengine.com","corylussunroof.com","68s8.com","ptumesukrerd.net","oursoonethair.net","xkqaqnuhoxlqnmb.com","jatobacutikin.com","strombugi.com","21wiz.com","embolicpenlop.com","mgid.com","sashingdermoid.com","ml314.com","bushsurprising.com","bundlemoviepumice.com","sacodnajroh.com","tzokruogxo.com","mournersamoa.com","lawzyscapoid.com","x7i0.com","ads-twitter.com","connect.facebook.com","cdn.adjust.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-\"],.google-auto-placed,*[data-ad-format],*[data-adtrack-id],div:has(> iframe[src*=\"radioonline\"]),.rev-src,#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),script[src*=\"ungreen\"] + iframe,body > div[id]:has(div div div div .adblock_title),.nxiyd,div[data-shb],.lm-adblock-notfic-container {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;} .fixed div.relative:has(div > button svg.lucide-x):has(> canvas.absolute) {overflow: auto; max-height: 100vh;} body:has(div[id] h4.adblock_title) {overflow: unset !important;}"}
1
+ {"hosts":["aliexpress.com","shopee.vn","shop","top","pubfuture-ad.com","tsyndicate.com","bidgear.com","googlesyndication.com","rlcdn.com","rfihub.com","doubleclick.net","viglink.com","acscdn.com","netpub.media","radioonlinehd.net","pubadx.one","pemsrv.com","magsrv.com","pure-device-app.com","flytechb.com","roledale.com","e-planning.net","360yield.com","creativecdn.com","cpmrevenuegate.com","id5-sync.com","33across.com","nicelybacked.com","app-lite.com","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","tembeyeaned.cyou","kismetrosland.life","d3n7ct9nohphbs.cloudfront.net","stoolsocman.top","malthuscorno.shop","farcivinage.shop","fixatealaloi.top","footlogmerida.shop","attalidhatters.shop","ichthusthar.top","vingtunacroter.top","carbarnbonang.shop","duppedbawsunt.life","jaspersfamilia.cyou","outheelrelict.com","cinderycandor.com","coaphumewy.net","vntsm.io","ad-delivery.net","a-ads.com","adskeeper.com","goomaphy.com","t7cp4fldl.com","endowmentoverhangutmost.com","ccg90.com","vlitag.com","addthis.com","mreadercdn.com","adschill.com","upblowcorbed.top","seisorsverbile.top","dependsmoscow.com","hottedholster.com","pubfuture.com","xylidichiatus.shop","jzbvwqeowwwoz.top","yockingdey.shop","infolinks.com","prospectprefer.com","benchsuited.com","busyexit.com","realsrvcdn.com","adhub.digital","stoachdarts.com","godpvqnszo.com","zuhempih.com","prplad.com","openx.net","socdm.com","redcapsunlime.com","cebidsbessel.com","vdo.ai","imasdk.googleapis.com","noshelfrequired.com","weinsteinandmiller.com","suffarilbf.com","earthenicings.com","trotolhonor.com","zqvee2re50mr.com","waisheph.com","groapeeque.com","aqle3.com","genuinelyunfit.com","impedegrimy.com","umbretalen.com","guigebichir.website","divvyprorata.com","dummieseardrum.com","hbcdn.net","falcatayamalka.com","ribwortjulep.com","noritesfarrago.com","admatic.com.tr","ppcnt.pro","sowfootsolent.com","%20sowfootsolent.com%20","flarby.com","web0.eu","codensmilax.com","y8z5nv0slz06vj2k5vh6akv7dj2c8aj62zhj2v7zj8vp0zq7fj2gf4mv6zsb.me","xlviirdr.com","org.uk","funnelgloveaffable.com","wordsnought.com","fictionfittinglad.com","wrestcut.com","obediencechainednoun.com","scratchconsonant.com","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","coshafvl.com","ymajpuqag.com","prplads.com","crockerydestructivespoken.com","parzoom.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","yandex.ru","fpyf8.com","can.re","flinttovaria.com","bitonclick.com","fuzzyvisuals.com","mimamsaslews.com","naupsithizeekee.com","lakeletbothria.com","mbidadm.com","23.109.170.2","orsedebebeeru.com","shopboyreminds.com","shakhasewn.com","pubmatic.com","invstatic101.creativecdn.com","cinarra.com","analytics.yahoo.com","antiadblocksystems.com","d3cod80thn7qnd.cloudfront.net","ndrrbpgmjpsng.com","uwolvsazk.com","chaseherbalpasty.com","adsco.re","lojvicwu.com","qqwtwpdvhoq.com","lavangataled.com","betteradsystem.com","d2kk0o3fr7ed01.cloudfront.net","abtfliping.top","eloawiphi.net","dantaradiohd.net","liadm.com","wylin.ai","visageagar.com","unslylysmug.cfd","murathernias.com","sondeliseafolk.com","jatosbathkol.com","links.services.disqus.com","tempest.services.disqus.com","muthfourre.com","koaptouw.com","exinesriles.com","lowseelor.com","sporulekakis.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","9bet.net","chilihandshakewing.com","cupbearergrowllurch.com","campfirecroutondecorator.com","profitsfly.com","kulroakonsu.net","trypsinneutral.com","massifbramble.com","babistmucuses.com","urgingslaurae.com","greatmidship.com","oxbet.com","whoanebsos.net","lanky-bar.com","glizauvo.net","teksishe.net","dirtsower.cyou","spokanchap.com","akalibalboas.com","viewdeos.com","d11enq2rymy0yl.cloudfront.net","aukveygibngnjg.com","xadsmart.com","bqpvduxtfhwsd.com","qjeirnapocqcy.com","zxomvphodwdpcs.com","murozwuddtow.com","msincsayqmji.com","recordedthereby.com","proftrafficcounter.com","sympathizecrewfrugality.com","capaciousdrewreligion.com","jobetartane.com","amon1.net","bulkconflictpeculiarities.com","zodiacdinner.com","peanutrefusesplit.com","ectypedechlog.com","topcpmcreativeformat.com","chaungourtee.com","tektosfolic.com","dapcerevis.shop","captorbaryton.com","wilfreddrear.shop","cowpencinclis.com","arvigorothan.com","cassabahotcake.top","craxzapas.com","ovologysnoops.com","mysidaebetire.com","oaphoace.net","h12-media.com","craniolgozzan.com","cuinageaquilid.com","beyliksyowler.com","tylulewe.com","ohgriforkvan.com","dinwhozi.com","stoopeddiscourse.com","laxativestuckunclog.com","earringsatisfiedsplice.com","childlessporcupinevaluables.com","footbathmockerpurse.com","janitorprecisiontrio.com","dodgyfactoidprecut.com","alvanhaybox.com","berthfrankly.com","appointeeivyspongy.com","flaxdescale.com","flatjeep.com","dtscout.com","scakuvap.com","occasionedcaneturner.com","highperformanceformat.com","aiharsoreersu.net","madurird.com","causoupushoutho.xyz","couphaithuph.net","dawac.com","bobapsoabauns.com","vooculok.com","jmeoyypc.xyz","unasonoric.com","corvoidhas.com","tripsisvellums.com","zoeacaring.com","radioonlinehd.s3.amazonaws.com","sparersetnean.shop","gekeebsirs.com","pricklymine.com","pointlessplan.pro","coafeerapheepho.net","calculatingvoice.com","pointedpleasure.com","ellipticaltrack.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","wry-boss.com","1xbetm.info","runative-syndicate.com","vealedincite.com","a11ybar.com","optvz.com","afcdn.net","gloutanacard.com","gollarpulsus.com","ungreeninwrit.com","centricgaffkya.com","errandsracket.com","dipppyruiners.top","theetheks.com","bb2r.com","richads.com","becorsolaom.com","outoctillerytor.com","spacemancreativedom.net","ptougeegnep.net","ptichoolsougn.net","trck.house","diagramjawlineunhappy.com","hotbjumelo.today","partners-show.com","vaikijie.net","bossedmarlier.help","medullagrooved.com","d3mzokty951c5w.cloudfront.net","displayvertising.com","kalingacurvant.com","boodybasalt.com","unluckasserta.com","popcash.net","bvtpk.com","sacwumsf.com","alfredatitres.com","jads.co","waust.at","e5ce73abf6.com","d980ffe9b6.com","ezodn.com","bluekai.com","go.ezodn.com","22hgc.com","ampproject.org","defroststringbenignity.com","caroakitab.com","abdalminhag.com","bobsleddomesticglandular.com","d3g5ovfngjw9bw.cloudfront.net","cdn4ads.com","cwggydrmj.xyz","loajawun.com","cyetwkoxmijucj.xyz","airingsjerky.com","horoutavitamin.click","lmcomments.com","stiffenromano.com","xylylicpeteca.com","toxinspalsied.com","metricswpsh.com","edcc0994fe.com","multstorage.com","ntvpforever.com","capndr.com","61d7a302a1.com","0491166852.com","chnsrv.com","tapioni.com","amselragman.com","doesnscapha.com","uby9w6k4vjyf8ebinxq8zmk7wyimi81fyl.cfd","pueblossedilia.com","utysolomonaut.com","ukankingwithea.com","dh8azcl753e1e.cloudfront.net","d1pk6uu6wqrpce.cloudfront.net","poppeanwivers.com","mikratoyotas.com","renamereptiliantrance.com","twinrdengine.com","corylussunroof.com","68s8.com","ptumesukrerd.net","oursoonethair.net","xkqaqnuhoxlqnmb.com","jatobacutikin.com","strombugi.com","21wiz.com","embolicpenlop.com","mgid.com","sashingdermoid.com","ml314.com","bushsurprising.com","bundlemoviepumice.com","sacodnajroh.com","tzokruogxo.com","browsecoherentunrefined.com","mournersamoa.com","lawzyscapoid.com","x7i0.com","ads-twitter.com","connect.facebook.com","cdn.adjust.com","bewitched-display.pro","optimal-neat.pro","longtermeffective.com","hurtful-message.com","3nbf4.com","gizokraijaw.net","forfrogadiertor.com","rebopsmurly.com","mildhide.pro","yougetwhatyoupayfor.net","boxypluckunrelated.com","pumaqmqix.com","coolishrocked.com","chubbyexemplaryhardiness.com","clammyendearedkeg.com","dgaf2ncy4dtan.cloudfront.net","hardenteiid.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-\"],.google-auto-placed,*[data-ad-format],*[data-adtrack-id],div:has(> iframe[src*=\"radioonline\"]),.rev-src,#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),script[src*=\"ungreen\"] + iframe,body > div[id]:has(div div div div .adblock_title),.nxiyd,div[data-shb],.lm-adblock-notfic-container {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;} .fixed div.relative:has(div > button svg.lucide-x):has(> canvas.absolute) {overflow: auto; max-height: 100vh;} body:has(div[id] h4.adblock_title) {overflow: unset !important;}"}
package/index.js CHANGED
@@ -1 +1 @@
1
- (function(j,L){typeof exports=="object"&&typeof module<"u"?L(exports):typeof define=="function"&&define.amd?define(["exports"],L):(j=typeof globalThis<"u"?globalThis:j||self,L(j._trackkun_={}))})(this,function(j){"use strict";function L(a){let e=!1;return new Promise((t,r)=>{Promise.all(a.map(async n=>{const s=await n;!e&&s&&(e=!0,t(s))})).then(()=>{e||t(void 0)})})}const Le=/(vol(ume)?|season)(\s*|-|\.)(\d+)/i,Oe=/^S([1-9])\s/i,Ne=/(ch(ap(t(er)?|\.)?|\.)?|#|episode\.?|capitolo\.?|capitulo\.?|bölüm\.?)(\s*|-)(\d+([_-~,.]\d+)?)/i,_e=/\d+([_-~,.]\d+)?/,ze=/[_-~,]/;function Ae(a){const e=a.match(Le);if(e)return{volStr:e[0],volValueStr:e[4]};const t=a.match(Oe);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}=Ae(a),r=e?a.replace(e,"").trim():a,n=r.match(Ne),s=r.match(_e),o=n?.[6],l=o??s?.[0];if(!l)return;const i=+l.replace(ze,".");return isNaN(i)?void 0:{vol:e&&t&&!isNaN(+t)&&a.indexOf(e)<a.indexOf(o?n[0]:s[0])?+t:void 0,chap:i}}function ke(){return Math.random().toString(16).slice(2)}async function We({addListener:a,removeListener:e,transform:t,filter:r,handler:n,onTimeout:s,timeout:o,once:l}){return new Promise(i=>{a(g);const c=()=>l===!0&&e(g),u=o?setTimeout(()=>{c(),i(void 0),s?.()},o):void 0;async function g(p,...h){p=t?t(p):p,p!==void 0&&(!r||r(p,...h))&&(c(),i(p),n?.(p,...h),u&&clearTimeout(u))}})}async function Ee(a){return(await We({addListener:e=>window.addEventListener("message",e),removeListener:e=>window.removeEventListener("message",e),...a}))?.data}async function Ue(a){const{receiverWindow:e,timeout:t,targetOrigin:r,event:n,args:s}=a,o={reqId:ke(),event:n,args:s};return(e||window)?.postMessage(o,r??"*"),(await Ee({filter:l=>l?.data?.resId===o.reqId,timeout:t??3e4,once:!0}))?.result}const D={isAny:!0};function I(a,...e){return Ue({event:"tk:fetchResult",args:{baseUrl:a,segments:e}})}function N(a,e){a.sort((i,c)=>i.vol===void 0||c.vol===void 0?c.chap-i.chap:c.vol-i.vol||c.chap-i.chap);const t={},r={};for(let i=a.length-1;i>=0;i--){const c=a[i],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 n=[],s={},o=e?.preferGroup,l=o?i=>i.lang??"":i=>[i.lang,i.group].filter(Boolean).join(":");for(const i of a){const c=l(i),u=s[c],g=n[u];if(!(g&&g.chap===i.chap&&(g.vol===i.vol||g.vol===void 0||i.vol===void 0))){s[c]=n.length,n.push(i);continue}if(!o){g.vol===void 0&&i.vol!=null&&(n[u]=i);continue}g.group!==o&&(i.group==o||g.group&&!i.group||t[i.group??""]>t[g.group??""])&&(n[u]=i)}return n}async function M(a,e,t){const r=await t(()=>{a=0});if(r!==void 0)return r;if(!(a<=0))return await new Promise(n=>{setTimeout(async()=>{const s=await M(a-1,e,t);n(s)},e)})}async function T(a,e,t=0){const r=e.root??document.documentElement,n=e.timeoutMs??1e4;return M(e.lazy===!0?n/50:0,50,()=>{const s=e.all===!0?Array.from(r.querySelectorAll(a)):r.querySelector(a)??void 0;return(e.all?!s?.length:!s)?void 0:s})}const G={text:Je,attr:Qe,"attr-contain":Ye,value:Ge,row:Ze,"bg-image":Ke},qe={pattern:Xe,remove:et};function d(a,e){if(a)return Z(a,e,Ve)}function _(a,e){if(a)return Z(a,e,He)}function Z(a,e,t){if(!a)return;const r=a.split("||").map(n=>n.trim()).filter(n=>!!n&&n.includes("|"));for(const n of r){const s=Fe(n);if(!s)continue;const o=t(e??document.documentElement,s);if(o)return o}}function Fe(a){const[e,t,...r]=a.split("|");if(!t)return;const n=t?.startsWith("[")&&t.endsWith("]")?t.substring(1,t.length-1).split(","):[t];return{selector:e||void 0,extractors:n.map(K),transformers:r.map(K)}}function K(a){const e=a.indexOf(":"),t=e!==-1;return{fn:t?a.substring(0,e):a,param:t?a.substring(e+1):""}}function Ve(a,e){if(!e.selector)return X(a,e);const t=e.selector.split(",");for(const r of t){const n=Array.from(a.querySelectorAll(r));for(const s of n){const o=X(s,e);if(o)return o}}}function He(a,e){const t=e.selector?Array.from(a.querySelectorAll(e.selector)):[a],r=[];for(const n of t)for(const s of e.extractors){const o=G[s.fn],l=o(n,s.param);if(l){r.push(ee(l,e.transformers));break}}if(r.length)return r}function X(a,e){for(const t of e.extractors){const r=G[t.fn],n=r(a,t.param);if(n)return ee(n,e.transformers)}}function ee(a,e){let t=a;for(const r of e){const n=qe[r.fn];n&&(t=n(t,r.param).trim())}return t}function Je(a){return Array.from(a.childNodes).filter(e=>e.nodeType===3).map(e=>z(e.textContent)).filter(Boolean).join(" ").trim()||z(a.textContent)}function Qe(a,e){return z(a.getAttribute(e))}function Ye(a,e){let t=a.getAttribute(e);if(!t){const r=a.getAttributeNames().find(n=>n.includes(e));r&&(t=a.getAttribute(r))}return z(t)}function Ge(a){return a.value}function Ze(a,e){if(!e)return;const t=z(a.textContent)?.toLowerCase(),r=e.toLowerCase();if(!(t!==r&&t!==`${r}:`))return z(a.nextElementSibling?.textContent??a.nextSibling?.textContent)}function Ke(a){const e=getComputedStyle(a).backgroundImage;if(!(!e||!e.startsWith("url(")))return e.slice(5,-2)||void 0}function z(a){if(a)return a?.replace(/(\n|\t)/g," ").trim()||void 0}function Xe(a,e){if(e)try{return a.replace(new RegExp(e,"i"),"$1")}catch{}return a}function et(a,e){if(e)try{return a.replaceAll(new RegExp(e,"gi"),"")}catch{}return a}var tt=(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))(tt||{}),at=(a=>(a[a.ok=1]="ok",a[a.hidden=2]="hidden",a[a.deleted=3]="deleted",a))(at||{}),rt=(a=>(a[a.aggregator=0]="aggregator",a[a.scanlator=1]="scanlator",a))(rt||{}),nt=(a=>(a[a.pending=0]="pending",a[a.completed=1]="completed",a[a.offline=2]="offline",a[a.incompat=3]="incompat",a))(nt||{}),U=(a=>(a.id="id",a.name="name",a.slug="slug",a))(U||{}),W=(a=>(a.blank="about:blank",a.title="meta.title",a.reader="meta.reader",a))(W||{});function te(a=0){return new Promise(e=>setTimeout(e,a))}async function ae(a,e=240){return new Promise(t=>{const r=new Image;r.crossOrigin="anonymous",r.onerror=()=>t(void 0),r.onload=()=>{const n=document.createElement("canvas"),s=n.getContext("2d"),o=Math.max(1,r.naturalWidth/e),l=r.naturalWidth/o,i=r.naturalHeight/o;n.width=l,n.height=i;const c=/iPad|iPhone|iPod/.test(navigator.userAgent);try{s.drawImage(r,0,0,l,i);const u=n.toDataURL(c?"image/jpg":"image/webp",c?.99:.8).split(",").slice(-1)[0];t(u)}catch{t(void 0)}},r.src=a})}async function st(a,e=240){const t=await it(a);if(t)return await new Promise(async r=>{const n=ae(t,e),s=setTimeout(()=>r(void 0),100),o=await n;clearTimeout(s),r(o)})}async function it(a){try{const e=await fetch(a);if(e.status>=400)return;const t=await e.blob();return URL.createObjectURL(t)}catch{return}}const ot=[{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 re(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 n=new Date(t);if(n instanceof Date){const c=n.valueOf();if(!isNaN(c))return n.getHours()===0&&n.getMinutes()===0?Math.min(r,c+432e5):c}const s=ot.find(c=>e&&c.locales[e]&&t.indexOf(c.locales[e])!==-1?!0:t.indexOf(c.locales.en)!==-1);if(!s)return;const o=t.split(" ").filter(Boolean),l=ne(o)??(e==="en"?ne(o,["a","an"]):void 0);if(!l)return;const i=r-l*s.seconds*1e3;return i>0?i:void 0}function ne(a,e){for(let t=0;t<a.length;t++){const r=a[t];if(e?.includes(r))return 1;const n=+r;if(n)return n<0?void 0:n}}function lt(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 ct(a,{titleSlug:e,titleId:t,lang:r}){if(!a)return"/";let n=a;return e&&(n=n.replace("{titleSlug}",e)),t&&(n=n.replace("{titleId}",t)),r&&(n=n.replace("{lang}",r)),n.endsWith("/")||(n+="/"),n.startsWith("/")||(n="/"+n),n}function q(a){if(!a)return;let e=a;e.startsWith("//")&&(e=`https:${e}`);try{return new URL(e)}catch{return}}function x(a){if(!(!a||typeof a!="string"))return a.includes("//")?q(a)?.pathname:a}function ut(a,e){const t=[...e],r=[];let n=!1,s=0;const o=Math.min(a.length,100);for(let i=0;i<o;i++){if(s>=10/2){const h=10-r.length;if(h>0){const f=i+h<=a.length?a.slice(i,i+h):t.slice(0,h);r.push(...f)}break}const c=a[i],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?(n=!0,r.push({...c,changed:!0})):(s++,r.push(c))}if(!n)return{hasMore:!1,rawReleases:[]};if(r.length<=10)return{hasMore:!!a[a.length-1]?.changed,rawReleases:r};const l=[];for(let i=0;i<r.length;i++){const c=r[i];(c.changed||i<10)&&l.push(c)}return{hasMore:e.length<2||e.length-t.length<2,rawReleases:l}}function gt(a,e){const t={};return a.forEach(r=>{const n=r.chapters.reduce((s,o)=>{const l=o.lang||e||"";return s[l]||(s[l]=[]),s[l].push(o),s},{});Object.entries(n).forEach(([s,o])=>{const l=`${r.slug}:${s}`;t[l]?(t[l].chapters.push(...o),N(t[l].chapters)):t[l]={...r,lang:s===""?void 0:s,chapters:o}})}),Object.values(t)}var $=(a=>(a.title="title",a.reader="reader",a.releases="releases",a.chapters="chapters",a.search="search",a))($||{}),dt=Object.defineProperty,pt=(a,e,t)=>e in a?dt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,P=(a,e,t)=>(pt(a,typeof e!="symbol"?e+"":e,t),t);class E{constructor(e){P(this,"headless"),P(this,"siteId"),P(this,"spec"),P(this,"siteMeta"),P(this,"tags"),P(this,"context"),P(this,"methodsMap",{[$.title]:()=>this.getRawTitleData(),[$.reader]:()=>this.getRawReaderData(),[$.releases]:()=>this.getRawReleasesData(),[$.search]:()=>this.getRawSearchData(),[$.chapters]:()=>this.getRawChaptersData()}),P(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](),n=!r&&(e===$.title||e===$.reader)&&await ft(this.spec);if(t&&!r&&!n)return;const s=location.origin+location.pathname;return{type:e,is404:n,specId:this.spec.id,siteName:wt(this.spec.name),favUrl:yt(),url:s,data:r,spec:this.spec,context:this.context}}parseReaderSlug(e,t,r){let n=t;if(n[0]!=="/"&&n.includes("/"))try{n=new URL(t,location.href).pathname}catch{}if(n.endsWith("/")&&(n=n.slice(0,-1)),e.startsWith("/")||(e="/"+e),e.endsWith("/")||(e=e+"/"),e.includes("{")){const s=e.split("/").filter(Boolean),o=n.split("/").filter(Boolean);if(s.length<o.length){const l=o[s.indexOf("{lang}")],i=o[s.indexOf("{titleId}")],c=o[s.indexOf("{titleSlug}")],u=e.replace("{lang}",l).replace("{titleId}",i).replace("{titleSlug}",c);if(n.startsWith(u))return{basePath:u,lang:l?.toLowerCase(),titleId:i,titleSlug:c,slug:n.replace(u,"")}}}else if(n.startsWith(e))return{basePath:e,slug:n.replace(e,"")};return{basePath:"",slug:n}}parseTitleSlug(e){if(typeof e!="string")return{};const t=x(e),r=t?.split("/").filter(Boolean);if(!r?.length)return{};const n=this.siteMeta.titleBase.split("/").filter(Boolean),s=n.indexOf("{slug}");return(s===-1?r.length-n.length>=1:r.length===n.length)?{id:r[n.indexOf("{id}")],slug:s===-1?r.slice(n.length).join("/"):r[s]}:{slug:t}}finalizeRawReleasesData(e){const t=this.spec.releases?.title?.lang?this.siteMeta.defaultLang:void 0,r=gt(e.rawReleases,t);if(r.length)return this.context.oldRawReleases?ut(r,this.context.oldRawReleases):{rawReleases:r,hasMore:!0}}getTagIdsFromNames(e){if(!e?.length)return;const t=this.normalizedTagsMap??(this.normalizedTagsMap=ht(this.tags)),r=e.map(n=>t[F(n)]).filter(Boolean);return r.length===0?void 0:Array.from(new Set(r)).sort((n,s)=>n-s)}}P(E,"specId"),P(E,"siteId");function ht(a){const e={};return a.forEach(({id:t,name:r,altNames:n})=>{e[F(r)]=t,n&&n.forEach(s=>{e[F(s)]=t})}),e}function F(a){const e=a.toLowerCase().replaceAll(/[^a-z0-9\s]/gi,"").trim().replaceAll(/\s+/g," ");return e[e.length-1]==="s"?e.substring(0,e.length-1):e}async function ft(a){return mt()===404||a[404]&&await T(a[404],{lazy:!0,timeoutMs:5e3})?!0:document.title.toLowerCase().includes("not found")}function mt(){try{return window.performance.getEntries().find(a=>a.entryType==="navigation")?.responseStatus}catch{return}}function wt(a){return(a&&d(a))??d('meta[property="og:site_name"]|attr:content')}function yt(){return d('link[rel="icon"][sizes="32x32"],link[rel="icon"][sizes="192x192"],link[rel="apple-touch-icon"]|attr:href')}class m extends E{async getRawReleasesData(){if(!this.spec?.releases?.title)return;const{chapter:e,...t}=this.spec.releases.title,r=await T(t.sel,{lazy:!0,all:!0});if(!r?.length)return;const n=Date.now(),s=r.slice(0,100).map(l=>{const i=d(t.url,l),c=x(i),u=d(t.name,l),g=d(t.at,l);if(!c||!u)return;const p=re(g,this.siteMeta.defaultLang);return{titleEl:l,id:d(t.id,l),path:c,name:u,lang:d(t.lang,l)?.toLowerCase(),at:p?Math.min(p,n):void 0}}).filter(Boolean);if(!s.length)return;const o=[];return await Promise.all(s.map(async l=>{const{path:i,titleEl:c,lang:u,at:g,...p}=l,{id:h,slug:f}=this.parseTitleSlug(i);if(!f)return;const b=p.id||h,w=await this.getChapters(e,{root:c,titleId:b,titleSlug:f,lang:u})??[];w.length&&o.push({slug:f,chapters:u||g?w.map(S=>({...S,elIndex:void 0,lang:S.lang??u,ts:S.ts??g})):w,...p,id:b})})),this.finalizeRawReleasesData({rawReleases:o})}getRawTitleData(){return this.getTitleData(this.spec.title)}async getTitleData(e){if(!e||(e.sel||e.lazy)&&!await T(e.sel??e.name,{lazy:!!e.lazy}))return;const t=d(e.name);if(!t)return;const{id:r,slug:n}=this.parseTitleSlug(location.pathname);if(!n)return;const s=_(e.tags)?.map(f=>f.split(",")).flat().map(f=>f.trim()).filter(Boolean),o=d(e.type),l=_(e.langs)?.map(f=>f.toLowerCase()),i=r||d(e.id),c=await this.getChapters(e.chapter,{lazy:!0,titleId:i,titleSlug:n})??[],u=await this.getValidImgSrc(e.img,t),g=u&&this.context.includeImgBytes?await st(u):void 0,p=this.getFirstChapterUrl(),h=e.firstBtn;return{id:i||d(e.id),url:location.origin+location.pathname,slug:n,name:t,langs:l?.length?l:e.langs&&this.siteMeta.defaultLang?[this.siteMeta.defaultLang]:void 0,tags:this.getTagIdsFromNames([...s??[],...o?[o]:[]]),chapters:c,hasMoreChapters:e.hasMore?!!document.querySelector(e.hasMore):void 0,img:u,imgBytes:g,firstUrl:p,firstBtn:!p&&h&&document.querySelector(h)?h:void 0,trackers:this.getTrackersMap(e.trackers)}}getTrackersMap(e){if(!e)return;const t=d(e.mal),r=d(e.anl);if(!t||!r)return;const n={};return t&&(n.mal=t),r&&(n.anl=r),n}getFirstChapterUrl(){const e=d(this.spec.title?.first);if(e){if(e.startsWith("http"))return e;try{return new URL(e,location.href).href}catch{return}}}getValidImgSrc(e,t){return M(33,30,()=>{const r=d(e)||d(`img[alt="${t.replaceAll('"',"")}"]|[attr:data-src,attr-contain:src]`);return!r||r.startsWith("data:")?void 0:document.querySelector(`img[srcset*="${r}"]`)?r.split(" ")[0]:r})}getRawReaderTitleData(e){const t=this.spec.reader?.title;if(!t)return;const r=t.sel?document.querySelector(t.sel)??void 0:void 0,n=d(t.name,r);if(!n)return;const s=lt(d(t.img,r));if(e?.slug){let c=this.siteMeta.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.siteMeta.trailing?"/":"",p=`${location.origin}/${c}${g}`;return{name:n,img:s,url:p,slug:e.slug,id:e.id||d(t.id)}}}const o=d(t.url,r),{slug:l,id:i}=this.parseTitleSlug(o);if(!(!n||!o||!l))return{name:n,img:s,url:o,slug:l,id:i||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 n=this.parseReaderSlug(t.readerBase,location.pathname,location.href),{slug:s,basePath:o,lang:l}=n,i=this.getRawReaderTitleData({id:n.titleId,slug:n.titleSlug});if(!i)return;const{id:c,slug:u}=i,g=e.reader?.chapter,p=!!this.context.disableLazyChapters,h=!!this.context.includeHiddenChapters,f=await this.getChapters(g,{titleId:c,titleSlug:u,lang:l,lazy:h||!p,includeHiddenChapters:h,timeoutMs:h?3e3:29e3,includeIndex:!0,basePath:o})??[],b=d(e.reader.label)?.toLowerCase().replace(i.name.toLowerCase(),"");if(!b)return;const{vol:w,chap:S=0}=O(b)||{},y=this.findNeighborChapter({sel:e.reader.prev,basePath:o,titleUrl:i.url}),B=this.findNeighborChapter({sel:e.reader.next,basePath:o,titleUrl:i.url});return this.finalizeRawReaderData({vol:w,chap:S,lang:l??d(e.reader.lang)?.toLowerCase()??(e.reader.lang?this.siteMeta.defaultLang:void 0),slug:s,basePath:o,group:d(e.reader.group),imgs:_(e.reader.imgs),title:{id:c||d(this.spec.reader?.title.id),url:i.url,slug:u,name:i.name,langs:l?[l]:void 0,img:i.img,chapters:f,hasMoreChapters:!f.length&&!h&&!!this.context.disableLazyChapters&&!!g?.label}},{prevSlug:y,nextSlug:B})}async getRawChaptersData(){const e=this.siteMeta.chapters;if(e===W.blank)return;const t=e===W.reader,r=!e||e===W.title,n=t?(await this.getRawReaderData())?.title:r?await this.getRawTitleData():void 0,s=this.spec.chapters?.chapter,o=s?await this.getChapters(s,{titleId:n?.id,titleSlug:n?.slug,lazy:this.spec.chapters?.lazy,includeHiddenChapters:!0,lang:this.context.lang}):n?.chapters;if(!o)return;const{lang:l}=this.context,i=l?o.filter(c=>!c.lang||c.lang===l):o;return{chapters:i,title:n?{...n,chapters:[]}:await this.getTitleData(this.spec.chapters?.title),hasMore:!1,asc:!1,total:i.length}}async getRawSearchData(){const e=this.spec.search,t=this.context.lang;if(!e)return;e.delay&&await te(e.delay);const r=e.title,{chapter:n}=r,s=[],o=e.lazy?e.empty||e.loading?550:100:1,l=await M(o,50,()=>{const i=Array.from(document.querySelectorAll(r.sel));if(i.length||e.empty&&document.querySelector(e.empty)||e.loading&&!document.querySelector(e.loading))return i});if(l)return await Promise.all(l.map(async i=>{const c=d(r.url,i),u=x(c),g=d(r.name,i),{slug:p,id:h}=this.parseTitleSlug(u);if(!u||!g||!p)return;const f=d(r.lang,i);f&&t&&f!==t||s.push({id:h||d(r.id,i),slug:p,name:g,img:d(r.img??"img|[attr:data-src,attr-contain:src]",i),lang:f,chapters:await this.getChapters(n,{root:i,titleId:h,titleSlug:p})??[]})})),{rawReleases:s}}async getChapters(e,{root:t,titleId:r,titleSlug:n,lang:s,includeHiddenChapters:o=!1,lazy:l=!0,timeoutMs:i,includeIndex:c,basePath:u}={}){const g=e?.sel;if(!g||!e.label)return;let p;if(e.trigger&&(!o||(p=await T(e.trigger,{timeoutMs:5e3,lazy:!0}),!p)))return;const h=[],f=await M((i??(l?1e4:50))/50,50,async()=>{p?.click(),await te(100);const R=Array.from((t??document.documentElement)?.querySelectorAll(g));if(R.length)return R}),b=(f??[]).map((R,A)=>({id:d(e.id,R),label:d(e.label,R),url:d(e.url,R),at:d(e.at,R),lang:d(e.lang,R),elIndex:A}));if(((e.dismiss?(t??document.body).querySelector(e.dismiss):void 0)??p)?.click(),!f?.length)return[];const w=b.map(({label:R})=>O(R)),S=w[1]?.chap;!w[0]&&(S===void 0||S<=1)&&(w[0]={chap:0});const y=u??ct(this.siteMeta.readerBase,{titleId:r,titleSlug:n,lang:s}),B=Date.now();return w.forEach((R,A)=>{if(!R)return;const{id:Q,url:v,at:ja,lang:La,elIndex:Oa}=b[A],Be=re(ja,this.siteMeta.defaultLang),k={...R,id:Q,ts:Be?Math.min(B,Be):void 0};if(c&&(k.elIndex=Oa),v?.startsWith("#")){h.push(k);return}const je=v?.startsWith("http")&&!v.includes(`//${location.hostname}/`),Y=je?v:x(v);if(!Y){h.push(k);return}if(je){h.push({...k,slug:Y});return}const{slug:Na,lang:_a}=this.parseReaderSlug(y,Y,v);h.push({...k,slug:Na,lang:_a||La?.toLowerCase()})}),N(h)}static async isReaderPage(e,t){const r=e.sel;return t&&!r?!1:!r||!!await T(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 T(t,{lazy:!0,all:!1})}findNeighborChapter({sel:e,basePath:t,titleUrl:r}){const n=d(e);if(!n||n.startsWith("#")||n.startsWith("/#"))return;const s=x(n);if(s&&!(s===location.pathname||r===s||r===`${location.origin}${s}`))return this.parseReaderSlug(t,s,n).slug||void 0}finalizeRawReaderData(e,{prevSlug:t,nextSlug:r}={}){const n=e.title.chapters;if(!n.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 s,o,l,i;for(let c=0;c<n.length&&!(s&&(!t||l)&&!r&&i);c++){const u=n[c];!s&&(e.slug==u.slug||e.chap===u.chap&&(e.vol===u.vol||e.vol===void 0))?(s=u,o=c):!l&&t===u.slug?l=u:!i&&r===u.slug&&(i=u)}return o!==void 0&&(l??(l=n[o+1]),i??(i=n[o-1])),{...e,inferVol:s?.inferVol,prev:l,next:i}}}var vt=Object.defineProperty,bt=(a,e,t)=>e in a?vt(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 m{async getRawReaderData(){const e=`https://${location.host}`,[t,r]=await Promise.all([I(e,"api","manga","info"),I(e,"api","read","chapter")]),n=t?.value,s=r?.value;if(!n||!s)return;const o=this.parseReaderSlug(this.siteMeta.readerBase,location.pathname,location.href);if(!o)return;const l=O(s.readChapter?.title);if(l)return this.finalizeRawReaderData({basePath:o.basePath,slug:o.slug,...l,imgs:s.readChapter.pages.map(i=>new URL(i.image,location.origin).href),title:{url:`${e}/manga/${n.id}`,slug:n.id,name:n.title,tags:this.getTagIdsFromNames([n.type].filter(Boolean)),chapters:N(n.chapters.map(i=>({slug:i.id,chap:i.number})))}})}async getRawChaptersData(){const{titleSlug:e}=this.context;if(e)try{const t=await(await fetch(`${location.origin}/api/manga/info?mangaId=${e}`)).json();return{chapters:N(t.chapters.map(r=>({slug:r.id,chap:r.number})))}}catch{return}}}Rt(se,"specId","atsu");var $t=Object.defineProperty,St=(a,e,t)=>e in a?$t(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,xt=(a,e,t)=>(St(a,typeof e!="symbol"?e+"":e,t),t);class V extends m{parseTitleSlug(e){return{slug:x(e)?.split("/").filter(Boolean)[1]}}}xt(V,"specId","bato");var Dt=Object.defineProperty,It=(a,e,t)=>e in a?Dt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Mt=(a,e,t)=>(It(a,typeof e!="symbol"?e+"":e,t),t);class ie extends m{async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=window.pages,r=t?.map(n=>n?.image).filter(Boolean);if(!(!Array.isArray(r)||!r.length))return{...e,imgs:r,isWebtoon:t.some(n=>n.height/n.width>2)}}}Mt(ie,"specId","dynasty");var Pt=Object.defineProperty,Tt=(a,e,t)=>e in a?Pt(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);class oe 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(Bt).filter(Boolean)}}}Ct(oe,"specId","lua");function Bt(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 le(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 jt=Object.defineProperty,Lt=(a,e,t)=>e in a?jt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ot=(a,e,t)=>(Lt(a,typeof e!="symbol"?e+"":e,t),t);class H 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=ce(this.spec.reader?.title),r=t?this.finalizeNewSiteMeta(this.siteMeta,{titleBase:this.extractBasePath(x(t))}):void 0,n=await super.getRawReaderData();if(n)return{...n,siteMeta:r}}async getRawSearchData(){const e=ce(this.spec.search?.title);if(!e)return;const t=this.finalizeNewSiteMeta(this.siteMeta,{titleBase:this.extractBasePath(x(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,n=document.querySelector(r.sel)??void 0;if(!n)return;const s=x(d(r.url,n));if(s!==void 0)return this.finalizeNewSiteMeta(t,{titleBase:this.extractBasePath(s)})}finalizeNewSiteMeta(e,{titleBase:t}){if(e.titleBase!==t)return{...e,titleBase:t,readerBase:e.readerBase.replace(e.titleBase,t)}}extractBasePath(e){return le(e,"/").split("/").slice(0,-1).join("/")}}Ot(H,"specId","madara");function ce(a){if(!a)return;const e=a.sel?document.querySelector(a.sel)??void 0:void 0;return d(a.url,e)}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);const At={a:.1,b:.2,c:.3,d:.4};class ue extends m{parseTitleSlug(e){return{slug:x(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:n,id:s})=>{const o=r.find(({type:g})=>g==="manga"),l=C(n.volume),i=C(n.chapter);if(i===void 0)return;const{title:c}=o.attributes,u=c.en??Object.values(c)[0];t.push({slug:o.id,name:u,chapters:[{slug:n.externalUrl||s,vol:l,chap:i,lang:n.translatedLanguage,ts:new Date(n.readableAt).valueOf()}]})}),super.finalizeRawReleasesData({rawReleases:t})}async getRawTitleData(){const e="https://api.mangadex.org/manga/",[t,r]=await Promise.all([I(e,D),I(e,D,"feed")]);if(!t||!r)return;const n=r.value.data?.map?.(i=>{const{attributes:c,id:u}=i;if(typeof c!="object"||typeof u!="string"||!u)return;const{externalUrl:g,title:p,volume:h,chapter:f,translatedLanguage:b}=c;return{slug:g||u,label:p||void 0,vol:C(h),chap:C(f),lang:b||"en",ts:new Date(c.readableAt).valueOf()}}).filter(i=>i?.chap!=null)??[],{data:s}=t.value;if(!s)return;const o=de({data:s,getTagIdsFromNames:i=>this.getTagIdsFromNames(i)});if(!o)return;const l=this.context.includeImgBytes&&o.img?await ae(o.img):void 0;return{...o,imgBytes:l,chapters:N(n),hasMoreChapters:(r.value.total||0)>(r.value.limit||0)}}async getRawReaderData(){const e="https://api.mangadex.org/",[t,r,n]=await Promise.all([I(e,"chapter",D),I(e,"at-home","server",D),I(e,"manga",D,"aggregate")]);if(!t||!r||!n)return;const s=t.value.data,{volume:o,chapter:l,externalUrl:i,translatedLanguage:c}=s.attributes||{},{baseUrl:u,chapter:{data:g,dataSaver:p,hash:h}}=r.value,f=s.relationships?.find?.(v=>v.type==="manga");if(!f)return;const b=de({data:f,getTagIdsFromNames:v=>this.getTagIdsFromNames(v)});if(!b||typeof n.value.volumes!="object")return;const w=ge(n.value)??[];(typeof l!="string"||l==="none")&&!w.length&&w.push({chap:0,slug:s.id});const S=w.findIndex(v=>v.slug===s.id),y=s.relationships?.find?.(v=>v.type==="scanlation_group"),B=u.endsWith("/")?u:u+"/",R=!!localStorage.getItem("md")?.includes?.('"dataSaver":true'),A=`${B}${R?"data-saver":"data"}/`,Q=((R?p:g)??[]).map?.(v=>`${A}${h}/${v}`)??[];return{externalUrl:i,vol:C(o),inferVol:w[S]?.inferVol,chap:C(l)||0,imgs:Q,lang:c,slug:s.id,prev:w[S+1],next:w[S-1],basePath:"/chapter/",groupName:y?.attributes?.name,groupUrl:y?.attributes?.website,isWebtoon:f?.attributes?.tags?.some(v=>v.attributes.name.en==="Long Strip"),title:{...b,chapters:w}}}async getRawChaptersData(){const{titleSlug:e}=this.context,t=this.context.lang||"en";let r;try{const n=await fetch(`https://api.mangadex.org/manga/${e}/aggregate?translatedLanguage[]=${t}`);r=ge(await n.json())}catch{return}if(r)return{chapters:r,lang:t,asc:!1,hasMore:!1,total:r.length}}}zt(ue,"specId","mangadex");function C(a){if(typeof a!="string"||a==="none")return;const e=parseFloat(a);if(e!==e)return;const t=a[a.length-1];return e+(At[t]??0)}function ge(a){if(typeof a.volumes!="object")return;const e=Object.values(a.volumes).map(({volume:t,chapters:r})=>{const n=C(t);return Object.values(r).map(({id:s,chapter:o})=>{const l=C(o);if(l!==void 0)return{vol:n,chap:l,slug:s}})}).flat().filter(Boolean).reverse();return N(e)}function de({data:a,getTagIdsFromNames:e}){const{id:t,attributes:r,relationships:n}=a;if(!t||typeof t!="string"||typeof r!="object")return;const{title:s,availableTranslatedLanguages:o,altTitles:l,tags:i,contentRating:c}=r;if(typeof s!="object"||o&&!Array.isArray(o))return;const u=Object.values(s)[0];if(!u||typeof u!="string")return;const g=kt(),p=(o??[])?.map?.(y=>typeof y=="string"?y:void 0).filter(Boolean)??[],h=p.filter(y=>y&&(!g||g.includes(y))),f=l?.map?.(y=>{const[[,B]=[]]=Object.entries(y);return B}),b=n?.find?.(y=>y.type==="cover_art")?.attributes?.fileName,w=b?`https://mangadex.org/covers/${t}/${b}.256.jpg`:void 0,S=(i||[]).map(y=>y?.attributes?.name?.en).concat(c).filter(Boolean);return{url:`${location.origin}/title/${t}`,slug:t,name:u,altNames:f,langs:h.length>0?h:p.length>0?p:["en"],img:w,tags:e(S)}}function kt(){const a=localStorage.getItem("md");if(a)try{const e=JSON.parse(a)?.userPreferences?.filteredLanguages;return e?.length?e:void 0}catch{return}}var Wt=Object.defineProperty,Et=(a,e,t)=>e in a?Wt(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 m{async getRawReaderData(){if((await T(".current-viewtype",{lazy:!0,all:!1}))?.textContent?.trim().toLowerCase()!=="volume")return await super.getRawReaderData()}async getRawChaptersData(){const e=this.context.lang??"en",t=await T(`.tab-content[data-name="chapter"] a.dropdown-item[data-code="${e.toUpperCase()}"]`,{lazy:!0,all:!1});if(t)return t.click(),await T(`.tab-content[data-name="chapter"] li.item[data-number] a[href*="/${e}/"]`,{lazy:!0,all:!1}),await super.getRawChaptersData()}async getRawSearchData(){const e=await super.getRawSearchData();if(!e)return;const t=this.context.lang??"en";return{...e,rawReleases:e.rawReleases.map(r=>({...r,lang:r.lang??t}))}}}Ut(pe,"specId","mangafire");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 m{async getRawReaderData(){const e=await super.getRawReaderData();return e&&{...e,imgs:await this.getImgs()}}parseReaderSlug(e,t){const{slug:r,basePath:n}=super.parseReaderSlug(e,t),s=r.split("/").filter(Boolean),o=s[s.length-1];return{basePath:n,slug:o.startsWith("pg-")?s.slice(0,-1).join("/"):r}}async getImgs(){const e=await M(100,20,()=>window.imgsrcs),t=window.CryptoJS,r=t.enc.Hex.parse("e11adc3949ba59abbe56e057f20f883e"),n={iv:t.enc.Hex.parse("1234567890abcdef1234567890abcdef"),padding:t.pad.ZeroPadding};return t.AES.decrypt(e,r,n).toString(t.enc.Utf8).split(",")}}Vt(he,"specId","mangago");var Ht=Object.defineProperty,Jt=(a,e,t)=>e in a?Ht(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Qt=(a,e,t)=>(Jt(a,typeof e!="symbol"?e+"":e,t),t);class fe extends m{async getRawTitleData(){const e=`https://backend.${location.host}`,t=await I(e,"chapters-with-ids",D,D),r=await super.getRawTitleData();if(!(!t?.value||!r))return{...r,langs:await Yt(),chapters:J(t.value)}}async getRawChaptersData(){const{titleSlug:e,lang:t}=this.context;if(e)try{const r=await fetch(`https://backend.${location.host}/chapters-with-ids/${e}/${t??"en"}`);return{chapters:J(await r.json())}}catch{return}}async getRawReaderData(){const e=`https://backend.${location.host}`,[t,r]=await Promise.all([I(e,"chapters-with-ids",D,D),I(e,"read",D)]);if(!t?.value||!r?.value?.length)return;const n=await super.getRawReaderData();if(!n)return;const s=new URLSearchParams(location.search).get("number")??"0";return{...n,slug:`${n.slug}?number=${s}`,imgs:r.value,title:{...n.title,chapters:J(t.value)}}}}Qt(fe,"specId","mangahaven");async function Yt(){const a=document.querySelector('[role="tabpanel"] button');if(!a)return;const e=document.createElement("style");e.innerHTML="[data-radix-popper-content-wrapper] { display: none !important; }",document.head.appendChild(e),a.click();const t=await M(50,10,()=>_('img[src*="/flags/"]|attr:src|pattern:.+/(.+).svg'));return a.click(),setTimeout(()=>document.head.removeChild(e),1e3),t}function J(a){const e=[];return a?.forEach?.(t=>{const r=+t.chapter;isNaN(r)||!t.id||e.push({chap:r,slug:`${t.id}?number=${t.chapter}`,lang:t.lang?.toLowerCase?.()})}),e}var Gt=Object.defineProperty,Zt=(a,e,t)=>e in a?Gt(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 me extends V{}Kt(me,"specId","mangapill");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 we 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]}))}}}ta(we,"specId","mangaplus");var aa=Object.defineProperty,ra=(a,e,t)=>e in a?aa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,na=(a,e,t)=>(ra(a,typeof e!="symbol"?e+"":e,t),t);class ye extends H{async getRawReaderData(){const e=await super.getRawReaderData();if(e)return{...e,title:{...e.title,id:await this.getReaderTitleId()}}}async getReaderTitleId(){const e=await window.HISTORY?.getStored?.();if(!e||typeof e!="object")return;const t=Object.values(e).filter(Boolean);if(!t.length)return;t.sort((n,s)=>s.time-n.time);const r=t[0].manga_ID;return typeof r=="string"?r:typeof r=="number"?r+"":void 0}detectNewSiteMeta(e,t){if(this.siteId==="realm"||!e)return;const r={...t,releases:le(location.pathname,"/")},n=e.title,s=document.querySelector(n.sel)??void 0;if(!s)return;const o=x(d(n.url,s));if(o===void 0)return;const l=s.querySelector(n.chapter.sel)??void 0;if(!(!l||x(d(n.chapter.url,l))===void 0))return r.titleBase=this.extractBasePath(o),t.titleIdType===U.id&&(d(n.id,s)||(t.titleIdType=U.name)),this.finalizeNewSiteMeta(t,r)}finalizeNewSiteMeta(e,t){if(this.siteId==="realm")return;const r=Object.keys(t),n={...e};let s=!1;return r.forEach(o=>{const l=t[o];l!==e[o]&&(n[o]=l,s=!0)}),s?n:void 0}}na(ye,"specId","mangastream");var sa=Object.defineProperty,ia=(a,e,t)=>e in a?sa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,oa=(a,e,t)=>(ia(a,typeof e!="symbol"?e+"":e,t),t);class ve extends m{async getRawReaderData(){const e=await super.getRawReaderData();return e&&{...e,slug:e.slug.split("/").slice(0,-1).join("/")||e.slug.split("/")[0]}}}oa(ve,"specId","mangaworld");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 be extends m{async getRawTitleData(){const e=await super.getRawTitleData();if(e)return{...e,hasMoreChapters:e.chapters.length===50}}}ua(be,"specId","mgeko");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 Re extends E{async getRawReleasesData(){}async getRawTitleData(){const e=await $e();if(!e)return;const t=d("#cover img|[attr:data-src,attr-contain:src]");return{...e,img:t}}async getRawReaderData(){const e=await $e();if(!e)return;const t=d("#image-container img|[attr:data-src,attr-contain:src]"),r=q(t);if(!r)return;const n=r.pathname.split("/").filter(Boolean).slice(0,-1).join("/"),s=`${r.origin}/${n}/`,o=r.pathname.split("?")[0].split("#")[0].split(".").slice(-1)[0]||"webp";return{chap:0,slug:"1",basePath:e.url.replace(location.origin,"").slice(1),imgs:Array.from({length:e.totalImgs},(l,i)=>`${s}${i+1}.${o}`),title:{name:e.name,slug:e.slug,url:e.url,chapters:[{slug:"1",chap:0}]}}}async getRawChaptersData(){const e=await this.getRawTitleData();if(!e)return;const{chapters:t,...r}=e;return{title:{...r,chapters:[]},chapters:t}}}pa(Re,"specId","nhentai");async function $e(){const a=await M(100,20,()=>window._gallery);if(!a?.id||!a?.title||!a?.images?.pages)return;const{title:e,images:{pages:t,cover:r},media_id:n}=a;return{name:e.pretty??e.english??e.japanese,slug:a.id+"",url:`${location.origin}/g/${a.id}`,chapters:[{slug:"1",chap:0}],totalImgs:t.length,img:await ha(n,r.t)}}async function ha(a,e){if(!a||!e)return;const t={j:"jpg",p:"png",g:"gif",w:"webp"}[e];if(!t)return;const r=(await M(10,20,()=>window._n_app))?.options?.thumb_cdn_urls?.[0];if(r)return`https://${r}/galleries/${a}/cover.${t}`}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 Se extends m{async getRawChaptersData(){const e=this.context.titleSlug;if(!e)return;const t=`https://api.${location.host}/api/post/chapters?postSlug=${e}`;return{chapters:(await(await fetch(t)).json()).map(ya).filter(Boolean)}}}wa(Se,"specId","qi");function ya(a){if(!(!a||typeof a.number!="number"))return{chap:a.number,slug:typeof a.slug=="string"?a.slug:void 0,ts:typeof a.createdAt=="string"?new Date(a.createdAt).valueOf():void 0}}var va=Object.defineProperty,ba=(a,e,t)=>e in a?va(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ra=(a,e,t)=>(ba(a,typeof e!="symbol"?e+"":e,t),t);class xe extends m{finalizeRawReaderData(e,{prevSlug:t,nextSlug:r}={}){return super.finalizeRawReaderData(e,{prevSlug:t?.split(".").slice(0,-1).join("."),nextSlug:r?.split(".").slice(0,-1).join(".")})}}Ra(xe,"specId","rawkuma");var $a=Object.defineProperty,Sa=(a,e,t)=>e in a?$a(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,xa=(a,e,t)=>(Sa(a,typeof e!="symbol"?e+"":e,t),t);class De 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 Ie({...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:{...Ie({...e.title,url:t,tags:[]},".episode-list .js-ep-cnt"),hasMoreChapters:!1}}}async getRawChaptersData(){const{rawId:e,skip:t}=this.context,r=1e3,n=t?Math.floor(t/1e3)+1:1;try{const s=await fetch(`/series/${e}/episodes?page=${n}&sort=NEWEST&max_limit=${r}`);return Da(await s.json())}catch{return}}parseTitleSlug(e){if(!e)return{};const t=e.split("/").filter(Boolean);return{slug:t[1]??t[0]}}}xa(De,"specId","tapas");function Ie(a,e){const t=Ia(e)>20;return{...a,chapters:t?[]:a.chapters,hasMoreChapters:t}}function Da(a){const e=a?.data?.episodes;if(!Array.isArray(e))return;const t=e.map(n=>({chap:n.pending_scene??n.scene,slug:n.id+"",ts:new Date(n.publish_date)?.valueOf?.()||void 0})),r=a?.data?.pagination;return{chapters:t,total:r?.total??t.length,hasMore:!!r?.has_next}}function Ia(a){return+(document.querySelector(a)?.textContent?.trim().split(" ")[0]||0)}var Ma=Object.defineProperty,Pa=(a,e,t)=>e in a?Ma(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ta=(a,e,t)=>(Pa(a,typeof e!="symbol"?e+"":e,t),t);class Me 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 n=await super.getRawTitleData();if(!n)return;const s=location.hostname.startsWith("m."),o=location.pathname.split("/")[1];return{...n,slug:`${n.slug}?title_no=${r}`,id:r,langs:o?[o]:void 0,chapters:s?[]:n.chapters.map(l=>({...l,lang:o})),hasMoreChapters:s||(document.querySelector(".paginate")?.childElementCount??1)>1}}async getRawReaderData(){const e=new URLSearchParams(location.search),t=e.get("episode_no"),r=e.get("title_no"),n=t?+t:void 0;if(!t||!r||typeof n!="number"||isNaN(n))return;const s=document.title.split("|")[1]?.trim();if(!s)return;const o=location.pathname.split("/"),l=`${o.slice(0,4).join("/")}/list?title_no=${r}`,i=await this.getChapters({sel:"#sequence_scroll li.eg-flick-panel,#toolbar .episode_lst li[data-episode-no]",url:"a|attr:href",label:"|attr:data-episode-no || a|attr:href|pattern:.+episode_no=(\\d+).*"},{lazy:!1,titleId:r,titleSlug:l}),c=o[1];return{chap:n,lang:c,slug:`${location.pathname}?title_no=${r}&episode_no=${t}`,basePath:"",imgs:await this.getReaderImgs(),isWebtoon:!0,title:{id:r,url:l,slug:l,name:s,langs:[c],chapters:(i??[]).map(u=>({...u,lang:c})),hasMoreChapters:!1}}}async getReaderImgs(){const e=_("#_imageList img|[attr:data-url,attr:src]");return e?.length?e:await M(100,50,()=>window.__viewerState__?.scrollViewerParam?.imageList?.map(({url:t})=>t).filter(Boolean))}parseReaderSlug(e,t,r){if(!r)return{basePath:"",slug:t};if(r.startsWith("http://")||r.startsWith("https://")){const n=q(r);return{basePath:"",slug:n.pathname+n.search}}return{basePath:"",slug:r}}}Ta(Me,"specId","webtoon");const Ca=[se,V,ie,oe,H,ue,pe,he,fe,me,we,ye,be,ve,Re,Se,xe,De,Me];function Pe(a){const e=Ca.find(t=>t.specId===a.spec.id)??m;return new e(a)}async function Ba(a){const{spec:e}=a,t=a.siteMeta??e?.meta;if(e&&t){const r=a.type?[a.type]:Te(t,e.generic);if(!r.length)return;const n=Pe({...a,spec:e,siteMeta:t});return await L(r.map(s=>n.getRawPageByType(s,r.length>1)))}return await L((a.genericSpecs??[]).map(r=>{if(!r.meta||!r.generic)return[];const n=Te(r.meta,r.generic);if(!n.length)return[];const s=Pe({...a,spec:r,siteMeta:r.meta});return n.map(o=>s.getRawPageByType(o,!0))}).flat())}function Te(a,e){if(location.pathname==="/")return[];const{titleBase:t,readerBase:r}=a,n=location.pathname.split("/").filter(Boolean),s=Ce(n,r),o=Ce(n,t);if(s&&o)return[$.reader,$.title];const l=[];return!o&&(s!==!1||e)&&l.push($.reader),!s&&(o!==!1||e)&&l.push($.title),!l.length&&e?[$.reader,$.title]:l}function Ce(a,e){if(!e)return;const t=e.split("/").filter(Boolean),r=t.indexOf("{slug}"),n=r===t.length-1,s=!n&&r!==-1;if(n&&(t.pop(),!t.length))return;const o=a.length-t.length;if(s?o<0:o<=0)return!1;let l=!1;for(let i=0;i<t.length;i++){const c=t[i];if(c[0]!=="{"){if(c!==a[i])return!1;l=!0}}if(l&&o===(s?0:1))return!0}j.PageType=$,j.scrape=Ba});
1
+ (function(O,E){typeof exports=="object"&&typeof module<"u"?E(exports):typeof define=="function"&&define.amd?define(["exports"],E):(O=typeof globalThis<"u"?globalThis:O||self,E(O._trackkun_={}))})(this,function(O){"use strict";function E(a){let e=!1;return new Promise((t,r)=>{Promise.all(a.map(async n=>{const s=await n;!e&&s&&(e=!0,t(s))})).then(()=>{e||t(void 0)})})}const ze=/(vol(ume)?|season)(\s*|-|\.)(\d+)/i,ke=/^S([1-9])\s/i,We=/(ch(ap(t(er)?|\.)?|\.)?|#|episode\.?|capitolo\.?|capitulo\.?|bölüm\.?)(\s*|-)(\d+([_-~,.]\d+)?)/i,Ue=/\d+([_-~,.]\d+)?/,qe=/[_-~,]/;function Ge(a){const e=a.match(ze);if(e)return{volStr:e[0],volValueStr:e[4]};const t=a.match(ke);return t?{volStr:t[0],volValueStr:t[1]}:{}}function P(a){if(!a)return;if(!isNaN(+a))return{chap:+a};const{volStr:e,volValueStr:t}=Ge(a),r=e?a.replace(e,"").trim():a,n=r.match(We),s=r.match(Ue),i=n?.[6],l=i??s?.[0];if(!l)return;const o=+l.replace(qe,".");if(isNaN(o))return;const c=e&&t&&!isNaN(+t)&&a.indexOf(e)<a.indexOf(i?n[0]:s[0])?+t:void 0;return{vol:c===void 0||c<=0?void 0:c,chap:o}}function Fe(){return Math.random().toString(16).slice(2)}async function He({addListener:a,removeListener:e,transform:t,filter:r,handler:n,onTimeout:s,timeout:i,once:l}){return new Promise(o=>{a(g);const c=()=>l===!0&&e(g),u=i?setTimeout(()=>{c(),o(void 0),s?.()},i):void 0;async function g(d,...f){d=t?t(d):d,d!==void 0&&(!r||r(d,...f))&&(c(),o(d),n?.(d,...f),u&&clearTimeout(u))}})}async function Ve(a){return(await He({addListener:e=>window.addEventListener("message",e),removeListener:e=>window.removeEventListener("message",e),...a}))?.data}async function Je(a){const{receiverWindow:e,timeout:t,targetOrigin:r,event:n,args:s}=a,i={reqId:Fe(),event:n,args:s};return(e||window)?.postMessage(i,r??"*"),(await Ve({filter:l=>l?.data?.resId===i.reqId,timeout:t??3e4,once:!0}))?.result}const M={isAny:!0};function I(a,...e){return Je({event:"tk:fetchResult",args:{baseUrl:a,segments:e}})}function B(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 n=[],s={},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=s[c],g=n[u];if(!(g&&g.chap===o.chap&&(g.vol===o.vol||g.vol===void 0||o.vol===void 0))){s[c]=n.length,n.push(o);continue}if(!i){g.vol===void 0&&o.vol!=null&&(n[u]=o);continue}g.group!==i&&(o.group==i||g.group&&!o.group||t[o.group??""]>t[g.group??""])&&(n[u]=o)}return n}async function D(a,e,t){const r=await t(()=>{a=0});if(r!==void 0)return r;if(!(a<=0))return await new Promise(n=>{setTimeout(async()=>{const s=await D(a-1,e,t);n(s)},e)})}async function C(a,e,t=0){const r=e.root??document.documentElement,n=e.timeoutMs??1e4;return D(e.lazy===!0?n/50:0,50,()=>{const s=e.all===!0?Array.from(r.querySelectorAll(a)):r.querySelector(a)??void 0;return(e.all?!s?.length:!s)?void 0:s})}function Qe(a){if(a instanceof HTMLOptionElement){const e=a.parentElement instanceof HTMLOptGroupElement?a.parentElement.parentElement:a.parentElement;if(!e||!(e instanceof HTMLSelectElement))return;const t=a.getAttribute("value")||"";if(e.value===t)return;e.value=t,e.dispatchEvent(new Event("change"));return}a instanceof HTMLAnchorElement&&a.addEventListener("click",e=>e.preventDefault(),{once:!0}),a.click(),a.dispatchEvent(new PointerEvent("pointerdown",{bubbles:!0,cancelable:!0,pointerType:"mouse",button:0})),a.dispatchEvent(new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:window,button:0}))}const K={text:et,attr:tt,"attr-contain":at,value:rt,row:nt,"bg-image":st},Ye={pattern:it,remove:ot,atob:lt};function p(a,e){if(a)return Z(a,e,Ze)}function A(a,e){if(a)return Z(a,e,Xe)}function Z(a,e,t){if(!a)return;const r=a.split("||").map(n=>n.trim()).filter(n=>!!n&&n.includes("|"));for(const n of r){const s=Ke(n);if(!s)continue;const i=t(e??document.documentElement,s);if(i)return i}}function Ke(a){const[e,t,...r]=a.split("|");if(!t)return;const n=t?.startsWith("[")&&t.endsWith("]")?t.substring(1,t.length-1).split(","):[t];return{selector:e||void 0,extractors:n.map(X),transformers:r.map(X)}}function X(a){const e=a.indexOf(":"),t=e!==-1;return{fn:t?a.substring(0,e):a,param:t?a.substring(e+1):""}}function Ze(a,e){if(!e.selector)return ee(a,e);const t=e.selector.split(",");for(const r of t){const n=Array.from(a.querySelectorAll(r));for(const s of n){const i=ee(s,e);if(i)return i}}}function Xe(a,e){const t=e.selector?Array.from(a.querySelectorAll(e.selector)):[a],r=[];for(const n of t)for(const s of e.extractors){const i=K[s.fn],l=i(n,s.param);if(l){r.push(te(l,e.transformers));break}}if(r.length)return r}function ee(a,e){for(const t of e.extractors){const r=K[t.fn],n=r(a,t.param);if(n)return te(n,e.transformers)}}function te(a,e){let t=a;for(const r of e){const n=Ye[r.fn];n&&(t=n(t,r.param).trim())}return t}function et(a){return Array.from(a.childNodes).filter(e=>e.nodeType===3).map(e=>N(e.textContent)).filter(Boolean).join(" ").trim()||N(a.textContent)}function tt(a,e){return N(a.getAttribute(e))}function at(a,e){let t=a.getAttribute(e);if(!t){const r=a.getAttributeNames().find(n=>n.includes(e));r&&(t=a.getAttribute(r))}return N(t)}function rt(a){return a.value}function nt(a,e){if(!e)return;const t=N(a.textContent)?.toLowerCase(),r=e.toLowerCase();if(!(t!==r&&t!==`${r}:`))return N(a.nextElementSibling?.textContent??a.nextSibling?.textContent)}function st(a){const e=getComputedStyle(a).backgroundImage;if(!(!e||!e.startsWith("url(")))return e.slice(5,-2)||void 0}function N(a){if(a)return a?.replace(/(\n|\t)/g," ").trim()||void 0}function it(a,e){if(e)try{return a.replace(new RegExp(e,"i"),"$1")}catch{}return a}function ot(a,e){if(e)try{return a.replaceAll(new RegExp(e,"gi"),"")}catch{}return a}function lt(a){try{return window.atob(a)}catch{return a}}var ct=(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))(ct||{}),ut=(a=>(a[a.ok=1]="ok",a[a.hidden=2]="hidden",a[a.deleted=3]="deleted",a))(ut||{}),gt=(a=>(a[a.aggregator=0]="aggregator",a[a.scanlator=1]="scanlator",a))(gt||{}),pt=(a=>(a[a.pending=0]="pending",a[a.completed=1]="completed",a[a.offline=2]="offline",a[a.incompat=3]="incompat",a))(pt||{}),q=(a=>(a.id="id",a.name="name",a.slug="slug",a))(q||{}),W=(a=>(a.blank="about:blank",a.title="meta.title",a.reader="meta.reader",a))(W||{});function ae(a=0){return new Promise(e=>setTimeout(e,a))}async function re(a,e=240){return new Promise(t=>{const r=new Image;r.crossOrigin="anonymous",r.onerror=()=>t(void 0),r.onload=()=>{const n=document.createElement("canvas"),s=n.getContext("2d"),i=Math.max(1,r.naturalWidth/e),l=r.naturalWidth/i,o=r.naturalHeight/i;n.width=l,n.height=o;const c=/iPad|iPhone|iPod/.test(navigator.userAgent);try{s.drawImage(r,0,0,l,o);const u=n.toDataURL(c?"image/jpg":"image/webp",c?.99:.8).split(",").slice(-1)[0];t(u)}catch{t(void 0)}},r.src=a})}async function dt(a,e=240){const t=await ht(a);if(t)return await new Promise(async r=>{const n=re(t,e),s=setTimeout(()=>r(void 0),100),i=await n;clearTimeout(s),r(i)})}async function ht(a){if(a.startsWith("blob:"))return a;try{const e=await fetch(a);if(e.status>=400)return;const t=await e.blob();return URL.createObjectURL(t)}catch{return}}const ft=[{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 ne(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 n=new Date(t);if(n instanceof Date){const c=n.valueOf();if(!isNaN(c))return n.getHours()===0&&n.getMinutes()===0?Math.min(r,c+432e5):c}const s=ft.find(c=>e&&c.locales[e]&&t.indexOf(c.locales[e])!==-1?!0:t.indexOf(c.locales.en)!==-1);if(!s)return;const i=t.split(" ").filter(Boolean),l=se(i)??(e==="en"?se(i,["a","an"]):void 0);if(!l)return;const o=r-l*s.seconds*1e3;return o>0?o:void 0}function se(a,e){for(let t=0;t<a.length;t++){const r=a[t];if(e?.includes(r))return 1;const n=+r;if(n)return n<0?void 0:n}}function mt(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 wt(a,{titleSlug:e,titleId:t,lang:r}){if(!a)return"/";let n=a;return e&&(n=n.replace("{titleSlug}",e)),t&&(n=n.replace("{titleId}",t)),r&&(n=n.replace("{lang}",r)),n.endsWith("/")||(n+="/"),n.startsWith("/")||(n="/"+n),n}function G(a){if(!a)return;let e=a;e.startsWith("//")&&(e=`https:${e}`);try{return new URL(e)}catch{return}}function x(a){if(!(!a||typeof a!="string"))return a.includes("//")?G(a)?.pathname:a}function vt(a,e){const t=[...e],r=[];let n=!1,s=0;const i=Math.min(a.length,100);for(let o=0;o<i;o++){if(s>=10/2){const f=10-r.length;if(f>0){const h=o+f<=a.length?a.slice(o,o+f):t.slice(0,f);r.push(...h)}break}const c=a[o],u=c.id!==void 0,g=t.findIndex(f=>u&&f.id===c.id||f.slug===c.slug||f.name==c.name),d=g===-1?void 0:t.splice(g,1)[0];!d||d.chapters[0]?.chap!==c.chapters[0]?.chap?(n=!0,r.push({...c,changed:!0})):(s++,r.push(c))}if(!n)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 yt(a,e){const t={};return a.forEach(r=>{const n=r.chapters.reduce((s,i)=>{const l=i.lang||e||"";return s[l]||(s[l]=[]),s[l].push(i),s},{});Object.entries(n).forEach(([s,i])=>{const l=`${r.slug}:${s}`;t[l]?(t[l].chapters.push(...i),B(t[l].chapters)):t[l]={...r,lang:s===""?void 0:s,chapters:i}})}),Object.values(t)}var R=(a=>(a.title="title",a.reader="reader",a.releases="releases",a.chapters="chapters",a.search="search",a))(R||{}),bt=Object.defineProperty,Rt=(a,e,t)=>e in a?bt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,T=(a,e,t)=>(Rt(a,typeof e!="symbol"?e+"":e,t),t);class U{constructor(e){T(this,"headless"),T(this,"siteId"),T(this,"spec"),T(this,"siteMeta"),T(this,"tags"),T(this,"context"),T(this,"methodsMap",{[R.title]:()=>this.getRawTitleData(),[R.reader]:()=>this.getRawReaderData(),[R.releases]:()=>this.getRawReleasesData(),[R.search]:()=>this.getRawSearchData(),[R.chapters]:()=>this.getRawChaptersData()}),T(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](),n=!r&&(e===R.title||e===R.reader)&&await St(this.spec);if(t&&!r&&!n)return;const s=location.origin+location.pathname;return{type:e,is404:n,specId:this.spec.id,siteName:Dt(this.spec.name),favUrl:Mt(),htmlLang:It(),url:s,data:r,spec:this.spec,context:this.context}}parseReaderSlug(e,t,r){const n=e.includes("{"),s=!this.siteId;let i=t;if(i[0]!=="/"&&(i.includes("/")||s&&!n))try{i=new URL(t,location.href).pathname}catch{}if(i.endsWith("/")&&(i=i.slice(0,-1)),e.startsWith("/")||(e="/"+e),e.endsWith("/")||(e=e+"/"),n){const l=e.split("/").filter(Boolean),o=i.split("/").filter(Boolean);if(l.length<o.length){const c=o[l.indexOf("{lang}")]?.toLowerCase(),u=o[l.indexOf("{titleId}")],g=o[l.indexOf("{titleSlug}")],d=e.replace("{lang}",c).replace("{titleId}",u).replace("{titleSlug}",g);if(s)return{basePath:"",slug:i,lang:c,titleId:u,titleSlug:g};if(i.startsWith(d))return{basePath:d,slug:i.replace(d,""),lang:c,titleId:u,titleSlug:g}}}else if(!s&&i.startsWith(e))return{basePath:e,slug:i.replace(e,"")};return{basePath:"",slug:i}}parseTitleSlug(e){if(typeof e!="string")return{};const t=x(e),r=t?.split("/").filter(Boolean);if(!r?.length)return{};const n=this.siteMeta.titleBase.split("/").filter(Boolean),s=n.indexOf("{slug}");return(s===-1?r.length-n.length>=1:r.length===n.length)?{id:r[n.indexOf("{id}")],slug:this.siteId?s===-1?r.slice(n.length).join("/"):r[s]:t}:{slug:t}}finalizeRawReleasesData(e){const t=this.spec.releases?.title?.lang?this.siteMeta.defaultLang:void 0,r=yt(e.rawReleases,t);if(r.length)return this.context.oldRawReleases?vt(r,this.context.oldRawReleases):{rawReleases:r,hasMore:!0}}getTagIdsFromNames(e){if(!e?.length)return;const t=this.normalizedTagsMap??(this.normalizedTagsMap=$t(this.tags)),r=e.map(n=>t[F(n)]).filter(Boolean);return r.length===0?void 0:Array.from(new Set(r)).sort((n,s)=>n-s)}}T(U,"specId"),T(U,"siteId");function $t(a){const e={};return a.forEach(({id:t,name:r,altNames:n})=>{e[F(r)]=t,n&&n.forEach(s=>{e[F(s)]=t})}),e}function F(a){const e=a.toLowerCase().replaceAll(/[^a-z0-9\s]/gi,"").trim().replaceAll(/\s+/g," ");return e[e.length-1]==="s"?e.substring(0,e.length-1):e}async function St(a){return xt()===404||a[404]&&await C(a[404],{lazy:!0,timeoutMs:5e3})?!0:document.title.toLowerCase().includes("not found")}function xt(){try{return window.performance.getEntries().find(a=>a.entryType==="navigation")?.responseStatus}catch{return}}function Dt(a){return(a&&p(a))??p('meta[property="og:site_name"]|attr:content')}function Mt(){return p('link[rel="icon"][sizes="32x32"],link[rel="icon"][sizes="192x192"],link[rel="apple-touch-icon"]|attr:href')}function It(){return p("html|attr:lang")||"en"}class m extends U{async getRawReleasesData(){if(!this.spec?.releases?.title)return;const{chapter:e,...t}=this.spec.releases.title,r=await C(t.sel,{lazy:!0,all:!0});if(!r?.length)return;const n=Date.now(),s=r.slice(0,100).map(l=>{const o=p(t.url,l),c=x(o),u=p(t.name,l),g=p(t.at,l);if(!c||!u)return;const d=ne(g,this.siteMeta.defaultLang);return{titleEl:l,id:p(t.id,l),path:c,name:u,lang:p(t.lang,l)?.toLowerCase(),at:d?Math.min(d,n):void 0}}).filter(Boolean);if(!s.length)return;const i=[];return await Promise.all(s.map(async l=>{const{path:o,titleEl:c,lang:u,at:g,...d}=l,{id:f,slug:h}=this.parseTitleSlug(o);if(!h)return;const v=d.id||f,y=await this.getChapters(e,{root:c,titleId:v,titleSlug:h,lang:u})??[];y.length&&i.push({slug:h,chapters:u||g?y.map(S=>({...S,elIndex:void 0,lang:S.lang??u,ts:S.ts??g})):y,...d,id:v})})),this.finalizeRawReleasesData({rawReleases:i})}getRawTitleData(){return this.getTitleData(this.spec.title)}async getTitleData(e){if(!e||(e.sel||e.lazy)&&!await C(e.sel??e.name,{lazy:!!e.lazy}))return;const t=p(e.name);if(!t)return;const{id:r,slug:n}=this.parseTitleSlug(location.pathname);if(!n)return;const s=A(e.tags)?.map(h=>h.split(",")).flat().map(h=>h.trim()).filter(Boolean),i=p(e.type),l=A(e.langs)?.map(h=>h.toLowerCase()),o=r||p(e.id),c=await this.getChapters(e.chapter,{lazy:!0,titleId:o,titleSlug:n,preferGroup:this.context.preferGroup})??[],u=await this.getValidImgSrc(e.img,t),g=u&&this.context.includeImgBytes?await dt(u):void 0,d=this.getFirstChapterUrl(),f=e.firstBtn;return{id:o||p(e.id),url:location.origin+location.pathname,slug:n,name:t,langs:l?.length?l:e.langs&&this.siteMeta.defaultLang?[this.siteMeta.defaultLang]:void 0,tags:this.getTagIdsFromNames([...s??[],...i?[i]:[]]),chapters:c,hasMoreChapters:e.hasMore?!!document.querySelector(e.hasMore):void 0,img:u,imgBytes:g,firstUrl:d,firstBtn:!d&&f&&document.querySelector(f)?f:void 0,trackers:this.getTrackersMap(e.trackers)}}getTrackersMap(e){if(!e)return;const t=p(e.mal),r=p(e.anl);if(!t||!r)return;const n={};return t&&(n.mal=t),r&&(n.anl=r),n}getFirstChapterUrl(){const e=p(this.spec.title?.first);if(e){if(e.startsWith("http"))return e;try{return new URL(e,location.href).href}catch{return}}}getValidImgSrc(e,t){return D(33,30,()=>{const r=p(e)||p(`img[alt="${t.replaceAll('"',"")}"]|[attr:data-src,attr-contain:src]`);return!r||r.startsWith("data:")?void 0:document.querySelector(`img[srcset*="${r}"]`)?r.split(" ")[0]:r})}getRawReaderTitleData(e){const t=this.spec.reader?.title;if(!t)return;const r=t.sel?document.querySelector(t.sel)??void 0:void 0,n=p(t.name,r);if(!n)return;const s=mt(p(t.img,r));if(e?.slug){let c=this.siteMeta.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.siteMeta.trailing?"/":"",d=`${location.origin}/${c}${g}`;return{name:n,img:s,url:d,slug:e.slug,id:e.id||p(t.id)}}}const i=p(t.url,r),{slug:l,id:o}=this.parseTitleSlug(i);if(!(!n||!i||!l))return{name:n,img:s,url:i,slug:l,id:o||p(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 n=this.parseReaderSlug(t.readerBase,location.pathname,location.href),{slug:s,basePath:i,lang:l}=n,o=this.getRawReaderTitleData({id:n.titleId,slug:n.titleSlug});if(!o)return;const c=p(e.reader.group),{id:u,slug:g}=o,d=e.reader?.chapter,f=!!this.context.disableLazyChapters,h=!!this.context.includeHiddenChapters,v=await this.getChapters(d,{titleId:u,titleSlug:g,lang:l,lazy:h||!f,includeHiddenChapters:h,timeoutMs:h?3e3:29e3,includeIndex:!0,basePath:i,preferGroup:c||this.context.preferGroup})??[],y=p(e.reader.label)?.toLowerCase().replace(o.name.toLowerCase(),"");if(!y)return;const{vol:S,chap:w=0}=P(y)||{},L=this.findNeighborChapter({sel:e.reader.prev,basePath:i,titleUrl:o.url}),_=this.findNeighborChapter({sel:e.reader.next,basePath:i,titleUrl:o.url});return this.finalizeRawReaderData({vol:S,chap:w,lang:l??p(e.reader.lang)?.toLowerCase()??(e.reader.lang?this.siteMeta.defaultLang:void 0),slug:s,basePath:i,group:c??p(e.reader.group),imgs:A(e.reader.imgs),title:{id:u||p(this.spec.reader?.title.id),url:o.url,slug:g,name:o.name,langs:l?[l]:void 0,img:o.img,chapters:v,hasMoreChapters:!v.length&&!h&&!!this.context.disableLazyChapters&&!!d?.label}},{prevSlug:L,nextSlug:_})}async getRawChaptersData(){const e=this.siteMeta.chapters;if(e===W.blank)return;const t=e===W.reader,r=!e||e===W.title,n=t?(await this.getRawReaderData())?.title:r?await this.getRawTitleData():void 0,s=this.spec.chapters?.chapter,i=s?await this.getChapters(s,{titleId:n?.id,titleSlug:n?.slug,lazy:this.spec.chapters?.lazy,includeHiddenChapters:!0,lang:this.context.lang,preferGroup:this.context.preferGroup}):n?.chapters;if(!i)return;const{lang:l}=this.context,o=l?i.filter(c=>!c.lang||c.lang===l):i;return{chapters:o,title:n?{...n,chapters:[]}:await this.getTitleData(this.spec.chapters?.title),hasMore:!1,asc:!1,total:o.length}}async getRawSearchData(){const e=this.spec.search,t=this.context.lang;if(!e)return;e.delay&&await ae(e.delay);const r=e.title,{chapter:n}=r,s=[],i=e.lazy?e.empty||e.loading?550:100:1,l=await D(i,50,()=>{const o=Array.from(document.querySelectorAll(r.sel));if(o.length||e.empty&&document.querySelector(e.empty)||e.loading&&!document.querySelector(e.loading))return o});if(l)return await Promise.all(l.map(async o=>{const c=p(r.url,o),u=x(c),g=p(r.name,o),{slug:d,id:f}=this.parseTitleSlug(u);if(!u||!g||!d)return;const h=p(r.lang,o);h&&t&&h!==t||s.push({id:f||p(r.id,o),slug:d,name:g,img:p(r.img??"img|[attr:data-src,attr-contain:src]",o),lang:h,chapters:await this.getChapters(n,{root:o,titleId:f,titleSlug:d})??[]})})),{rawReleases:s}}async getChapters(e,{root:t,titleId:r,titleSlug:n,lang:s,includeHiddenChapters:i=!1,lazy:l=!0,timeoutMs:o,includeIndex:c,basePath:u,preferGroup:g}){const d=e?.sel;if(!d||!e.label)return;const f=d.includes("{titleSlug}")?n?d.replace("{titleSlug}",n):void 0:d;if(!f)return;let h;if(e.trigger&&(!i||(h=await C(e.trigger,{timeoutMs:5e3,lazy:!0}),!h)))return;const v=[],y=await D((o??(l?1e4:50))/50,50,async()=>{h&&Qe(h),await ae(100);const b=Array.from((t??document.documentElement)?.querySelectorAll(f));if(b.length)return b}),S=(y??[]).map((b,$)=>({id:p(e.id,b),label:p(e.label,b),url:p(e.url,b),at:p(e.at,b),lang:p(e.lang,b),group:p(e.group,b),elIndex:$}));if(((e.dismiss?(t??document.body).querySelector(e.dismiss):void 0)??h)?.click(),!y?.length)return[];const w=S.map(({label:b})=>P(b)),L=w[1]?.chap;!w[0]&&(L===void 0||L<=1)&&(w[0]={chap:0});const _=u??wt(this.siteMeta.readerBase,{titleId:r,titleSlug:n,lang:s}),Q=Date.now();return w.forEach((b,$)=>{if(!b)return;const{id:Va,url:z,at:Ja,lang:Qa,group:Ya,elIndex:Ka}=S[$],Ne=ne(Ja,this.siteMeta.defaultLang),k={...b,id:Va,lang:Qa?.toLowerCase(),group:Ya,ts:Ne?Math.min(Q,Ne):void 0};if(c&&(k.elIndex=Ka),z?.startsWith("#")){v.push(k);return}const _e=z?.startsWith("http")&&!z.includes(`//${location.hostname}/`),Y=_e?z:x(z);if(!Y){v.push(k);return}if(_e){v.push({...k,slug:Y});return}const{slug:Za,lang:Xa}=this.parseReaderSlug(_,Y,z);v.push({...k,slug:Za,lang:Xa||k.lang})}),B(v,{preferGroup:g})}static async isReaderPage(e,t){const r=e.sel;return t&&!r?!1:!r||!!await C(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 C(t,{lazy:!0,all:!1})}findNeighborChapter({sel:e,basePath:t,titleUrl:r}){const n=p(e);if(!n||n.startsWith("#")||n.startsWith("/#"))return;const s=x(n);if(s&&!(s===location.pathname||r===s||r===`${location.origin}${s}`))return this.parseReaderSlug(t,s,n).slug||void 0}finalizeRawReaderData(e,{prevSlug:t,nextSlug:r}={}){const n=e.title.chapters;if(!n.length){const c=P(t),u=P(r);return!c&&!u?e:{...e,prev:c?{...c,slug:t}:void 0,next:u?{...u,slug:r}:void 0}}let s,i,l,o;for(let c=0;c<n.length&&!(s&&(!t||l)&&!r&&o);c++){const u=n[c];!s&&(e.slug==u.slug||e.chap===u.chap&&(e.vol===u.vol||e.vol===void 0))?(s=u,i=c):!l&&t===u.slug?l=u:!o&&r===u.slug&&(o=u)}return i!==void 0&&(l??(l=n[i+1]),o??(o=n[i-1])),{...e,inferVol:s?.inferVol,prev:l,next:o}}}var Tt=Object.defineProperty,Pt=(a,e,t)=>e in a?Tt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ct=(a,e,t)=>(Pt(a,typeof e!="symbol"?e+"":e,t),t);class ie extends m{async getRawReaderData(){const e=`https://${location.host}`,[t,r]=await Promise.all([I(e,"api","manga","info"),I(e,"api","read","chapter")]),n=t?.value,s=r?.value;if(!n||!s)return;const i=this.parseReaderSlug(this.siteMeta.readerBase,location.pathname,location.href);if(!i)return;const l=P(s.readChapter?.title);if(l)return this.finalizeRawReaderData({basePath:i.basePath,slug:i.slug,...l,imgs:s.readChapter.pages.map(o=>new URL(o.image,location.origin).href),title:{url:`${e}/manga/${n.id}`,slug:n.id,name:n.title,tags:this.getTagIdsFromNames([n.type].filter(Boolean)),chapters:B(n.chapters.map(o=>({slug:o.id,chap:o.number})),{preferGroup:this.context.preferGroup})}})}async getRawChaptersData(){const{titleSlug:e}=this.context;if(e)try{const t=await(await fetch(`${location.origin}/api/manga/info?mangaId=${e}`)).json();return{chapters:B(t.chapters.map(r=>({slug:r.id,chap:r.number})),{preferGroup:this.context.preferGroup})}}catch{return}}}Ct(ie,"specId","atsu");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,Lt=(a,e,t)=>(jt(a,typeof e!="symbol"?e+"":e,t),t);class H extends m{parseTitleSlug(e){return{slug:x(e)?.split("/").filter(Boolean)[1]}}}Lt(H,"specId","bato");var Ot=Object.defineProperty,Et=(a,e,t)=>e in a?Ot(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,At=(a,e,t)=>(Et(a,typeof e!="symbol"?e+"":e,t),t);class oe extends m{async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=window.pages,r=t?.map(n=>n?.image).filter(Boolean);if(!(!Array.isArray(r)||!r.length))return{...e,imgs:r,isWebtoon:t.some(n=>n.height/n.width>2)}}}At(oe,"specId","dynasty");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 le extends m{async getRawTitleData(){const e=await super.getRawTitleData();if(e)return{...e,chapters:ue()}}async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=ue();if(t.length)return{...e,title:{...e.title,img:ce(e.title.slug),chapters:t}}}async getRawSearchData(){const e=await super.getRawSearchData();if(e)return{...e,rawReleases:e.rawReleases.map(t=>({...t,img:ce(t.slug)}))}}}zt(le,"specId","kagane");function ce(a){return`https://api.${location.host}/api/v1/series/${a}/thumbnail`}function ue(){const a=["initialBooksData","initialChapters"],e=Array.from(document.querySelectorAll("script"));for(let t=0;t<e.length;t++){const r=e[t].textContent;if(r)for(const n of a){const s=r.indexOf(n);if(s===-1)continue;const i=r.slice(s);try{const l=JSON.parse(i.slice(i.indexOf("["),i.indexOf("}]")+2).replaceAll("\\","")),o=[];return l.map(c=>{const u=P(c.name);u&&o.push({...u,slug:c.id,ts:c.created?new Date(c.created).getTime():void 0})}),B(o)}catch{return[]}}}return[]}var kt=Object.defineProperty,Wt=(a,e,t)=>e in a?kt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ut=(a,e,t)=>(Wt(a,typeof e!="symbol"?e+"":e,t),t);class ge 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(qt).filter(Boolean)}}}Ut(ge,"specId","lua");function qt(a){if(!a||typeof a.chapter_name!="string")return;const e=P(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 pe(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 Gt=Object.defineProperty,Ft=(a,e,t)=>e in a?Gt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ht=(a,e,t)=>(Ft(a,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=de(this.spec.reader?.title),r=t?this.finalizeNewSiteMeta(this.siteMeta,{titleBase:this.extractBasePath(x(t))}):void 0,n=await super.getRawReaderData();if(n)return{...n,siteMeta:r}}async getRawSearchData(){const e=de(this.spec.search?.title);if(!e)return;const t=this.finalizeNewSiteMeta(this.siteMeta,{titleBase:this.extractBasePath(x(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,n=document.querySelector(r.sel)??void 0;if(!n)return;const s=x(p(r.url,n));if(s!==void 0)return this.finalizeNewSiteMeta(t,{titleBase:this.extractBasePath(s)})}finalizeNewSiteMeta(e,{titleBase:t}){if(e.titleBase!==t)return{...e,releases:this.siteId?e.releases:null,titleBase:t,readerBase:e.readerBase.replace(e.titleBase,t)}}extractBasePath(e){return pe(e,"/").split("/").slice(0,-1).join("/")}}Ht(V,"specId","madara");function de(a){if(!a)return;const e=a.sel?document.querySelector(a.sel)??void 0:void 0;return p(a.url,e)}var Vt=Object.defineProperty,Jt=(a,e,t)=>e in a?Vt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Qt=(a,e,t)=>(Jt(a,typeof e!="symbol"?e+"":e,t),t);class he extends m{async getRawTitleData(){const e=await super.getRawTitleData();if(!e)return;const t=await fe(this.context.preferGroup),r=new Set;return t.forEach(({lang:n})=>{n&&r.add(n)}),{...e,chapters:t,langs:r.size?Array.from(r):[this.siteMeta.defaultLang||"en"]}}async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=await fe(e.group||this.context.preferGroup),r=t[0]?.lang;return this.finalizeRawReaderData({...e,lang:r,title:{...e.title,chapters:t,langs:r?[r]:void 0}})}}Qt(he,"specId","mangaball");async function fe(a){const e=await D(100,50,()=>{try{return ALL_CHAPTERS.length?ALL_CHAPTERS:void 0}catch{return}});if(!e)return[];const t=[];return e.forEach(r=>{r.translations.forEach(n=>{const s=n.volume;t.push({chap:r.number_float,vol:s>0?s:void 0,slug:n.id,lang:n.language,group:n.group?.name,ts:new Date(n.date).getTime()})})}),B(t,{preferGroup:a})}var Yt=Object.defineProperty,Kt=(a,e,t)=>e in a?Yt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Zt=(a,e,t)=>(Kt(a,typeof e!="symbol"?e+"":e,t),t);const Xt={a:.1,b:.2,c:.3,d:.4};class me extends m{parseTitleSlug(e){return{slug:x(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:n,id:s})=>{const i=r.find(({type:g})=>g==="manga"),l=j(n.volume),o=j(n.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:n.externalUrl||s,vol:l,chap:o,lang:n.translatedLanguage,ts:new Date(n.readableAt).valueOf()}]})}),super.finalizeRawReleasesData({rawReleases:t})}async getRawTitleData(){const e="https://api.mangadex.org/manga/",[t,r]=await Promise.all([I(e,M),I(e,M,"feed")]);if(!t||!r)return;const n=r.value.data?.map?.(o=>{const{attributes:c,id:u}=o;if(typeof c!="object"||typeof u!="string"||!u)return;const{externalUrl:g,title:d,volume:f,chapter:h,translatedLanguage:v}=c;return{slug:g||u,label:d||void 0,vol:j(f),chap:j(h),lang:v||"en",ts:new Date(c.readableAt).valueOf()}}).filter(o=>o?.chap!=null)??[],{data:s}=t.value;if(!s)return;const i=ve({data:s,getTagIdsFromNames:o=>this.getTagIdsFromNames(o)});if(!i)return;const l=this.context.includeImgBytes&&i.img?await re(i.img):void 0;return{...i,imgBytes:l,chapters:B(n,{preferGroup:this.context.preferGroup}),hasMoreChapters:(r.value.total||0)>(r.value.limit||0)}}async getRawReaderData(){const e="https://api.mangadex.org/",[t,r,n]=await Promise.all([I(e,"chapter",M),I(e,"at-home","server",M),I(e,"manga",M,"aggregate")]);if(!t||!r||!n)return;const s=t.value.data,{volume:i,chapter:l,externalUrl:o,translatedLanguage:c}=s.attributes||{},{baseUrl:u,chapter:{data:g,dataSaver:d,hash:f}}=r.value,h=s.relationships?.find?.($=>$.type==="manga");if(!h)return;const v=ve({data:h,getTagIdsFromNames:$=>this.getTagIdsFromNames($)});if(!v||typeof n.value.volumes!="object")return;const y=we(n.value,{preferGroup:this.context.preferGroup})??[];(typeof l!="string"||l==="none")&&!y.length&&y.push({chap:0,slug:s.id});const S=y.findIndex($=>$.slug===s.id),w=s.relationships?.find?.($=>$.type==="scanlation_group"),L=u.endsWith("/")?u:u+"/",_=!!localStorage.getItem("md")?.includes?.('"dataSaver":true'),Q=`${L}${_?"data-saver":"data"}/`,b=((_?d:g)??[]).map?.($=>`${Q}${f}/${$}`)??[];return{externalUrl:o,vol:j(i),inferVol:y[S]?.inferVol,chap:j(l)||0,imgs:b,lang:c,slug:s.id,prev:y[S+1],next:y[S-1],basePath:"/chapter/",group:w?.attributes?.name,groupUrl:w?.attributes?.website,isWebtoon:h?.attributes?.tags?.some($=>$.attributes.name.en==="Long Strip"),title:{...v,chapters:y}}}async getRawChaptersData(){const{titleSlug:e}=this.context,t=this.context.lang||"en";let r;try{const n=await fetch(`https://api.mangadex.org/manga/${e}/aggregate?translatedLanguage[]=${t}`);r=we(await n.json(),{preferGroup:this.context.preferGroup})}catch{return}if(r)return{chapters:r,lang:t,asc:!1,hasMore:!1,total:r.length}}}Zt(me,"specId","mangadex");function j(a){if(typeof a!="string"||a==="none")return;const e=parseFloat(a);if(e!==e)return;const t=a[a.length-1];return e+(Xt[t]??0)}function we(a,{preferGroup:e}){if(typeof a.volumes!="object")return;const t=Object.values(a.volumes).map(({volume:r,chapters:n})=>{const s=j(r);return Object.values(n).map(({id:i,chapter:l})=>{const o=j(l);if(o!==void 0)return{vol:s,chap:o,slug:i}})}).flat().filter(Boolean).reverse();return B(t,{preferGroup:e})}function ve({data:a,getTagIdsFromNames:e}){const{id:t,attributes:r,relationships:n}=a;if(!t||typeof t!="string"||typeof r!="object")return;const{title:s,availableTranslatedLanguages:i,altTitles:l,tags:o,contentRating:c}=r;if(typeof s!="object"||i&&!Array.isArray(i))return;const u=Object.values(s)[0];if(!u||typeof u!="string")return;const g=ea(),d=(i??[])?.map?.(w=>typeof w=="string"?w:void 0).filter(Boolean)??[],f=d.filter(w=>w&&(!g||g.includes(w))),h=l?.map?.(w=>{const[[,L]=[]]=Object.entries(w);return L}),v=n?.find?.(w=>w.type==="cover_art")?.attributes?.fileName,y=v?`https://mangadex.org/covers/${t}/${v}.256.jpg`:void 0,S=(o||[]).map(w=>w?.attributes?.name?.en).concat(c).filter(Boolean);return{url:`${location.origin}/title/${t}`,slug:t,name:u,altNames:h,langs:f.length>0?f:d.length>0?d:["en"],img:y,tags:e(S)}}function ea(){const a=localStorage.getItem("md");if(a)try{const e=JSON.parse(a)?.userPreferences?.filteredLanguages;return e?.length?e:void 0}catch{return}}var ta=Object.defineProperty,aa=(a,e,t)=>e in a?ta(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ra=(a,e,t)=>(aa(a,typeof e!="symbol"?e+"":e,t),t);class ye extends m{async getRawReaderData(){if((await C(".current-viewtype",{lazy:!0,all:!1}))?.textContent?.trim().toLowerCase()!=="volume")return await super.getRawReaderData()}async getRawChaptersData(){const e=this.context.lang??"en",t=await C(`.tab-content[data-name="chapter"] a.dropdown-item[data-code="${e.toUpperCase()}"]`,{lazy:!0,all:!1});if(t)return t.click(),await C(`.tab-content[data-name="chapter"] li.item[data-number] a[href*="/${e}/"]`,{lazy:!0,all:!1}),await super.getRawChaptersData()}async getRawSearchData(){const e=await super.getRawSearchData();if(!e)return;const t=this.context.lang??"en";return{...e,rawReleases:e.rawReleases.map(r=>({...r,lang:r.lang??t}))}}}ra(ye,"specId","mangafire");var na=Object.defineProperty,sa=(a,e,t)=>e in a?na(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ia=(a,e,t)=>(sa(a,typeof e!="symbol"?e+"":e,t),t);class be extends m{async getRawReaderData(){const e=await super.getRawReaderData();return e&&{...e,imgs:await this.getImgs()}}parseReaderSlug(e,t){const{slug:r,basePath:n}=super.parseReaderSlug(e,t),s=r.split("/").filter(Boolean),i=s[s.length-1];return{basePath:n,slug:i.startsWith("pg-")?s.slice(0,-1).join("/"):r}}async getImgs(){const e=await D(100,20,()=>window.imgsrcs),t=window.CryptoJS,r=t.enc.Hex.parse("e11adc3949ba59abbe56e057f20f883e"),n={iv:t.enc.Hex.parse("1234567890abcdef1234567890abcdef"),padding:t.pad.ZeroPadding};return t.AES.decrypt(e,r,n).toString(t.enc.Utf8).split(",")}}ia(be,"specId","mangago");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 Re extends m{async getRawTitleData(){const e=`https://backend.${location.host}`,t=await I(e,"chapters-with-ids",M,M),r=await super.getRawTitleData();if(!(!t?.value||!r))return{...r,langs:await ua(),chapters:J(t.value)}}async getRawChaptersData(){const{titleSlug:e,lang:t}=this.context;if(e)try{const r=await fetch(`https://backend.${location.host}/chapters-with-ids/${e}/${t??"en"}`);return{chapters:J(await r.json())}}catch{return}}async getRawReaderData(){const e=`https://backend.${location.host}`,[t,r]=await Promise.all([I(e,"chapters-with-ids",M,M),I(e,"read",M)]);if(!t?.value||!r?.value?.length)return;const n=await super.getRawReaderData();if(!n)return;const s=new URLSearchParams(location.search).get("number")??"0";return{...n,slug:`${n.slug}?number=${s}`,imgs:r.value,title:{...n.title,chapters:J(t.value)}}}}ca(Re,"specId","mangahaven");async function ua(){const a=document.querySelector('[role="tabpanel"] button');if(!a)return;const e=document.createElement("style");e.innerHTML="[data-radix-popper-content-wrapper] { display: none !important; }",document.head.appendChild(e),a.click();const t=await D(50,10,()=>A('img[src*="/flags/"]|attr:src|pattern:.+/(.+).svg'));return a.click(),setTimeout(()=>document.head.removeChild(e),1e3),t}function J(a){const e=[];return a?.forEach?.(t=>{const r=+t.chapter;isNaN(r)||!t.id||e.push({chap:r,slug:`${t.id}?number=${t.chapter}`,lang:t.lang?.toLowerCase?.()})}),e}var ga=Object.defineProperty,pa=(a,e,t)=>e in a?ga(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,da=(a,e,t)=>(pa(a,typeof e!="symbol"?e+"":e,t),t);class $e extends H{}da($e,"specId","mangapill");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 Se 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]}))}}}ma(Se,"specId","mangaplus");var wa=Object.defineProperty,va=(a,e,t)=>e in a?wa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ya=(a,e,t)=>(va(a,typeof e!="symbol"?e+"":e,t),t);class xe 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((n,s)=>s.time-n.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:pe(location.pathname,"/")},n=e.title,s=document.querySelector(n.sel)??void 0;if(!s)return;const i=x(p(n.url,s));if(i===void 0)return;const l=s.querySelector(n.chapter.sel)??void 0;if(!(!l||x(p(n.chapter.url,l))===void 0))return r.titleBase=this.extractBasePath(i),t.titleIdType===q.id&&(p(n.id,s)||(t.titleIdType=q.name)),this.finalizeNewSiteMeta(t,r)}finalizeNewSiteMeta(e,t){if(this.siteId==="realm")return;const r=Object.keys(t),n={...e};let s=!1;return r.forEach(i=>{const l=t[i];l!==e[i]&&(n[i]=l,s=!0)}),s?n:void 0}}ya(xe,"specId","mangastream");var ba=Object.defineProperty,Ra=(a,e,t)=>e in a?ba(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,$a=(a,e,t)=>(Ra(a,typeof e!="symbol"?e+"":e,t),t);class De extends m{async getRawReaderData(){const e=await super.getRawReaderData();return e&&{...e,slug:e.slug.split("/").slice(0,-1).join("/")||e.slug.split("/")[0]}}}$a(De,"specId","mangaworld");var Sa=Object.defineProperty,xa=(a,e,t)=>e in a?Sa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Da=(a,e,t)=>(xa(a,typeof e!="symbol"?e+"":e,t),t);class Me extends m{async getRawTitleData(){const e=await super.getRawTitleData();if(e)return{...e,hasMoreChapters:e.chapters.length===50}}}Da(Me,"specId","mgeko");var Ma=Object.defineProperty,Ia=(a,e,t)=>e in a?Ma(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ta=(a,e,t)=>(Ia(a,typeof e!="symbol"?e+"":e,t),t);class Ie extends U{async getRawReleasesData(){}async getRawTitleData(){const e=await Te();if(!e)return;const t=p("#cover img|[attr:data-src,attr-contain:src]");return{...e,img:t}}async getRawReaderData(){const e=await Te();if(!e)return;const t=p("#image-container img|[attr:data-src,attr-contain:src]"),r=G(t);if(!r)return;const n=r.pathname.split("/").filter(Boolean).slice(0,-1).join("/"),s=`${r.origin}/${n}/`,i=r.pathname.split("?")[0].split("#")[0].split(".").slice(-1)[0]||"webp";return{chap:0,slug:"1",basePath:e.url.replace(location.origin,"").slice(1),imgs:Array.from({length:e.totalImgs},(l,o)=>`${s}${o+1}.${i}`),title:{name:e.name,slug:e.slug,url:e.url,chapters:[{slug:"1",chap:0}]}}}async getRawChaptersData(){const e=await this.getRawTitleData();if(!e)return;const{chapters:t,...r}=e;return{title:{...r,chapters:[]},chapters:t}}}Ta(Ie,"specId","nhentai");async function Te(){const a=await D(100,20,()=>window._gallery);if(!a?.id||!a?.title||!a?.images?.pages)return;const{title:e,images:{pages:t,cover:r},media_id:n}=a;return{name:e.pretty??e.english??e.japanese,slug:a.id+"",url:`${location.origin}/g/${a.id}`,chapters:[{slug:"1",chap:0}],totalImgs:t.length,img:await Pa(n,r.t)}}async function Pa(a,e){if(!a||!e)return;const t={j:"jpg",p:"png",g:"gif",w:"webp"}[e];if(!t)return;const r=(await D(10,20,()=>window._n_app))?.options?.thumb_cdn_urls?.[0];if(r)return`https://${r}/galleries/${a}/cover.${t}`}var Ca=Object.defineProperty,Ba=(a,e,t)=>e in a?Ca(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ja=(a,e,t)=>(Ba(a,typeof e!="symbol"?e+"":e,t),t);class Pe extends m{async getRawChaptersData(){const e=this.context.titleSlug;if(!e)return;const t=`https://api.${location.host}/api/post/chapters?postSlug=${e}`;return{chapters:(await(await fetch(t)).json()).map(La).filter(Boolean)}}}ja(Pe,"specId","qi");function La(a){if(!(!a||typeof a.number!="number"))return{chap:a.number,slug:typeof a.slug=="string"?a.slug:void 0,ts:typeof a.createdAt=="string"?new Date(a.createdAt).valueOf():void 0}}var Oa=Object.defineProperty,Ea=(a,e,t)=>e in a?Oa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Aa=(a,e,t)=>(Ea(a,typeof e!="symbol"?e+"":e,t),t);class Ce extends m{finalizeRawReaderData(e,{prevSlug:t,nextSlug:r}={}){if(!e.title.chapters.length){const n=P(t?.split(".").slice(0,-1).join(".")),s=P(r?.split(".").slice(0,-1).join("."));return!n&&!s?e:{...e,prev:n?{...n,slug:t}:void 0,next:s?{...s,slug:r}:void 0}}return super.finalizeRawReaderData(e,{prevSlug:t,nextSlug:r})}}Aa(Ce,"specId","rawkuma");var Na=Object.defineProperty,_a=(a,e,t)=>e in a?Na(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,za=(a,e,t)=>(_a(a,typeof e!="symbol"?e+"":e,t),t);class Be extends m{async getRawTitleData(){const e=await super.getRawTitleData();if(!e)return;const t=A(".info-detail__row > .genre-btn,.info__right .stats__row:first-child|text")?.map(r=>[r,...r.split(" ")]).flat();return je({...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:{...je({...e.title,url:t,tags:[]},".episode-list .js-ep-cnt"),hasMoreChapters:!1}}}async getRawChaptersData(){const{rawId:e,skip:t}=this.context,r=1e3,n=t?Math.floor(t/1e3)+1:1;try{const s=await fetch(`/series/${e}/episodes?page=${n}&sort=NEWEST&max_limit=${r}`);return ka(await s.json())}catch{return}}parseTitleSlug(e){if(!e)return{};const t=e.split("/").filter(Boolean);return{slug:t[1]??t[0]}}}za(Be,"specId","tapas");function je(a,e){const t=Wa(e)>20;return{...a,chapters:t?[]:a.chapters,hasMoreChapters:t}}function ka(a){const e=a?.data?.episodes;if(!Array.isArray(e))return;const t=e.map(n=>({chap:n.pending_scene??n.scene,slug:n.id+"",ts:new Date(n.publish_date)?.valueOf?.()||void 0})),r=a?.data?.pagination;return{chapters:t,total:r?.total??t.length,hasMore:!!r?.has_next}}function Wa(a){return+(document.querySelector(a)?.textContent?.trim().split(" ")[0]||0)}var Ua=Object.defineProperty,qa=(a,e,t)=>e in a?Ua(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ga=(a,e,t)=>(qa(a,typeof e!="symbol"?e+"":e,t),t);class Le 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 n=await super.getRawTitleData();if(!n)return;const s=location.hostname.startsWith("m."),i=location.pathname.split("/")[1];return{...n,slug:`${n.slug}?title_no=${r}`,id:r,langs:i?[i]:void 0,chapters:s?[]:n.chapters.map(l=>({...l,lang:i})),hasMoreChapters:s||(document.querySelector(".paginate")?.childElementCount??1)>1}}async getRawReaderData(){const e=new URLSearchParams(location.search),t=e.get("episode_no"),r=e.get("title_no"),n=t?+t:void 0;if(!t||!r||typeof n!="number"||isNaN(n))return;const s=document.title.split("|")[1]?.trim();if(!s)return;const i=location.pathname.split("/"),l=`${i.slice(0,4).join("/")}/list?title_no=${r}`,o=await this.getChapters({sel:"#sequence_scroll li.eg-flick-panel,#toolbar .episode_lst li[data-episode-no]",url:"a|attr:href",label:"|attr:data-episode-no || a|attr:href|pattern:.+episode_no=(\\d+).*"},{lazy:!1,titleId:r,titleSlug:l}),c=i[1];return{chap:n,lang:c,slug:`${location.pathname}?title_no=${r}&episode_no=${t}`,basePath:"",imgs:await this.getReaderImgs(),isWebtoon:!0,title:{id:r,url:l,slug:l,name:s,langs:[c],chapters:(o??[]).map(u=>({...u,lang:c})),hasMoreChapters:!1}}}async getReaderImgs(){const e=A("#_imageList img|[attr:data-url,attr:src]");return e?.length?e:await D(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 n=G(r);return{basePath:"",slug:n.pathname+n.search}}return{basePath:"",slug:r}}}Ga(Le,"specId","webtoon");const Fa=[ie,H,oe,le,ge,V,he,me,ye,be,Re,$e,Se,xe,Me,De,Ie,Pe,Ce,Be,Le];function Oe(a){const e=Fa.find(t=>t.specId===a.spec.id)??m;return new e(a)}async function Ha(a){const{spec:e}=a,t=a.siteMeta??e?.meta;if(e&&t){const r=a.type?[a.type]:Ee(t,e.generic);if(!r.length)return;const n=Oe({...a,spec:e,siteMeta:t});return await E(r.map(s=>n.getRawPageByType(s,r.length>1)))}return await E((a.genericSpecs??[]).map(r=>{if(!r.meta||!r.generic)return[];const n=Ee(r.meta,r.generic);if(!n.length)return[];const s=Oe({...a,spec:r,siteMeta:r.meta});return n.map(i=>s.getRawPageByType(i,!0))}).flat())}function Ee(a,e){if(location.pathname==="/")return[];const{titleBase:t,readerBase:r}=a,n=location.pathname.split("/").filter(Boolean),s=Ae(n,r),i=Ae(n,t);if(s&&i)return[R.reader,R.title];const l=[];return!i&&(s!==!1||e)&&l.push(R.reader),!s&&(i!==!1||e)&&l.push(R.title),!l.length&&e?[R.reader,R.title]:l}function Ae(a,e){if(!e)return;const t=e.split("/").filter(Boolean),r=t.indexOf("{slug}"),n=r===t.length-1,s=!n&&r!==-1;if(n&&(t.pop(),!t.length))return;const i=a.length-t.length;if(s?i<0:i<=0)return!1;let l=!1;for(let o=0;o<t.length;o++){const c=t[o];if(c[0]!=="{"){if(c!==a[o])return!1;l=!0}}if(l&&i===(s?0:1))return!0}O.PageType=R,O.scrape=Ha});
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "trackkun-dom",
3
3
  "author": "endyquang",
4
- "version": "2.7.3",
4
+ "version": "2.9.0",
5
5
  "license": "UNLICENSED",
6
6
  "description": "MP DOM parser & configurations",
7
7
  "main": "index.js",
package/specs.json CHANGED
@@ -1 +1 @@
1
- [{"404":"img[src*=\"/images/error-message\"]","id":"asura","meta":{"releases":"","titleBase":"series","readerBase":"series/{titleSlug}/chapter","searchBase":"series?page=1&name=","titleIdType":"name","defaultLang":"en","trailing":false},"releases":{"title":{"sel":"div:has(> a[href=\"/series\"]) + div > div > div > div:nth-child(2)","name":"span a|text","url":"span a|attr:href","chapter":{"sel":"div:has(> p):has(a)","url":"a[href*=\"/chapter/\"]|attr:href","label":"a[href*=\"/chapter/\"] p|text","at":"div + p|text"}}},"title":{"name":"div:has(> div > a[href*=\"/sharer/\"]) span|text","img":"img[alt=\"poster\"]|attr-contain:src","type":"div:has(> img[alt=\"poster\"]) h3:first-child|row:type","tags":"div:has(> h3:first-child):has(> div:last-child:nth-child(2)) button|text","chapter":{"sel":"a[href*=\"/chapter/\"]:has(> h3)","url":"|attr:href","label":"h3|text","at":"h3:last-child|text"}},"reader":{"lazy":true,"sel":"img[src*=\"/EndDesign\"]","label":"a:last-of-type > h3|text","imgDivs":"div:has(> img[alt*=\"chapter\"])","content":"div:has(> img[src*=\"/EndDesign\"]):has(> div > img), body","imgs":"div:has(> img[alt*=\"chapter\"]) img|attr-contain:src","prev":"a[href*=\"/chapter/\"]:has(svg.lucide-chevron-left)|attr:href","next":"a[href*=\"/chapter/\"]:has(svg.lucide-chevron-right)|attr:href","title":{"sel":"a[href*=\"series/\"]:not([href$=\"series/\"]):not([href*=\"/chapter/\"])","name":"span|text","url":"|attr:href"},"chapter":{"trigger":"button:has(> h2)","sel":".dropdown-content > a","label":"h2|text","url":"|attr:href"}},"search":{"title":{"sel":"a[href*=\"series/\"]:not([href$=\"series/\"]):has(div span:first-child)","url":"|attr:href","name":"div:has(> span:first-child):has(> span:nth-child(3):last-child) span:first-child|text"}}},{"404":"#content > .wrapper > .notf img, body:empty","id":"mangastream","generic":true,"name":"meta[itemprop=\"name\"]|attr:content","meta":{"releases":"","titleBase":"series","readerBase":"","searchBase":"?s=","idBase":"?p=","titleIdType":"id","defaultLang":"en","trailing":true},"releases":{"title":{"sel":".listupd .utao .uta, .bixbox .bs.styletere","id":"a.series[rel]|attr:rel","name":"h4, .info .tt, .tt a, .series > h3|text","url":"a|attr:href","chapter":{"sel":".luf ul li, .chapter-list > a, .chfiv > li","label":"a .fivchap, a, .epxs|text","url":"a|attr:href || |attr:href","at":"a .fivtime, a + span, .epxdate, .newchtimeluffy|text"}}},"title":{"sel":"#chapterlist > ul","id":".bookmark[data-id]|attr:data-id || #rating-form input[name=\"bs_table_id\"]|attr:value","name":"h1.entry-title|text","img":".thumb img|attr-contain:src","type":".imptdt a[href*=\"type=\"]|text || .imptdt:first-of-type i|text","tags":".postbody .mgen > a|text","chapter":{"sel":"#chapterlist > ul > li","url":"a|attr:href","label":".chapternum|text","at":".chapterdate|text"}},"reader":{"sel":"#readerarea","content":"#readerarea","id":".ctop option:checked|attr:data-id","label":"h1.entry-title|text","title":{"sel":".headpost .allc a, [itemprop=\"itemListElement\"] [content=\"2\"] ~ a","name":"|text","url":"|attr:href"},"prev":"a.ch-prev-btn:not(.disabled)|attr:href","next":"a.ch-next-btn:not(.disabled)|attr:href","chapter":{"sel":".ctop #chapter option:not([disabled]):not([value=\"\"])","id":"|attr:data-id","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":".listupd .bsx","name":".bigor .tt|text","url":"a|attr:href","img":"img|attr-contain:src"}}},{"404":".error-404.not-found","id":"madara","generic":true,"name":"meta[property=\"og:site_name\"]|attr:content || a.logo|attr:title","meta":{"releases":"","titleBase":"manga","readerBase":"manga/{titleSlug}","idBase":"?p=","searchBase":"?post_type=wp-manga&s=","defaultLang":"en","titleIdType":"id","trailing":true},"releases":{"title":{"sel":".page-listing-item .page-item-detail, .lastest-content .page-item-detail","id":"[data-post-id]|attr:data-post-id","name":"h3 a, .item-summary h3|text","url":"a|attr:href","chapter":{"sel":".chapter-item","label":".chapter a|text","url":".chapter a|attr:href","at":".c-new-tag|attr:title || .post-on|text"}}},"title":{"sel":"body.manga-page","id":"#manga-chapters-holder|attr:data-id || .rating-post-id|attr:value || [data-action=\"bookmark\"]|attr:data-post","name":"h1|text","img":".summary_image .img-responsive, .summary_image img, .series-img img|[attr:data-src,attr-contain:src]","tags":"a[rel=\"tag\"][href*=\"genre\"],a[rel=\"tag\"][href*=\"tag\"],.genres-content|text","type":".post-content_item .summary-heading|row:type","chapter":{"sel":"li.wp-manga-chapter, .chapter-ul > li","url":"a|attr:href","label":"a, .chapter-title-date > p|text","at":".c-new-tag|attr:title || .chapter-release-date i|text"}},"reader":{"sel":".entry-content .read-container","content":".reading-content","label":".breadcrumb li.active|text","title":{"sel":".breadcrumb li:nth-last-of-type(2) a","id":"#manga-reading-nav-head|attr:data-id","name":"|text","url":"|attr:href"},"prev":"a.btn.prev_page|attr:href","next":"a.btn.next_page|attr:href","chapter":{"sel":"#manga-reading-nav-head select.single-chapter-select > option:not([disabled])","label":"|text","url":"|attr:data-redirect"}},"search":{"title":{"sel":".c-tabs-item__content","name":"h3 a|text","url":"a|attr:href","chapter":{"sel":".tab-meta","label":".chapter a|text","url":".chapter a|attr:href","at":".c-new-tag|attr:title || .post-on|text"}}}},{"404":".elapi > a[href*=\"/search?q=\"]","id":"mangahub","meta":{"releases":"","titleBase":"manga","readerBase":"chapter/{titleSlug}","searchBase":"search?q=","defaultLang":"en","titleIdType":"slug","trailing":false},"releases":{"title":{"sel":".list-group-item .media","name":"h4.media-heading a|text","url":".media-heading a|attr:href","at":".media-heading .small|text","chapter":{"sel":".media-body > a","label":"|text","url":"|attr:href"}}},"title":{"sel":"#chapters-tab .tab-content","name":"#mangadetail h1|text","img":"#mangadetail img.manga-thumb|attr-contain:src","tags":"#mangadetail a.genre-label|text","chapter":{"sel":"#chapters-tab li.list-group-item","label":"a > span:first-child > span:first-child|text","url":"a:not([title])|attr:href || a:not([rel])|attr:href || a|attr:href","at":"small|text"}},"reader":{"content":"#mangareader .container-fluid, #mangareader","label":"h3|text","prev":".chapter-pager .previous a[href*=\"/chapter/\"]|attr:href","next":".chapter-pager .next a[href*=\"/chapter/\"]|attr:href","title":{"sel":"h3 a","name":"|text","url":"|attr:href"},"chapter":{"sel":".pager-dropdown .dropdown-menu > li > a","label":"|text","url":"|attr:href"}},"search":{"title":{"sel":".media-manga","name":"h4 a|text","url":"h4 a|attr:href","img":"img|attr-contain:src","chapter":{"sel":".media-body","label":"a[href*=\"/chapter/\"]|text","url":"a[href*=\"/chapter/\"]|attr:href"}}}},{"id":"mangadex","meta":{"releases":"about:blank","titleBase":"title","readerBase":"chapter","searchBase":"titles?q=","defaultLang":"en","chapters":"about:blank","titleIdType":"slug","trailing":false},"search":{"lazy":true,"loading":"[indeterminate] svg","title":{"sel":"a.manga-card-dense","url":"|attr:href","name":"a.title span|text","img":".cover img|attr-contain:src"}}},{"id":"bato","meta":{"releases":"","titleBase":"series","readerBase":"chapter","searchBase":"search?word=","defaultLang":"en","titleIdType":"slug","trailing":false},"releases":{"title":{"sel":"#series-list > .item","name":"a.item-title|text","url":"a.item-title|attr:href","lang":"em[data-lang]|attr:data-lang","chapter":{"sel":".item-volch","label":"a|text","url":"a|attr:href","at":"i|text"}}},"title":{"name":"h3.item-title a|text","img":".attr-cover > img|attr-contain:src","langs":".title-set em[data-lang]|attr:data-lang","tags":".attr-main .attr-item .text-muted|row:genres","chapter":{"sel":".episode-list > .main > .item","label":"a.chapt > b|text","url":"a.chapt|attr:href","at":".extra > i|text"}},"reader":{"content":"#viewer","label":"title|text","title":{"sel":"h3.nav-title a","name":"|text","url":"|attr:href"},"lang":"h3.nav-title em[data-lang]|attr:data-lang","prev":".nav-prev > a[href^=\"/chapter/\"]|attr:href","next":".nav-next > a[href^=\"/chapter/\"]|attr:href","chapter":{"sel":".nav-epis > select option:not([disabled]):not([value=\"\"])","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":"#series-list > .item","url":"a|attr:href","name":".item-title|text","img":"a img|attr-contain:src","lang":"em[data-lang]|attr:data-lang","chapter":{"sel":".item-volch","url":"a|attr:href","label":"a|text","at":"i|text"}}}},{"404":"#error > .attention","id":"mangago","meta":{"releases":"list/latest","titleBase":"read-manga","readerBase":"read-manga/{titleSlug}","searchBase":"r/l_search/?name=","defaultLang":"en","titleIdType":"slug","trailing":true},"releases":{"title":{"sel":"ul#search_list > li > div","name":"a.thm-effect|attr:title","url":"a.thm-effect|attr:href","chapter":{"sel":"a.chico","label":"|text","url":"|attr:href"}}},"title":{"name":".w-title h1|text","img":".article .cover img,#information img|attr-contain:src","tags":".manga_right a[href*=\"/genre/\"],.manga_info ul.uk-list a[href*=\"/genre/\"]|text","chapter":{"sel":"#chapter_table tbody tr, table.uk-table tbody tr","label":"h4 a b, a.chico b|text || a.chico|text","url":"h4 a, a.chico|attr:href","at":"td:last-child|text"}},"reader":{"content":"body","label":"#navi h3 span:last-child,#series + a.chapter|text","title":{"sel":"#navi a#series,#reader-nav .nav li:first-child a","name":"|text","url":"|attr:href"},"chapter":{"sel":".pagebar.top ul.dropdown-menu.chapter > li > a,#series ~ ul.chapter li a","label":"|text","url":"|attr:href"}},"search":{"title":{"sel":"#search_list > li .box","name":"a.thm-effect|attr:title","url":"a.thm-effect|attr:href","chapter":{"sel":"a.chico","label":"|text","url":"|attr:href"}}}},{"404":".nf-large + .nf-desc + a[href=\"/home\"]","id":"kakalot","meta":{"home":"home","releases":"home","titleBase":"","readerBase":"read/{titleSlug}/{lang}","searchBase":"search?keyword=","defaultLang":"en","titleIdType":"id","trailing":false},"releases":{"title":{"sel":"#latest-chap .inner > .item","id":".item-info h3|attr:data-id","name":".item-info h3 a|text","url":"a|attr:href","chapter":{"sel":".chapter-list > .cl-item","label":"a.chapter-name|text","url":"a|attr:href","at":".time|text"}}},"title":{"lazy":true,"sel":"#chapt-list .cl-header","id":"#main|attr:data-id","name":".detail-box h3.manga-name|text","img":".detail-box .manga-poster-img|attr-contain:src","tags":".detail-box .line-content a[href*=\"/genre/\"]|text","langs":"#chap-lang .lang-item|attr:data-code","chapter":{"sel":"#chapt-list .reading-list > .item","label":"a.chapter-name|text","url":"a.chapter-name|attr:href","at":".item-time|text"}},"reader":{"content":"#list-image","imgDivs":".card-wrap[data-url]","label":".breadcrumb-item.active|text","title":{"sel":".breadcrumb-item:nth-child(2) a","id":"#reading|attr:data-manga-id","name":"|text","url":"|attr:href"},"chapter":{"sel":".kbreadcrumb + .reading-option option.reading-item","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":".manga-list > .inner > .item","name":".manga-name a|attr:title","url":".manga-name a|attr:href","img":".manga-poster img|attr-contain:src","chapter":{"sel":".latest-chapter .chapter-name","label":"|text","url":"|attr:href"}}}},{"id":"tapas","meta":{"releases":null,"titleBase":"series/{slug}/info","readerBase":"episode","searchBase":"search?q=","defaultLang":"en","titleIdType":"id","chapters":"about:blank","trailing":false},"title":{"id":".button--subscribe|attr:data-tiara-event-meta-series-id","name":".info .title|text","img":".thumb img|attr:src","first":".episode-list__item a|attr:href","chapter":{"sel":".episode-list .episode-list__item > a","url":"|attr:data-id","label":"|attr:data-scene-number"}},"reader":{"content":".viewer__body","id":"div[id^=\"episode-\"][data-ep-id]|attr:data-ep-id","label":"div[id^=\"episode-\"][data-ep-scene]|attr:data-ep-scene","prev":"div[data-prev-id]:not([data-prev-id=\"-1\"])|attr:data-prev-id","next":"div[data-next-id]:not([data-next-id=\"-1\"])|attr:data-next-id","title":{"sel":"body","id":".subscribe-btn|attr:data-id","url":".subscribe-btn|attr:data-id","name":".series-info .title|text","img":".series-info .thumb img|attr:src"},"chapter":{"sel":".episode-list .list-body > li[data-id]","url":"|attr:data-id","label":".info__label|text"}},"search":{"title":{"sel":".search-item-wrap","url":"a|attr:href","name":"img|attr:alt|remove:#\\.*\\?#","img":"img|attr-contain:src"}}},{"id":"mangafire","meta":{"home":"home","releases":"updated","titleBase":"manga","readerBase":"read/{titleSlug}/{lang}","searchBase":"filter?keyword=","defaultLang":"en","titleIdType":"id"},"releases":{"title":{"sel":".unit > .inner","id":"a[data-tip]|attr:data-tip|remove:\\?.+","name":".info a|text","url":"a|attr:href","chapter":{"sel":"ul.content li a","label":"span:first-child|text","url":"|attr:href","at":"span:last-child"}}},"title":{"id":".bookmark[data-id]|attr:data-id","name":".info h1[itemprop=\"name\"]|text","img":".poster img|attr-contain:src","tags":"#info-rating a[href*=\"/genre/\"]|text","langs":".tab-content[data-name=\"chapter\"] a.dropdown-item[data-code]|attr:data-code","chapter":{"sel":".tab-content[data-name=\"chapter\"] li.item[data-number]","url":"a|attr:href","label":"|attr:data-number","at":"a span:last-child|text"}},"reader":{"content":"#page-wrapper","imgDivs":".page","lstrip":".setting-tab.page-layout [data-value=\"longstrip\"].active","lstripBtn":".setting-tab.page-layout [data-value=\"longstrip\"]","label":"#number-panel ul li a[href*=\"/read/\"][data-number].active|attr:data-number","title":{"sel":"#ctrl-menu .head a","id":"body|attr:data-id","url":"|attr:href","name":"|text"},"chapter":{"sel":"#number-panel ul li a[href*=\"/read/\"][data-number]","label":"|attr:data-number","url":"|attr:href"}},"search":{"title":{"sel":".unit","id":"a[data-tip]|attr:data-tip|remove:\\?.+","url":"a|attr:href","name":".info a|text","img":"a img|attr-contain:src","chapter":{"sel":".unit .content[data-name=\"chap\"] a","url":"|attr:href","label":"span|text","at":"span:last-child"}}}},{"id":"mangapark","meta":{"releases":"latest","titleBase":"title","readerBase":"title/{titleSlug}","searchBase":"search?word=","defaultLang":"en","titleIdType":"slug","trailing":false},"releases":{"title":{"sel":"div:has(> h3 a[href*=\"/title/\"])","name":"a span|text","url":"a|attr:href","chapter":{"sel":"h3 ~ div:has(a)","url":"a|attr:href","label":"a span|text","at":"time|attr:data-time"}}},"title":{"name":"h3 a|text","img":"main img|attr-contain:src","tags":"b ~ span span:first-child|text","chapter":{"sel":"[data-name=\"chapter-list\"] div:has(> div > a[href*=\"/title/\"])","url":"a|attr:href","label":"a|text","at":"time span|text"}},"reader":{"label":"h6 a span|text","title":{"sel":"h3 a","url":"|attr:href","name":"|text"},"content":"main","imgDivs":"[data-name=\"image-item\"]","lstrip":"option[q\\:key=\"a\"]:checked","lstripBtn":"option[q\\:key=\"a\"]","prev":"a:has(> i[name=\"angle-left\"])|attr:href","next":"a:has(> i[name=\"angle-right\"])|attr:href","chapter":{"sel":".comic-detail + div select option[value*=\"/title/\"]","url":"|value","label":"|text"}},"search":{"title":{"sel":"div:has(> div > h3 a)","url":"a|attr:href","name":"h3 a|text","img":"a img|attr-contain:src","chapter":{"sel":"div:has(> span > span > time)","url":"a|attr:href","label":"a span|text","at":"time|attr:data-time"}}}},{"id":"webtoon","meta":{"releases":null,"titleBase":"","readerBase":"","searchBase":"search?keyword=","defaultLang":"en","chapters":"meta.reader","titleIdType":"id","trailing":false},"title":{"name":"h1.subj,.detail_info > p.subj,.info > h3.subj,.subject|text","img":"meta[property=\"og:image\"]|attr:content","tags":".info > h2.genre,.detail_info > p.genre,.info > p.genre,.tag_box .tag|text","first":"a#_btnEpisode,a._readEpisodeBtn|attr:href","chapter":{"sel":"li._episodeItem","label":"|attr:data-episode-no","url":"a|attr:href","at":".date|text"}}},{"id":"mangareader","meta":{"home":"home","releases":"home","titleBase":"","readerBase":"read/{titleSlug}/{lang}","searchBase":"search?keyword=","defaultLang":"en","titleIdType":"id","trailing":false},"releases":{"title":{"sel":"#latest-chap .mls-wrap > .item","id":"a|attr:href|remove:.+-","url":"a|attr:href","name":".manga-name a|text","chapter":{"sel":".fd-list .chapter a","label":"|text","url":"|attr:href"}}},"title":{"id":"[data-manga-id]|attr:data-manga-id","name":"#ani_detail h2.manga-name|text","img":"#ani_detail img.manga-poster-img|attr:src","type":".anisc-info .item-head|row:type","tags":".anisc-detail .genres a|text","langs":"a.c-select-lang|attr:data-code","chapter":{"sel":".chapters-list-ul > ul > li","label":"|attr:data-number","url":"a|attr:href"}},"reader":{"content":"#main-wrapper","imgDivs":".iv-card[data-url]","lstrip":"a.active[data-value=\"vertical\"]","lstripBtn":"#main-wrapper:not(.page-read-hoz)","label":".reading-list .chapter-item.active|attr:data-number","title":{"id":"[data-manga-id]|attr:data-manga-id","sel":"#header a.hr-manga","name":"h2,.manga-name|text","url":"|attr:href"},"chapter":{"sel":".reading-list.active > .chapter-item","url":"a|attr:href","label":"|attr:data-number"}}},{"404":"#notfound .notfound-404","id":"mgeko","meta":{"releases":"jumbo/manga","titleBase":"manga","readerBase":"reader","searchBase":"search/?search=","defaultLang":"en","titleIdType":"slug","chapters":"meta.reader"},"releases":{"title":{"sel":"#latest-updates .novel-list.chapters > li > a","url":"|attr:href","name":"|attr:title","chapter":{"sel":"div:has(.chapter-title)","label":".chapter-title|text","at":".novel-stats span:first-child|text"}}},"title":{"name":".cover img|attr:alt","img":".cover img|[attr:data-src,attr-contain:src]","tags":".categories .property-item|text","first":"a#readchapterbtn|attr:href","chapter":{"sel":".chapter-list > li a","url":"|attr:href","label":".chapter-title,.chapter-number|text","at":"time|attr:datetime || .chapter-stats|text"}},"reader":{"imgs":"center:has(> #chapter-reader) img|attr-contain:src","label":".chapter-header .titles h2|text","next":"center .nextchap:not(.isDisabled)|attr:href","prev":"center .prevchap:not(.isDisabled)|attr:href","title":{"sel":".chapter-header .titles h1 a","name":"|text","url":"|attr:href"},"chapter":{"sel":"center center #cars option","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":".novel-item","url":"a|attr:href","name":"h4|text","img":"img|[attr:data-src,attr-contain:src]","chapter":{"sel":".novel-stats","label":"strong|text"}}}},{"404":"#main > .error-404","id":"mangack","meta":{"home":"home","releases":"updates","titleBase":"manga","readerBase":"chapter","searchBase":"?s=","defaultLang":"en","titleIdType":"slug","trailing":true},"releases":{"title":{"sel":".latestmanga .Latest_chapter_update","url":"a|attr:href","name":".latest-title a|text","chapter":{"sel":"tr:last-child center","label":"a|text","url":"a|attr:href","at":".chapter-date|text"}}},"title":{"id":"input[name=\"follow_manga\"]|attr:value","name":"h1.entry-title|text","img":".manga-cover-wrap img|attr:src","tags":".infobox a[href*=\"/genres/\"]|text","type":".infobox a[href*=\"/comic-type/\"]|text","chapter":{"sel":".chapterslist > li","url":"a|attr:href","label":"a|text","at":".entry-date|text"}},"reader":{"content":".entry-content","label":".entry-title|text","title":{"sel":".latest-title a","name":"|text","url":"|attr:href"},"prev":".prev-post a|attr:href","next":".next-post a|attr:href"},"search":{"title":{"sel":".Latest_chapter_update","url":"a|attr:href","img":"img|attr-contain:src","name":"h4 a|text"}}},{"id":"katana","meta":{"releases":"latest","titleBase":"manga","readerBase":"manga/{titleSlug}","searchBase":"?search_by=book_name&search=","defaultLang":"en","titleIdType":"id","trailing":false},"releases":{"title":{"sel":"#book_list > .item","id":"|attr:data-id","url":"a|attr:href","name":"a|text","chapter":{"sel":".chapter a","url":"|attr:href","label":"|text"}}},"title":{"id":".bookmark_bt[data-id]|attr:data-id","name":".info h1|text","img":".cover img|attr:src","tags":".info .genres a|text","chapter":{"sel":".chapters tbody > tr","url":"a|attr:href","label":"a|text","at":".update_time|text"}},"reader":{"content":"#imgs","imgs":".wrap_img > img|attr:data-src","label":"select[name=\"chapter_select\"] option:checked|text","prev":".nav_button.prev:not([disabled])|attr:href","next":".nav_button.next:not([disabled])|attr:href","title":{"sel":"#breadcrumb_wrap li:nth-child(2) a","id":".bookmark_chapter_bt[data-id]|attr:data-id","name":"span|text","url":"|attr:href"},"chapter":{"sel":".nav_chapters_wrap:first-child select[name=\"chapter_select\"] option","url":"|attr:value","label":"|text"}},"search":{"title":{"sel":"#book_list .item","url":"a|attr:href","img":"img|attr-contain:src","name":"h3 a|text","chapter":{"sel":"div:has(> div > .chapter)","url":"a|attr:href","label":"a|text","at":".update_time|text"}}}},{"id":"truyenqq","meta":{"releases":"","titleBase":"truyen-tranh","readerBase":"truyen-tranh","searchBase":"tim-kiem.html?q=","defaultLang":"vi","trailing":false,"titleIdType":"id"},"releases":{"title":{"sel":"#list_new > li","name":".book_name h3 a|text","url":".book_name h3 a|attr:href","id":".book_name h3 a|attr:href|remove:.+-","chapter":{"sel":".last_chapter a","label":"|text","url":"|attr:href"}}},"title":{"id":".btn-subscribe|attr:data-id","name":".book_info h1|text","img":".book_avatar img|attr-contain:src","tags":".book_info li a[href*=\"/the-loai/\"]|text","chapter":{"sel":".works-chapter-list .works-chapter-item","label":".name-chap a|text","url":".name-chap a|attr:href","at":".time-chap|text"}},"reader":{"content":".chapter_content","label":"ol.breadcrumb > li:last-of-type a span|text","prev":".chapter-control a.prev[href]:first-of-type:not(.d-none)|attr:href","next":".chapter-control a.prev[href]:last-of-type:not(.d-none), .chapter-control a.next[href]:not(.d-none)|attr:href","title":{"sel":"ol.breadcrumb > li:nth-of-type(2) a","id":".btn-subscribe|attr:data-id","name":"span|text","url":"|attr:href"},"chapter":{"trigger":".chapter_list","sel":"#popup_content .chapter-list > a, .chapter_list > option","label":"|text","url":"|attr:href || |attr:value"}},"search":{"title":{"sel":".list_grid > li","name":"h3 a|text","url":"h3 a|attr:href","img":"img|attr-contain:src","chapter":{"sel":".last_chapter a","url":"|attr:href","label":"|text"}}}},{"id":"uzay","meta":{"releases":"","titleBase":"manga/{id}","readerBase":"manga/{titleId}/{titleSlug}","searchBase":"search?search=","defaultLang":"tr","titleIdType":"slug","trailing":false},"releases":{"title":{"sel":"section[aria-label=\"new series\"] ~ section .header + div > div","url":"a|attr:href","name":"h2|text","chapter":{"sel":"a.mobile-list-item","url":"|attr:href","label":"h3 span:first-child b|text","at":"h3 span:nth-child(2)|text"}}},"title":{"name":".content-details > h1|text","img":".content-info > img|attr:src","tags":".content-details a[href*=\"?categories=\"]|text","chapter":{"sel":".list-episode > a","url":"|attr:href","label":"h3 b|text","at":"span:last-child|text"}},"reader":{"content":".manga-episode-card","label":".header h1 + h2|text","prev":"[aria-label=\"episode-navbar\"] div:not(last-child) > a[href]|attr:href","next":"[aria-label=\"episode-navbar\"] div:last-child > a[href]|attr:href","title":{"sel":".header h1:has(> a) a","url":"|attr:href","name":"|text"}}},{"id":"mangaworld","meta":{"releases":"","titleBase":"manga/{id}","readerBase":"manga/{titleId}/{titleSlug}/read","searchBase":"archive?keyword=","defaultLang":"it","titleIdType":"id"},"releases":{"title":{"sel":".comics-grid > .entry","name":".manga-title|text","url":"a|attr:href","chapter":{"sel":"div:has(> .xanh)","label":"a|text","url":"a|attr:href","at":"i|text"}}},"title":{"name":"h1.name|text","img":".thumb img|attr:src","tags":".meta-data a[href*=\"?genre=\"]|text","type":".meta-data a[href*=\"?type=\"]|text","chapter":{"sel":".chapters-wrapper .chapter > a","url":"|attr:href","label":"span|text","at":"i|text"}},"reader":{"content":"#page","label":"h1|text","lstrip":"select.mode option[value=\"LIST\"]:checked","lstripBtn":"select.mode option[value=\"LIST\"]","title":{"sel":"a[href*=\"/manga/\"]","name":"|text|remove:Ritorna\\sa","url":"|attr:href"},"chapter":{"sel":"#controls-1 select.chapter option","label":"|text","url":"|value"}},"search":{"title":{"sel":".comics-grid .entry","url":"a|attr:href","img":"img|attr-contain:src","name":".manga-title|text"}}},{"id":"leercapitulo","meta":{"releases":"","titleBase":"manga/{id}","readerBase":"leer/{titleId}/{titleSlug}","defaultLang":"es","titleIdType":"id","trailing":true},"releases":{"title":{"sel":".media.mainpage-manga","url":"a|attr:href","name":"h4.manga-newest|text","chapter":{"sel":".hotup-list > span a","url":"|attr:href","label":"|text"}}},"title":{"name":"h1.title-manga|text","img":".cover-detail img|attr:src","tags":".description-update a[href*=\"/genre/\"]|text","chapter":{"sel":".chapter-list a.xanh","url":"|attr:href","label":"|text"}},"reader":{"content":".comic_wraCon","label":"h2.chapter-title:first-child|text","prev":"a.pre,a.LeftArrow|attr:href","next":"a.next,a.RightArrow|attr:href","lstrip":"select.loadImgType option[value=\"1\"]:checked","lstripBtn":"select.loadImgType option[value=\"1\"]","title":{"sel":"h2.chapter-title:nth-of-type(2) a","url":"|attr:href","name":"|text"},"chapter":{"sel":"h1 + .row select[rel=\"chap-select\"] option","url":"|attr:value","label":"|text"}}},{"id":"mangaplus","meta":{"home":"updates","releases":"updates","titleBase":"titles","readerBase":"viewer","defaultLang":"en","titleIdType":"slug","trailing":false,"noTags":true},"releases":{"title":{"sel":"[class*=\"UpdatedTitle-module_titleWrapper_\"]","url":"a|attr:href","name":"[class*=\"UpdatedTitle-module_titleName_\"]|text","chapter":{"sel":"[class*=\"UpdatedTitle-module_chapterTitle_\"]","label":"|text"}}},"title":{"lazy":true,"sel":"h1[class*=\"TitleDetailHeader-module_title_\"]","name":"h1[class*=\"TitleDetailHeader-module_title_\"]|text","img":"img[class*=\"TitleDetailHeader-module_coverImage_\"]|attr:src","chapter":{"sel":"[class*=\"ChapterListItem-module_chapterListItem_\"]","url":"a[class*=\"ChapterListItem-module_commentContainer_\"]|attr:href","label":"[class*=\"ChapterListItem-module_name_\"]|text","at":"[class*=\"ChapterListItem-module_date_\"]|text"}},"reader":{"content":"[class*=\"Viewer-module_viewerContainer_\"]","label":"[class*=\"Navigation-module_chapterTitle_\"]|text","lstrip":"input#mode-vertical:checked","lstripBtn":"input#mode-vertical","title":{"sel":"a:has(> [class*=\"Navigation-module_title_\"])","url":"|attr:href","name":"h1|text"},"chapter":{"sel":"ul > li[class*=\"SideMenu-module_chapter_\"]","label":"|text"}},"search":{"lazy":true,"empty":"p[class*=\"nothingMatched\"]","title":{"sel":"a[class^=\"AllTitle\"]","url":"|attr:href","name":"p|text","img":"img|[attr:data-src,attr-contain:src]"}}},{"id":"flame","meta":{"releases":"","titleBase":"series","readerBase":"series/{titleSlug}","searchBase":"browse?search=","defaultLang":"en","titleIdType":"name","trailing":false},"releases":{"title":{"sel":"[class*=\"SeriesCard_chapterCardContainer__\"]","url":"a|attr:href","name":".mantine-Stack-root a|text","chapter":{"sel":"a:has(> [class*=\"SeriesCard_chapterPillWrapper__\"])","url":"|attr:href","label":"p:first-child|text","at":"p:not(:first-child)|text"}}},"title":{"name":"h1|text","img":"img[alt=\"Cover\"]|attr:src","tags":"a[href*=\"/genre/\"] span|text","type":"p[class*=\"SeriesPage_infoField__\"]|row:type","first":".mantine-Paper-root p + a[href*=\"/series/\"]|attr:href","chapter":{"sel":"a[class*=\"ChapterCard_chapterWrapper__\"]","url":"|attr:href","label":"p:first-child|text","at":"p:not(:first-child)|text"}},"reader":{"content":"body","label":"p[class*=\"TopChapterNavbar_chapter_title__\"]|text","prevBtn":"button:has(.bi-arrow-left)","nextBtn":"button:has(.bi-arrow-right)","title":{"sel":"[class*=\"TopChapterNavbar_inner__\"]","name":"[class*=\"TopChapterNavbar_series_title__\"]|text","url":"a|attr:href"},"chapter":{"trigger":"button:has(.bi-card-list)","dismiss":".mantine-Modal-overlay, .mantine-CloseButton-root","sel":"[class*=\"ChapterCard_chapterWrapper__\"]","url":"|attr:href","label":"p:first-child|text","at":"p:not(:first-child)|text"}}},{"id":"vortex","meta":{"home":"home","releases":null,"titleBase":"series","readerBase":"series/{titleSlug}","searchBase":"series?searchTerm=","defaultLang":"en","trailing":false,"titleIdType":"name"},"title":{"name":"h1[itemprop=\"name\"]|text","img":"[itemprop=\"image\"] img|attr:src","type":"h1:has(> svg)|row:type","first":"a[href*=\"/series/\"][href*=\"/chapter\"]|attr:href","hasMore":"a[href*=\"/series/\"][href*=\"/chapter\"]"},"reader":{"content":"section:has(.image-container),main,body","label":"a[href*=\"/series\"]:has(img) div:has(~ time)|text","prev":"a:has(button[aria-label=\"Prev\"])|attr:href","next":"a:has(button[aria-label=\"Next\"])|attr:href","prevBtn":"button:has(.lucide-chevron-left)","nextBtn":"button:has(.lucide-chevron-right)","title":{"sel":"a[href*=\"/series\"]:has(img)","name":"div:has(~ time)|text|remove:\\sChapter.+","url":"|attr:href"},"chapter":{"trigger":"button:has(.lucide-chevron-down)","sel":"[data-radix-popper-content-wrapper] [role=\"option\"] span[id]","label":"|text"}},"chapters":{"chapter":{"trigger":"button[data-key=\"chapters\"]","sel":"[role=\"tabpanel\"] a[href*=\"/series/\"]","url":"|attr:href","label":"h3|text","at":"span:last-child:first-child|text"}},"search":{"lazy":true,"loading":"button > .animate-spin","title":{"sel":"div:has(> div > a[href*=\"/series/\"])","url":"a|attr:href","name":"a h1|text","img":"a img|attr-contain:src","chapter":{"sel":"a:has(time)","url":"|attr:href","label":"p|text","at":"time|attr:datetime"}}}},{"id":"weebcentral","meta":{"releases":"","titleBase":"series/{id}","readerBase":"chapters","searchBase":"search?text=","chapters":"about:blank","defaultLang":"en","titleIdType":"id","trailing":false},"releases":{"title":{"sel":"[x-data*=\"sub_feed_shown\"] section article","url":"a:first-child|attr:href","name":"div:not(:has(span)) div|text","chapter":{"sel":"a:not(:first-child)","url":"|attr:href","label":"div:not(:first-child) span|text","at":"time|attr:datetime"}}},"title":{"name":"h1|text","img":"picture img|attr:src","tags":"li a[href*=\"?included_tag=\"]|text","type":"li a[href*=\"?included_type=\"]|text","hasMore":"#chapter-list a","first":"[x-data]:has(> a[href*=\"chapters/\"]):last-child a|attr:href"},"reader":{"content":"[hx-include*=\"reading_style\"]","label":"[hx-target=\"#chapter-select-body\"] span|text","lstripBtn":"input[value=\"long_strip\"]","lstrip":"input[value=\"long_strip\"]:checked","prevBtn":"button[\\@click=\"prevPage()\"]","nextBtn":"button[\\@click=\"nextPage()\"]","title":{"sel":"#nav-top a[href*=\"/series/\"]","url":"|attr:href","name":"span|text"},"chapter":{"trigger":"button[hx-target=\"#chapter-select-body\"]"}},"chapters":{"chapter":{"sel":"a[href*=\"/chapters/\"]","url":"|attr:href","label":"span span|text","at":"time|attr:datetime"}},"search":{"lazy":true,"empty":"main [role=\"alert\"]","title":{"sel":"article:has(a img)","url":"a|attr:href","name":"a:not(:has(img))|text","img":"a img|attr-contain:src"}}},{"id":"lua","meta":{"releases":"","titleBase":"series","readerBase":"series/{titleSlug}","chapters":"about:blank","titleIdType":"slug","trailing":false,"defaultLang":"en","noTags":true},"releases":{"title":{"sel":"div:has(> div > a[href*=\"/series/\"]):has(a > h5)","url":"a|attr:href","name":"h5|text","chapter":{"sel":"a + div a","url":"|attr:href","label":"span:first-child|text","at":"span:not(:first-child)|text"}}},"title":{"name":"h1|text","img":"main div > img[src]|attr-contain:src","hasMore":"[aria-current=\"page\"]","chapter":{"sel":"a[href*=\"/series/\"]:has(> li)","url":"|attr:href","label":"div > span:first-child|text","at":"div > span:not(:first-child)|text"}},"reader":{"label":"h1|text","prev":"a[href*=\"/series/\"]:has(> button [data-icon=\"chevron-left\"])|attr:href","next":"a[href*=\"/series/\"]:has(> button [data-icon=\"chevron-right\"])|attr:href","content":"nav:first-child ~ .container:has(img)","title":{"sel":"nav:has(h1)","name":"h2|text","url":"a[href*=\"/series/\"]:has(svg[data-icon=\"house\"])|attr:href","img":"img|attr:src"},"chapter":{"trigger":"button:has(> [data-icon=\"list\"])","sel":"#headlessui-portal-root ul a[href*=\"/series/\"]:has(> li)","url":"|attr:href","label":"span:first-child|text","at":"span:not(first-child)|text"}}},{"id":"qi","releases":{"title":{"sel":"div:has(> div > div > a[href*=\"/series/\"] > p):has(img)","url":"a|attr:href","name":"p|text","chapter":{"sel":" a + div > div:last-child > a","url":"|attr:href","label":"span:first-child|text","at":"span:not(:first-child)|text"}}},"title":{"name":"h2|text","tags":"a[href*=\"/series?tag=\"] span|text","hasMore":"[aria-current=\"page\"]","first":"a[href*=\"/series/\"]:has(> button)|attr:href","chapter":{"sel":"li > a[href*=\"/series/\"]","url":"|attr:href","label":"div > span:first-child|text","at":"div > span:not(:first-child)|text"}},"reader":{"label":"h1|text","prev":"a[href*=\"/series/\"]:has(> button [data-icon=\"chevron-left\"])|attr:href","next":"a[href*=\"/series/\"]:has(> button [data-icon=\"chevron-right\"])|attr:href","content":"nav:first-child ~ .container:has(img)","title":{"sel":"nav:has(h1)","name":"h2|text","url":"a[href*=\"/series/\"]:has(svg[data-icon=\"house\"])|attr:href","img":"img|attr:src"},"chapter":{"trigger":"button:has(> [data-icon=\"list\"])","sel":"#headlessui-portal-root ul a[href*=\"/series/\"]:has(> li)","url":"|attr:href","label":"span:first-child|text","at":"span:not(first-child)|text"}}},{"id":"mangabuddy","meta":{"home":"home","releases":"home","titleBase":"","readerBase":"{titleSlug}","searchBase":"search?q=","titleIdType":"slug","defaultLang":"en","trailing":false},"releases":{"title":{"sel":".main-container .book-item .meta","name":"h3 a|text","url":"h3 a|attr:href","chapter":{"sel":".chap-item","label":"h4 a|text","url":"h4 a|attr:href","at":".updated-date span|text"}}},"title":{"sel":"#chapter-list","name":"h1|text","img":".img-cover img|attr-contain:src","tags":".detail a[href*=\"/genres/\"]|text","chapter":{"sel":"#chapter-list > li > a","url":"|attr:href","label":".chapter-title|text","at":".chapter-update|text"}},"reader":{"label":"#breadcrumbs-container .breadcrumbs-item:last-child|text","title":{"sel":"#breadcrumbs-container .breadcrumbs-item:nth-child(2) a","url":"|attr:href","name":"span|text"},"content":"#chapter-images","imgDivs":".chapter-image","prev":"a#btn-prev|attr:href","next":"a#btn-next|attr:href","chapter":{"trigger":"#load-chapters","sel":".chapter-select option","url":"|attr:value","label":"|text"}}},{"id":"rolia","meta":{"releases":"updated-mangas","titleBase":"manga","readerBase":"manga/{titleSlug}","chapters":"manga/{titleSlug}/chapterlist","searchBase":"?s=","titleIdType":"name","defaultLang":"en","trailing":true},"releases":{"title":{"sel":".article-feed > div > div:has(> h6)","name":"h6 a|text","url":"h6 a|attr:href","chapter":{"sel":"table tr","label":"a|text","url":"a|attr:href","at":"time|attr:data-date"}}},"title":{"name":"h1|text","img":"img.poster|attr-contain:src","tags":"a[href*=\"/genres/\"]|text","type":".card-movies-series table tr:last-child td|text","first":".chapter-list + a|attr:href","hasMore":".chapter-list ~ a[href*=\"/chapterlist\"]"},"chapters":{"chapter":{"sel":"#page-content-wrapper td:first-child a","url":"|attr:url","label":"|text"}},"reader":{"content":".manga-child-content","label":".childtitle|text","next":".chapter-nav-right|attr:href","prev":".chapter-nav-left|attr:href","title":{"sel":".breadcrumb strong a","name":"|text","url":"|attr:href"},"chapter":{"sel":"#postDropdown option:not(:first-child)","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":".card-body","url":"a|attr:href","img":"img|attr-contain:src","name":"h4 a|text"}}},{"id":"lelscanfr","meta":{"releases":"","titleBase":"manga","readerBase":"manga/{titleSlug}","searchBase":"manga?title=","chapters":"meta.reader","titleIdType":"slug","defaultLang":"fr","trailing":false},"releases":{"title":{"sel":"div:has(> #card-real)","url":"a|attr:href","name":"h2|text","chapter":{"sel":"#card-real + div div:has(a)","label":"b|text","url":"a|attr:href","at":"a + span|text"}}},"title":{"name":"main h2|text","img":"main img[alt]|attr-contain:src","tags":"main a[href*=\"genre=\"]|text","type":"a[href*=\"type=\"]|text","hasMore":"ul.pagination","chapter":{"sel":"#chapters-list > a","url":"|attr:href","label":"div:first-child > span|text","at":"div:nth-child(2) > span"}},"reader":{"label":"h2|text","title":{"sel":"h3 a","url":"|attr:href","name":"|text"},"content":"#chapter-container, main","lstrip":"#reading-types option[value=\"long\"]:checked","lstripBtn":"#reading-types option[value=\"long\"]","prev":"div:has(#chapter-select) + div a:first-child[href*=\"/manga/\"]|attr:href","next":"div:has(#chapter-select) + div a:last-child[href*=\"/manga/\"]|attr:href","chapter":{"sel":"div:has(~ #chapter-container) #chapter-select option","label":"|text","url":"|text"}}},{"id":"phoenix","meta":{"releases":"","titleBase":"manga","readerBase":"manga/{titleSlug}","titleIdType":"name","defaultLang":"fr","trailing":false,"noTags":true},"releases":{"title":{"sel":".main__latest-releases-card","url":"a|attr:href","name":"h3 text","chapter":{"sel":"a.main__latest-releases-card-chapter","url":"|attr:href","label":".main__latest-releases-card-chapter-number|text","at":".main__latest-releases-card-chapter-date|text"}}},"title":{"name":"h1|text","img":"img.project__cover|attr-contain:src","chapter":{"sel":"a.project__chapter","url":"|attr:href","label":".project__chapter-title|text","at":".project__chapter-date|text"}},"reader":{"label":".chapter__nav-chapter-title-number|text","title":{"sel":"a.chapter__nav-chapter","url":"|attr:href","name":".chapter__nav-title|text"},"content":".chapter-images__container","prev":"a.chapter__previous|attr:href","next":"a.chapter__next|attr:href","chapter":{"trigger":".chapter-images__controls-chapter","sel":".chapter-list .chapter_item a","url":"|attr:href","label":"|text"}}},{"404":"#content > .wrapper > .notf img, body:empty","id":"nika","meta":{"releases":"","titleBase":"manga","readerBase":"","searchBase":"?s=","idBase":"?p=","titleIdType":"name","defaultLang":"en","trailing":true},"releases":{"title":{"sel":".listupd .utao .uta .luf","url":"a|attr:href","name":"h4|text","chapter":{"sel":"ul li a:has(.eggchap)","url":"|attr:href","label":".eggchap|text","at":".eggtime|text"}}},"title":{"id":".bookmark[data-id]|attr:data-id","name":"h1.entry-title|text","img":".thumb img|attr-contain:src","tags":".mgen a[rel=\"tag\"]|text","type":".imptdt a[href*=\"type=\"]|text","chapter":{"sel":".chapter-item a","url":"|attr:href","label":"div div:first-child|text","at":"div div:not(:first-child)|text"}},"reader":{"content":"#readerarea","id":".ctop option:checked|attr:data-id","label":"h1.entry-title|text","title":{"sel":".headpost .allc a","name":"|text","url":"|attr:href"},"prev":"a.ch-prev-btn:not(.disabled)|attr:href","next":"a.ch-next-btn:not(.disabled)|attr:href","chapter":{"sel":".ctop #chapter option:not([disabled]):not([value=\"\"])","id":"|attr:data-id","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":".listupd .bs .bsx a","url":"|attr:href","name":".bigor .tt|text","img":"img|attr-contain:src"}}},{"id":"manhwaz","meta":{"releases":null,"titleBase":"webtoon","readerBase":"webtoon/{titleSlug}","searchBase":"search?s=","titleIdType":"name","defaultLang":"en","trailing":false},"title":{"name":".post-title h1|text","img":".summary_image img[alt]|attr-contain:src","tags":".genres-content a[rel=\"tag\"]|text","chapter":{"sel":".wp-manga-chapter","label":"a|text","url":"a|attr:href","at":".chapter-release-date i|text"}},"reader":{"label":".breadcrumb .active|text","title":{"sel":".breadcrumb li:has(+ .active) a","url":"|attr:href","name":"|text"},"content":"#chapter_content, .reading-content","prev":".nav-previous a|attr:href","next":".nav-next a|attr:href","chapter":{"sel":"#manga-reading-nav-head .single-chapter-select option","url":"|attr:value","label":"|text"}},"search":{"title":{"sel":".page-item-detail","url":"a|attr:href","name":"h3 a|text","img":"img|attr-contain:src","chapter":{"sel":".chapter-item ","url":"a|attr:href","label":"a|text","at":".post-on|text"}}}},{"id":"dynasty","meta":{"releases":null,"titleBase":"series","readerBase":"chapters","searchBase":"search?q=","titleIdType":"slug","defaultLang":"en","trailing":false},"title":{"name":"h2.tag-title b|text","img":".cover img|attr-contain:src","tags":".tag-tags a.label|text","chapter":{"sel":".chapter-list dd:has(> a.name)","url":"a|attr:href","label":"a|text","at":"small|text"}},"reader":{"label":"h3#chapter-title b|text","title":{"sel":"h3#chapter-title a","url":"|attr:href","name":"|text"},"content":"#image","prev":"a#prev_link|attr:href","next":"a#next_link|attr:href"},"search":{"title":{"sel":".chapter-list a.name","url":"|attr:href","name":"|text"}}},{"id":"fmteam","meta":{"releases":"","titleBase":"comics","readerBase":"read/{titleSlug}/{lang}","titleIdType":"slug","defaultLang":"fr","trailing":false},"releases":{"title":{"sel":".item:has(h5 a)","name":"h5 a|text","url":"h5 a|attr:href","chapter":{"sel":"a[href*=\"/read/\"]","label":"|text","url":"|attr:href"}}},"title":{"lazy":true,"sel":"#comic","name":"#comic .card-header|text","img":"#comic .card-body .thumbnail-full img|attr-contain:src","type":"#comic .card-body div:has(> label)|row:format","tags":"#comic .card-body div:has(> label)|row:genres","chapter":{"sel":"div:has(> div > .chapter a[href*=\"/read/\"])","label":"a[href*=\"/read/\"]|text","url":"a[href*=\"/read/\"]|attr:href","at":"div:last-child[title]|attr:title"}},"reader":{"title":{"sel":"#reader-controls-title a","name":"|text","url":"|attr:href"},"label":"select[name=\"jump-chapter\"] option:checked|text","content":"#reader-images","imgDivs":"#reader-images [data-page]","lstrip":".active > [data-value=\"long-strip\"]","lstripBtn":"[data-value=\"long-strip\"]","prev":"#chapter-link-left[href*=\"/read\"]|attr:href","next":"#chapter-link-right[href*=\"/read\"]|attr:href","chapter":{"sel":"select[name=\"jump-chapter\"] option","label":"|text","url":"|attr:value"}}},{"id":"readallcomics","meta":{"releases":null,"titleBase":"category","readerBase":"","searchBase":"?s=&type=comic&story=","titleIdType":"name","defaultLang":"en","trailing":true},"title":{"name":"h1 b|text","img":".description-archive img|attr-contain:src","tags":"h1 ~ div p strong|text","chapter":{"sel":".list-story li a","url":"|attr:href","label":"|text"}},"reader":{"sel":"center > p:has(> img)","label":"h3 strong|text","title":{"sel":".pinbin-category a","name":"|text","url":"|attr:href"},"content":"center > p:has(> img)","imgs":"center > p > img|[attr:data-jh-lazy-img,attr-contain:src]","chapter":{"sel":"center:has(> p > img) ~ div center select option","label":"|text","url":"|attr:value"}}},{"id":"sad","meta":{"releases":"","titleBase":"series","readerBase":"reader","searchBase":"series?search=","titleIdType":"slug","defaultLang":"tr","trailing":false},"releases":{"title":{"sel":"#latest-chapters .chap","name":".chap-title h3|text","url":".chap-title a|attr:href","chapter":{"sel":".chap-info","url":"|attr:href","label":".chap-number|text","at":".chap-date|attr:datetime"}}},"title":{"name":".detail .title h2|text","img":".series-image img|attr-contain:src","type":".type span:last-child|text","chapter":{"sel":".chap-link","url":"a|attr:href","label":"a|text","at":".chap-link .detail > span:last-child"}},"reader":{"label":".chap-select option:checked|text","title":{"sel":"a.series-title","name":"|text","url":"|attr:href"},"lstrip":"#rdmod option#webtoon:checked","lstripBtn":"#rdmod option#webtoon","content":".reader-content .list-style","prev":"a[rel=\"prev\"]|attr:href","next":"a[rel=\"next\"]|attr:href","chapter":{"sel":".chap-select option","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":".series-list","url":"a|attr:href","name":"h2|text","img":"img|[attr:data-src,attr-contain:src]"}}},{"id":"philia","meta":{"releases":"recently-updated","titleBase":"series","readerBase":"series/{titleSlug}","searchBase":"?s=","titleIdType":"slug","defaultLang":"en","trailing":true},"releases":{"title":{"sel":"main .unit","name":"a.c-title|text","url":"a.c-title|attr:href","chapter":{"sel":"li a","url":"|attr:href","label":".ch-num|text","at":".ch-date|text"}}},"title":{"name":"h1.serie-title|text","img":"img.cover|attr-contain:src","type":".stat-label|row:type","chapter":{"sel":".chapter-group a","url":"|attr:href","label":"zebi|text","at":".time|text"}},"reader":{"label":".current-type-number|text","title":{"sel":"a.manga-title","url":"|attr:href","name":"|text"},"content":"#ch-images","chapter":{"sel":".chapter-list ul .item","url":"|attr:data-chapter","label":"a|text"}},"search":{"title":{"sel":".unit","url":"a|attr:href","name":".c-title|name","img":"img|attr-contain:src","chapter":{"sel":".content > li a","url":"|attr:href","label":".ch-num|text","at":"ch-date|text"}}}},{"id":"batcave","meta":{"releases":"","titleBase":"","readerBase":"reader/{titleId}","searchBase":"search/","titleIdType":"id","defaultLang":"en","trailing":false,"noTags":true},"releases":{"title":{"sel":"li.latest","name":"a.latest__title|text","url":"a.latest__title|attr:href","chapter":{"sel":".latest__chapter a","url":"|attr:href","label":"|text"}}},"title":{"name":"#dle-content h1|text","img":"#dle-content .img-wide img|attr-contain:src","id":"[data-ratig-layer-id]|attr:data-ratig-layer-id","chapter":{"sel":".cl__item","label":".cl__item-num|text","url":"a|attr:href","at":".cl__item-date|text"}},"reader":{"label":".chapter__selector-trigger__title|text","title":{"sel":"a.header__post-link","url":"|attr:href","name":".header__post-title|text"},"content":".reader-view","chapter":{"trigger":".chapter__selector-trigger","sel":".chapters__list a","url":"|attr:href","label":"|text"},"prev":".chapter__selector a:has(.fa-angle-left)[href*=\"/reader/\"]|attr:href","next":".chapter__selector a:has(.fa-angle-right)[href*=\"/reader/\"]|attr:href"}},{"id":"tcb","meta":{"releases":null,"titleBase":"mangas/{id}","readerBase":"chapters","titleIdType":"slug","defaultLang":"en","trailing":false,"noTags":true},"title":{"name":"h1|text","img":"main img|attr-contain:src","chapter":{"sel":"main a[href*=\"/chapters/\"]","url":"|attr:href","label":"div|text"}},"reader":{"label":"h1|text|remove:.+-","title":{"name":"h1|text|remove:-.+","url":"main a[href*=\"/mangas/\"]|attr:href"},"prev":"a[href*=\"/chapters/\"]:has(+ a[href*=\"/mangas/\"])|attr:href","next":"a[href*=\"/mangas/\"] + a[href*=\"/chapters/\"]|attr:href","content":"main"}},{"id":"bato3x","meta":{"home":"v3x","releases":null,"titleBase":"title","readerBase":"title/{titleSlug}","searchBase":"v3x-search?word=","titleIdType":"id","defaultLang":"en","trailing":false},"title":{"name":"h3 a[href*=\"/title/\"]|text","id":"h3 a[href*=\"/title/\"]|attr:href|pattern:.*\\/(\\d+)-.*","img":"main img|attr-contain:src","tags":"div:has(> h3) + div b ~ span|text","chapter":{"sel":"[name=\"chapter-list\"] astro-slot > div","url":"a|attr:href","label":"a|text","at":"time|attr:time"}},"reader":{"label":"h6 a span|text","title":{"sel":"h3 a","name":"|text","url":"|attr:href","id":"|attr:href|pattern:.*\\/(\\d+)-.*"},"lstrip":"select[data-name=\"page-load\"] option[value=\"2\"]:checked","lstripBtn":"select[data-name=\"page-load\"] option[value=\"2\"]","content":"[name=\"image-items\"]","chapter":{"sel":"[data-name=\"page-jump\"] option","url":"|attr:value","label":"|text"}}},{"id":"mangapill","releases":{"title":{"sel":"div:has(> a[href*=\"/chapters/\"]):has(div > a[href*=\"/manga/\"])","name":"a[href*=\"/manga/\"]|text","url":"a[href*=\"/manga/\"]|attr:href","chapter":{"sel":"div:has(> a[href*=\"/chapters/\"])","url":"a[href*=\"/chapters/\"]|attr:href","label":"a[href*=\"/chapters/\"]|text","at":"time-ago|attr:datetime"}}},"title":{"name":"h1|text","img":"header ~ div img|attr:data-src","tags":"a[href*=\"?genre=\"]|text","chapter":{"sel":"#chapters a[href*=\"/chapters/\"]","url":"|attr:href","label":"|text"}},"reader":{"label":"h1#top|text","title":{"sel":"#js-chapter-selector-modal div:has(> a[href*=\"/manga/\"])","name":"#chapter-selector-modal-title|text","url":"a|attr:href"},"content":"div:has(> chapter-page)","imgs":"chapter-page picture img|attr-contain:src","prev":"a[data-hotkey=\"ArrowLeft\"]|attr:href","next":"a[data-hotkey=\"ArrowRight\"]|attr:href","chapter":{"trigger":"button[data-micromodal-trigger=\"js-chapter-selector-modal\"]","dismiss":"#js-chapter-selector-modal button[data-micromodal-close]","sel":"#js-chapter-selector-modal a[href*=\"/chapters/\"]","url":"|attr:href","label":"|text"}},"search":{"title":{"sel":"div:has(> a img)","url":"a|attr:href","name":"a:not(:has(img)) div|text","img":"a img|[attr:data-src,attr-contain:src]"}}},{"id":"nhentai"},{"id":"mangataro","releases":{"title":{"sel":"#manga-grid > div:has(a + div a[href*=\"/read/\"])","name":"h3|text","url":"a|attr:href","chapter":{"sel":"h3 ~ div > a","url":"|attr:href","label":"span:first-child|text","at":"span:last-child|text"}}},"title":{"name":"h1|text","img":".manga-page-wrapper img|attr-contain:src","tags":".manga-page-wrapper a[href*=\"/tag/\"]|text","type":"h1 + p + div + div > span|text","chapter":{"sel":".chapter-list > a","url":"|attr:href","label":"span:first-child|text","at":"div + span:not(:first-child)|text"}},"reader":{"title":{"sel":"a[href*=\"/manga/\"]","url":"|attr:href","name":"span|text"},"label":"select#chapter-select option:checked|text","content":".reader","imgs":".comic-image-container img|[attr:data-src,attr-contain:src]","chapter":{"sel":"select#chapter-select option","url":"|attr:value","label":"|text"}},"search":{"title":{"sel":".list-manga-card a","url":"|attr:href","name":"h3|text","img":"img|attr-contain:src"}}},{"id":"demonic","releases":{"title":{"sel":".updates-element-info","name":"h2 a|text","url":"a|attr:href","chapter":{"sel":".chap-date","url":"a|attr:href","label":"a|text","at":"div:last-child a|text"}}},"title":{"name":"h1.big-fat-titles|text","img":"#manga-page img[alt]|attr-contain:src","chapter":{"sel":"#chapters-list li > a","url":"|attr:href","label":"|text","at":"span|text"}},"reader":{"title":{"sel":".chapter-info h1 a","url":"|attr:href","name":"|text"},"label":"h2|text","content":"body","imgs":"img.imgholder:not([data-tried]):not([src*=\"/free_ads\"])|attr-contain:src","chapter":{"sel":"h2 + .chapters-nav select option","label":"|text","url":"|attr:value"}}},{"id":"atsu","title":{"lazy":true,"sel":"h1","name":"h1|text","img":".poster|attr-contain:src","tags":"a[href*=\"/explore?tags=\"]|text","first":"h2 ~ div div:last-child > a[href*=\"/read/\"]|attr:href","trackers":{"anl":"a[href*=\"anilist.co\"]|attr:href|pattern:.*/(\\d+)$","mal":"a[href*=\"myanimelist.net\"]|attr:href|pattern:.*/(\\d+)$"},"hasMore":"h2 ~ div:has(a[href*=\"/read/\"]):has(> button)","chapter":{"sel":"h2 ~ div div:has(> a[href*=\"/read/\"]):has(~ button) > a, h2 ~ div:not(:has(> button)) a[href*=\"/read/\"]","url":"|attr:href","label":"span:first-child|text","at":"span:last-child|text"}},"search":{"lazy":true,"empty":"div > h1","title":{"sel":"a[href*=\"/manga/\"]","url":"|attr:href","name":"p|text","img":"img|attr-contain:src"}}},{"id":"mangahaven","title":{"name":"p:has(+ div a[href*=\"filter\"])|text","img":"main img[alt]|attr-contain:src","tags":"a[href*=\"genre=\"] div|text","type":"a[href*=\"status=\"] ~ div:last-child|text"},"reader":{"title":{"url":"#fucking-container a[href*=\"/manga/\"]|attr:href","name":"#fucking-container p|text"},"label":"button p:last-child|text|remove:/.+","content":"body"},"search":{"lazy":true,"loading":".animate-pulse","title":{"sel":"a[href*=\"/manga/\"]","url":"|attr:href","name":"p|text","chapter":{"sel":"div:has(> span)","label":"span:first-child|text","lang":"span:last-child|text"}}}},{"id":"kali","releases":{"title":{"sel":".latest-item .meta","name":"h3 a|text","url":"a|attr:href","chapter":{"sel":".chap-item","url":"a|attr:href","label":"a|text","at":".updated-date span|text"}}},"title":{"name":".name h1|text","img":".img-cover img|[attr:data-src,attr-contain:src]","tags":".meta a[href*=\"/genres/\"]|text","chapter":{"sel":"#chapter-list li > a","url":"|attr:href","label":".chapter-title|text","at":".chapter-update|text"}},"reader":{"lazy":true,"sel":".chapter-image[data-src]","title":{"sel":".breadcrumbs-item a[href*=\"/manga/\"]","url":"|attr:href","name":"span|text"},"label":".breadcrumbs-item:last-child span|text","imgs":".chapter-image|attr:data-src","prev":"#btn-prev|attr:href","next":"#btn-next|attr:href","chapter":{"trigger":"#load-chapters","sel":".chapter-select option","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":".book-detailed-item","img":"img|[attr:data-src,attr-contain:src]","name":"h3 a|text","url":"h3 a|attr:href","chapter":{"sel":".thumb","label":".latest-chapter|text"}}}},{"id":"mangafreak","releases":{"title":{"sel":".latest_item","url":"a|attr:href","name":"a.name|text","chapter":{"sel":".chapter_box a","url":"|attr:href","label":"|text"}}},"title":{"name":"h1|text","img":".manga_series_image img|attr-contain:src","tags":".series_sub_genre_list > a|text","chapter":{"sel":".manga_series_list tbody tr","url":"a|attr:href","label":"a|text","at":"td:last-child|text"}},"reader":{"title":{"sel":"h1.title a","url":"|attr:href","name":"|text"},"label":"h1|text","imgs":".read_image img|attr-contain:src","chapter":{"sel":".chapter_list select option","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":".manga_search_item","name":"h3 a|text","url":"a|attr:href","img":"img|attr-contain:src"}}},{"id":"readcomiconline","title":{"name":".barContent .bigChar|text","img":"#rightside img, .main img|attr-contain:src","chapter":{"sel":".listing tbody tr:has(a)","label":"a|text","url":"a|attr:href","at":"td:last-child|text"}},"reader":{"title":{"sel":"#navsubbar a","url":"|attr:href","name":"|text|pattern:Comic (.+) information"},"label":".selectEpisode option:checked|text","lstrip":"#selectReadType option[value=\"1\"]:checked","lstripBtn":"#selectReadType option[value=\"1\"]","content":"#divImage","chapter":{"sel":".selectEpisode option","url":"|attr:value","label":"|text"}}},{"id":"valir","releases":{"title":{"sel":".latest-poster","name":"a h3|text","url":"a|attr:href","chapter":{"sel":"a[href*=\"/chapter/\"]","url":"|attr:href","label":"span div|text","at":"span:last-child|text"}}},"title":{"name":"h1|text","img":".bg-\\[image\\:--photoURL\\]|bg-image","chapter":{"sel":"#chapters > a","url":"|attr:href","label":"span span|text","at":"span + div div|text"}},"reader":{"title":{"sel":"#chapter_header a[href*=\"/series/\"]","url":"|attr:href","name":"|text"},"label":"#chapter_header span:has(a[href*=\"/series/\"])|text","content":"#pages","chapter":{"sel":"#chapters > a","url":"|attr:href","label":"span span|text","at":"span + div div|text"}},"search":{"lazy":true,"delay":500,"empty":"#no_results_page","title":{"sel":"#searched_series_page > button:not(.hidden)","name":"a h3|text","url":"a|attr:href","img":"div[style*=\"background-image\"]|bg-image"}}},{"id":"rawkuma","releases":{"title":{"sel":"#search-results > div","url":"a|attr:href","name":"h1|text","chapter":{"sel":"div > a:has(time)","url":"|attr:href","label":"p|text","at":"time|attr:datetime"}}},"title":{"name":"h1[itemprop=\"name\"]|text","img":"[itemprop=\"image\"] img|attr-contain:src","tags":"a[href*=\"/genre/\"] span|text","type":"h4|row:type","first":"button a[href*=\"/manga/\"]|attr:href"},"reader":{"title":{"name":"a[href*=\"/manga/\"] img[alt]|attr:alt","url":"a[href*=\"/manga/\"]|text"},"label":"div:has(> time) div|text","imgs":"section[data-image-data] > img|attr-contain:src","prev":"a[href*=\"/manga/\"]:has([data-lucide=\"chevron-left\"])|attr:href","next":"a[href*=\"/manga/\"]:has([data-lucide=\"chevron-right\"])|attr:href","chapter":{"trigger":"button[pop-content=\"#chapter-lists-head\"]","sel":"#chapter-lists-head li > a","url":"|attr:href","label":"|text"}}}]
1
+ [{"404":"img[src*=\"/images/error-message\"]","id":"asura","meta":{"releases":"","titleBase":"series","readerBase":"series/{titleSlug}/chapter","searchBase":"series?page=1&name=","titleIdType":"name","defaultLang":"en","trailing":false},"releases":{"title":{"sel":"div:has(> a[href=\"/series\"]) + div > div > div > div:nth-child(2)","name":"span a|text","url":"span a|attr:href","chapter":{"sel":"div:has(> p):has(a)","url":"a[href*=\"/chapter/\"]|attr:href","label":"a[href*=\"/chapter/\"] p|text","at":"div + p|text"}}},"title":{"name":"div:has(> div > a[href*=\"/sharer/\"]) span|text","img":"img[alt=\"poster\"]|attr-contain:src","type":"div:has(> img[alt=\"poster\"]) h3:first-child|row:type","tags":"div:has(> h3:first-child):has(> div:last-child:nth-child(2)) button|text","chapter":{"sel":"a[href*=\"/chapter/\"]:has(> h3)","url":"|attr:href","label":"h3|text","at":"h3:last-child|text"}},"reader":{"lazy":true,"sel":"img[src*=\"/EndDesign\"]","label":"a:last-of-type > h3|text","imgDivs":"div:has(> img[alt*=\"chapter\"])","content":"div:has(> img[src*=\"/EndDesign\"]):has(> div > img), body","imgs":"div:has(> img[alt*=\"chapter\"]) img|attr-contain:src","prev":"a[href*=\"/chapter/\"]:has(svg.lucide-chevron-left)|attr:href","next":"a[href*=\"/chapter/\"]:has(svg.lucide-chevron-right)|attr:href","title":{"sel":"a[href*=\"series/\"]:not([href$=\"series/\"]):not([href*=\"/chapter/\"])","name":"span|text","url":"|attr:href"},"chapter":{"trigger":"button:has(> h2)","sel":".dropdown-content > a","label":"h2|text","url":"|attr:href"}},"search":{"title":{"sel":"a[href*=\"series/\"]:not([href$=\"series/\"]):has(div span:first-child)","url":"|attr:href","name":"div:has(> span:first-child):has(> span:nth-child(3):last-child) span:first-child|text"}}},{"404":"#content > .wrapper > .notf img, body:empty","id":"mangastream","generic":true,"name":"meta[itemprop=\"name\"]|attr:content","meta":{"releases":"","titleBase":"series","readerBase":"","searchBase":"?s=","idBase":"?p=","titleIdType":"id","defaultLang":"en","trailing":true},"releases":{"title":{"sel":".listupd .utao .uta, .bixbox .bs.styletere","id":"a.series[rel]|attr:rel","name":"h4, .info .tt, .tt a, .series > h3|text","url":"a|attr:href","chapter":{"sel":".luf ul li, .chapter-list > a, .chfiv > li","label":"a .fivchap, a, .epxs|text","url":"a|attr:href || |attr:href","at":"a .fivtime, a + span, .epxdate, .newchtimeluffy|text"}}},"title":{"sel":"#chapterlist > ul","id":".bookmark[data-id]|attr:data-id || #rating-form input[name=\"bs_table_id\"]|attr:value","name":"h1.entry-title|text","img":".thumb img|attr-contain:src","type":".imptdt a[href*=\"type=\"]|text || .imptdt:first-of-type i|text","tags":".postbody .mgen > a|text","chapter":{"sel":"#chapterlist > ul > li","url":"a|attr:href","label":".chapternum|text","at":".chapterdate|text"}},"reader":{"sel":"#readerarea","content":"#readerarea","id":".ctop option:checked|attr:data-id","label":"h1.entry-title|text","title":{"sel":".headpost .allc a, [itemprop=\"itemListElement\"] [content=\"2\"] ~ a","name":"|text","url":"|attr:href"},"prev":"a.ch-prev-btn:not(.disabled)|attr:href","next":"a.ch-next-btn:not(.disabled)|attr:href","chapter":{"sel":".ctop #chapter option:not([disabled]):not([value=\"\"])","id":"|attr:data-id","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":".listupd .bsx","name":".bigor .tt|text","url":"a|attr:href","img":"img|attr-contain:src"}}},{"404":".error-404.not-found","id":"madara","generic":true,"name":"meta[property=\"og:site_name\"]|attr:content || a.logo|attr:title","meta":{"releases":"","titleBase":"manga","readerBase":"manga/{titleSlug}","idBase":"?p=","searchBase":"?post_type=wp-manga&s=","defaultLang":"en","titleIdType":"id","trailing":true},"releases":{"title":{"sel":".page-listing-item .page-item-detail, .lastest-content .page-item-detail","id":"[data-post-id]|attr:data-post-id","name":"h3 a, .item-summary h3|text","url":"a|attr:href","chapter":{"sel":".chapter-item","label":".chapter a|text","url":".chapter a|attr:href","at":".c-new-tag|attr:title || .post-on|text"}}},"title":{"sel":"body.manga-page","id":"#manga-chapters-holder|attr:data-id || .rating-post-id|attr:value || [data-action=\"bookmark\"]|attr:data-post","name":"h1|text","img":".summary_image .img-responsive, .summary_image img, .series-img img|[attr:data-src,attr-contain:src]","tags":"a[rel=\"tag\"][href*=\"genre\"],a[rel=\"tag\"][href*=\"tag\"],.genres-content|text","type":".post-content_item .summary-heading|row:type","chapter":{"sel":"li.wp-manga-chapter, .chapter-ul > li","url":"a|attr:href","label":"a, .chapter-title-date > p|text","at":".c-new-tag|attr:title || .chapter-release-date i|text"}},"reader":{"sel":".entry-content .read-container","content":".reading-content","label":".breadcrumb li.active|text","title":{"sel":".breadcrumb li:nth-last-of-type(2) a","id":"#manga-reading-nav-head|attr:data-id","name":"|text","url":"|attr:href"},"prev":"a.btn.prev_page|attr:href","next":"a.btn.next_page|attr:href","chapter":{"sel":"#manga-reading-nav-head select.single-chapter-select > option:not([disabled])","label":"|text","url":"|attr:data-redirect"}},"search":{"title":{"sel":".c-tabs-item__content","name":"h3 a|text","url":"a|attr:href","chapter":{"sel":".tab-meta","label":".chapter a|text","url":".chapter a|attr:href","at":".c-new-tag|attr:title || .post-on|text"}}}},{"404":".elapi > a[href*=\"/search?q=\"]","id":"mangahub","meta":{"releases":"","titleBase":"manga","readerBase":"chapter/{titleSlug}","searchBase":"search?q=","defaultLang":"en","titleIdType":"slug","trailing":false},"releases":{"title":{"sel":".list-group-item .media","name":"h4.media-heading a|text","url":".media-heading a|attr:href","at":".media-heading .small|text","chapter":{"sel":".media-body > a","label":"|text","url":"|attr:href"}}},"title":{"sel":"#chapters-tab .tab-content","name":"#mangadetail h1|text","img":"#mangadetail img.manga-thumb|attr-contain:src","tags":"#mangadetail a.genre-label|text","chapter":{"sel":"#chapters-tab li.list-group-item","label":"a > span:first-child > span:first-child|text","url":"a:not([title])|attr:href || a:not([rel])|attr:href || a|attr:href","at":"small|text"}},"reader":{"content":"#mangareader .container-fluid, #mangareader","label":"h3|text","prev":".chapter-pager .previous a[href*=\"/chapter/\"]|attr:href","next":".chapter-pager .next a[href*=\"/chapter/\"]|attr:href","title":{"sel":"h3 a","name":"|text","url":"|attr:href"},"chapter":{"sel":".pager-dropdown .dropdown-menu > li > a","label":"|text","url":"|attr:href"}},"search":{"title":{"sel":".media-manga","name":"h4 a|text","url":"h4 a|attr:href","img":"img|attr-contain:src","chapter":{"sel":".media-body","label":"a[href*=\"/chapter/\"]|text","url":"a[href*=\"/chapter/\"]|attr:href"}}}},{"id":"mangadex","meta":{"releases":"about:blank","titleBase":"title","readerBase":"chapter","searchBase":"titles?q=","defaultLang":"en","chapters":"about:blank","titleIdType":"slug","trailing":false},"search":{"lazy":true,"loading":"[indeterminate] svg","title":{"sel":"a.manga-card-dense","url":"|attr:href","name":"a.title span|text","img":".cover img|attr-contain:src"}}},{"id":"bato","meta":{"releases":"","titleBase":"series","readerBase":"chapter","searchBase":"search?word=","defaultLang":"en","titleIdType":"slug","trailing":false},"releases":{"title":{"sel":"#series-list > .item","name":"a.item-title|text","url":"a.item-title|attr:href","lang":"em[data-lang]|attr:data-lang","chapter":{"sel":".item-volch","label":"a|text","url":"a|attr:href","at":"i|text"}}},"title":{"name":"h3.item-title a|text","img":".attr-cover > img|attr-contain:src","langs":".title-set em[data-lang]|attr:data-lang","tags":".attr-main .attr-item .text-muted|row:genres","chapter":{"sel":".episode-list > .main > .item","label":"a.chapt > b|text","url":"a.chapt|attr:href","at":".extra > i|text"}},"reader":{"content":"#viewer","label":"title|text","title":{"sel":"h3.nav-title a","name":"|text","url":"|attr:href"},"lang":"h3.nav-title em[data-lang]|attr:data-lang","prev":".nav-prev > a[href^=\"/chapter/\"]|attr:href","next":".nav-next > a[href^=\"/chapter/\"]|attr:href","chapter":{"sel":".nav-epis > select option:not([disabled]):not([value=\"\"])","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":"#series-list > .item","url":"a|attr:href","name":".item-title|text","img":"a img|attr-contain:src","lang":"em[data-lang]|attr:data-lang","chapter":{"sel":".item-volch","url":"a|attr:href","label":"a|text","at":"i|text"}}}},{"404":"#error > .attention","id":"mangago","meta":{"releases":"list/latest","titleBase":"read-manga","readerBase":"read-manga/{titleSlug}","searchBase":"r/l_search/?name=","defaultLang":"en","titleIdType":"slug","trailing":true},"releases":{"title":{"sel":"ul#search_list > li > div","name":"a.thm-effect|attr:title","url":"a.thm-effect|attr:href","chapter":{"sel":"a.chico","label":"|text","url":"|attr:href"}}},"title":{"name":".w-title h1|text","img":".article .cover img,#information img|attr-contain:src","tags":".manga_right a[href*=\"/genre/\"],.manga_info ul.uk-list a[href*=\"/genre/\"]|text","chapter":{"sel":"#chapter_table tbody tr, table.uk-table tbody tr","label":"h4 a b, a.chico b|text || a.chico|text","url":"h4 a, a.chico|attr:href","at":"td:last-child|text"}},"reader":{"content":"body","label":"#navi h3 span:last-child,#series + a.chapter|text","title":{"sel":"#navi a#series,#reader-nav .nav li:first-child a","name":"|text","url":"|attr:href"},"chapter":{"sel":".pagebar.top ul.dropdown-menu.chapter > li > a,#series ~ ul.chapter li a","label":"|text","url":"|attr:href"}},"search":{"title":{"sel":"#search_list > li .box","name":"a.thm-effect|attr:title","url":"a.thm-effect|attr:href","chapter":{"sel":"a.chico","label":"|text","url":"|attr:href"}}}},{"404":".nf-large + .nf-desc + a[href=\"/home\"]","id":"kakalot","meta":{"home":"home","releases":"home","titleBase":"","readerBase":"read/{titleSlug}/{lang}","searchBase":"search?keyword=","defaultLang":"en","titleIdType":"id","trailing":false},"releases":{"title":{"sel":"#latest-chap .inner > .item","id":".item-info h3|attr:data-id","name":".item-info h3 a|text","url":"a|attr:href","chapter":{"sel":".chapter-list > .cl-item","label":"a.chapter-name|text","url":"a|attr:href","at":".time|text"}}},"title":{"lazy":true,"sel":"#chapt-list .cl-header","id":"#main|attr:data-id","name":".detail-box h3.manga-name|text","img":".detail-box .manga-poster-img|attr-contain:src","tags":".detail-box .line-content a[href*=\"/genre/\"]|text","langs":"#chap-lang .lang-item|attr:data-code","chapter":{"sel":"#chapt-list .reading-list > .item","label":"a.chapter-name|text","url":"a.chapter-name|attr:href","at":".item-time|text"}},"reader":{"content":"#list-image","imgDivs":".card-wrap[data-url]","label":".breadcrumb-item.active|text","title":{"sel":".breadcrumb-item:nth-child(2) a","id":"#reading|attr:data-manga-id","name":"|text","url":"|attr:href"},"chapter":{"sel":".kbreadcrumb + .reading-option option.reading-item","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":".manga-list > .inner > .item","name":".manga-name a|attr:title","url":".manga-name a|attr:href","img":".manga-poster img|attr-contain:src","chapter":{"sel":".latest-chapter .chapter-name","label":"|text","url":"|attr:href"}}}},{"id":"tapas","meta":{"releases":null,"titleBase":"series/{slug}/info","readerBase":"episode","searchBase":"search?q=","defaultLang":"en","titleIdType":"id","chapters":"about:blank","trailing":false},"title":{"id":".button--subscribe|attr:data-tiara-event-meta-series-id","name":".info .title|text","img":".thumb img|attr:src","first":".episode-list__item a|attr:href","chapter":{"sel":".episode-list .episode-list__item > a","url":"|attr:data-id","label":"|attr:data-scene-number"}},"reader":{"content":".viewer__body","id":"div[id^=\"episode-\"][data-ep-id]|attr:data-ep-id","label":"div[id^=\"episode-\"][data-ep-scene]|attr:data-ep-scene","prev":"div[data-prev-id]:not([data-prev-id=\"-1\"])|attr:data-prev-id","next":"div[data-next-id]:not([data-next-id=\"-1\"])|attr:data-next-id","title":{"sel":"body","id":".subscribe-btn|attr:data-id","url":".subscribe-btn|attr:data-id","name":".series-info .title|text","img":".series-info .thumb img|attr:src"},"chapter":{"sel":".episode-list .list-body > li[data-id]","url":"|attr:data-id","label":".info__label|text"}},"search":{"title":{"sel":".search-item-wrap","url":"a|attr:href","name":"img|attr:alt|remove:#\\.*\\?#","img":"img|attr-contain:src"}}},{"id":"mangafire","meta":{"home":"home","releases":"updated","titleBase":"manga","readerBase":"read/{titleSlug}/{lang}","searchBase":"filter?keyword=","defaultLang":"en","titleIdType":"id"},"releases":{"title":{"sel":".unit > .inner","id":"a[data-tip]|attr:data-tip|remove:\\?.+","name":".info a|text","url":"a|attr:href","chapter":{"sel":"ul.content li a","label":"span:first-child|text","url":"|attr:href","at":"span:last-child"}}},"title":{"id":".bookmark[data-id]|attr:data-id","name":".info h1[itemprop=\"name\"]|text","img":".poster img|attr-contain:src","tags":"#info-rating a[href*=\"/genre/\"]|text","langs":".tab-content[data-name=\"chapter\"] a.dropdown-item[data-code]|attr:data-code","chapter":{"sel":".tab-content[data-name=\"chapter\"] li.item[data-number]","url":"a|attr:href","label":"|attr:data-number","at":"a span:last-child|text"}},"reader":{"content":"#page-wrapper","imgDivs":".page","lstrip":".setting-tab.page-layout [data-value=\"longstrip\"].active","lstripBtn":".setting-tab.page-layout [data-value=\"longstrip\"]","label":"#number-panel ul li a[href*=\"/read/\"][data-number].active|attr:data-number","title":{"sel":"#ctrl-menu .head a","id":"body|attr:data-id","url":"|attr:href","name":"|text"},"chapter":{"sel":"#number-panel ul li a[href*=\"/read/\"][data-number]","label":"|attr:data-number","url":"|attr:href"}},"search":{"title":{"sel":".unit","id":"a[data-tip]|attr:data-tip|remove:\\?.+","url":"a|attr:href","name":".info a|text","img":"a img|attr-contain:src","chapter":{"sel":".unit .content[data-name=\"chap\"] a","url":"|attr:href","label":"span|text","at":"span:last-child"}}}},{"id":"mangapark","meta":{"releases":"latest","titleBase":"title","readerBase":"title/{titleSlug}","searchBase":"search?word=","defaultLang":"en","titleIdType":"slug","trailing":false},"releases":{"title":{"sel":"div:has(> h3 a[href*=\"/title/\"])","name":"a span|text","url":"a|attr:href","chapter":{"sel":"h3 ~ div:has(a)","url":"a|attr:href","label":"a span|text","at":"time|attr:data-time"}}},"title":{"name":"h3 a|text","img":"main img|attr-contain:src","tags":"b ~ span span:first-child|text","chapter":{"sel":"[data-name=\"chapter-list\"] div:has(> div > a[href*=\"/title/\"])","url":"a|attr:href","label":"a|text","at":"time span|text","group":"a[href*=\"/u/\"]|text"}},"reader":{"label":"h6 a span|text","title":{"sel":"h3 a","url":"|attr:href","name":"|text"},"content":"main","imgDivs":"[data-name=\"image-item\"]","lstrip":"option[q\\:key=\"a\"]:checked","lstripBtn":"option[q\\:key=\"a\"]","prev":"a:has(> i[name=\"angle-left\"])|attr:href","next":"a:has(> i[name=\"angle-right\"])|attr:href","group":"a[href*=\"/u/\"] span|text","chapter":{"sel":".comic-detail + div select option[value*=\"/title/\"]","url":"|value","label":"|text"}},"search":{"title":{"sel":"div:has(> div > h3 a)","url":"a|attr:href","name":"h3 a|text","img":"a img|attr-contain:src","chapter":{"sel":"div:has(> span > span > time)","url":"a|attr:href","label":"a span|text","at":"time|attr:data-time"}}}},{"id":"webtoon","meta":{"releases":null,"titleBase":"","readerBase":"","searchBase":"search?keyword=","defaultLang":"en","chapters":"meta.reader","titleIdType":"id","trailing":false},"title":{"name":"h1.subj,.detail_info > p.subj,.info > h3.subj,.subject|text","img":"meta[property=\"og:image\"]|attr:content","tags":".info > h2.genre,.detail_info > p.genre,.info > p.genre,.tag_box .tag|text","first":"a#_btnEpisode,a._readEpisodeBtn|attr:href","chapter":{"sel":"li._episodeItem","label":"|attr:data-episode-no","url":"a|attr:href","at":".date|text"}}},{"id":"mangareader","meta":{"home":"home","releases":"home","titleBase":"","readerBase":"read/{titleSlug}/{lang}","searchBase":"search?keyword=","defaultLang":"en","titleIdType":"id","trailing":false},"releases":{"title":{"sel":"#latest-chap .mls-wrap > .item","id":"a|attr:href|remove:.+-","url":"a|attr:href","name":".manga-name a|text","chapter":{"sel":".fd-list .chapter a","label":"|text","url":"|attr:href"}}},"title":{"id":"[data-manga-id]|attr:data-manga-id","name":"#ani_detail h2.manga-name|text","img":"#ani_detail img.manga-poster-img|attr:src","type":".anisc-info .item-head|row:type","tags":".anisc-detail .genres a|text","langs":"a.c-select-lang|attr:data-code","chapter":{"sel":".chapters-list-ul > ul > li","label":"|attr:data-number","url":"a|attr:href"}},"reader":{"content":"#main-wrapper","imgDivs":".iv-card[data-url]","lstrip":"a.active[data-value=\"vertical\"]","lstripBtn":"#main-wrapper:not(.page-read-hoz)","label":".reading-list .chapter-item.active|attr:data-number","title":{"id":"[data-manga-id]|attr:data-manga-id","sel":"#header a.hr-manga","name":"h2,.manga-name|text","url":"|attr:href"},"chapter":{"sel":".reading-list.active > .chapter-item","url":"a|attr:href","label":"|attr:data-number"}}},{"404":"#notfound .notfound-404","id":"mgeko","meta":{"releases":"jumbo/manga","titleBase":"manga","readerBase":"reader","searchBase":"search/?search=","defaultLang":"en","titleIdType":"slug","chapters":"meta.reader"},"releases":{"title":{"sel":"#latest-updates .novel-list.chapters > li > a","url":"|attr:href","name":"|attr:title","chapter":{"sel":"div:has(.chapter-title)","label":".chapter-title|text","at":".novel-stats span:first-child|text"}}},"title":{"name":".cover img|attr:alt","img":".cover img|[attr:data-src,attr-contain:src]","tags":".categories .property-item|text","first":"a#readchapterbtn|attr:href","chapter":{"sel":".chapter-list > li a","url":"|attr:href","label":".chapter-title,.chapter-number|text","at":"time|attr:datetime || .chapter-stats|text"}},"reader":{"imgs":"center:has(> #chapter-reader) img|attr-contain:src","label":".chapter-header .titles h2|text","next":"center .nextchap:not(.isDisabled)|attr:href","prev":"center .prevchap:not(.isDisabled)|attr:href","title":{"sel":".chapter-header .titles h1 a","name":"|text","url":"|attr:href"},"chapter":{"sel":"center center #cars option","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":".novel-item","url":"a|attr:href","name":"h4|text","img":"img|[attr:data-src,attr-contain:src]","chapter":{"sel":".novel-stats","label":"strong|text"}}}},{"404":"#main > .error-404","id":"mangack","meta":{"home":"home","releases":"updates","titleBase":"manga","readerBase":"chapter","searchBase":"?s=","defaultLang":"en","titleIdType":"slug","trailing":true},"releases":{"title":{"sel":".latestmanga .Latest_chapter_update","url":"a|attr:href","name":".latest-title a|text","chapter":{"sel":"tr:last-child center","label":"a|text","url":"a|attr:href","at":".chapter-date|text"}}},"title":{"id":"input[name=\"follow_manga\"]|attr:value","name":"h1.entry-title|text","img":".manga-cover-wrap img|attr:src","tags":".infobox a[href*=\"/genres/\"]|text","type":".infobox a[href*=\"/comic-type/\"]|text","chapter":{"sel":".chapterslist > li","url":"a|attr:href","label":"a|text","at":".entry-date|text"}},"reader":{"content":".entry-content","label":".entry-title|text","title":{"sel":".latest-title a","name":"|text","url":"|attr:href"},"prev":".prev-post a|attr:href","next":".next-post a|attr:href"},"search":{"title":{"sel":".Latest_chapter_update","url":"a|attr:href","img":"img|attr-contain:src","name":"h4 a|text"}}},{"id":"katana","meta":{"releases":"latest","titleBase":"manga","readerBase":"manga/{titleSlug}","searchBase":"?search_by=book_name&search=","defaultLang":"en","titleIdType":"id","trailing":false},"releases":{"title":{"sel":"#book_list > .item","id":"|attr:data-id","url":"a|attr:href","name":"a|text","chapter":{"sel":".chapter a","url":"|attr:href","label":"|text"}}},"title":{"id":".bookmark_bt[data-id]|attr:data-id","name":".info h1|text","img":".cover img|attr:src","tags":".info .genres a|text","chapter":{"sel":".chapters tbody > tr","url":"a|attr:href","label":"a|text","at":".update_time|text"}},"reader":{"content":"#imgs","imgs":".wrap_img > img|attr:data-src","label":"select[name=\"chapter_select\"] option:checked|text","prev":".nav_button.prev:not([disabled])|attr:href","next":".nav_button.next:not([disabled])|attr:href","title":{"sel":"#breadcrumb_wrap li:nth-child(2) a","id":".bookmark_chapter_bt[data-id]|attr:data-id","name":"span|text","url":"|attr:href"},"chapter":{"sel":".nav_chapters_wrap:first-child select[name=\"chapter_select\"] option","url":"|attr:value","label":"|text"}},"search":{"title":{"sel":"#book_list .item","url":"a|attr:href","img":"img|attr-contain:src","name":"h3 a|text","chapter":{"sel":"div:has(> div > .chapter)","url":"a|attr:href","label":"a|text","at":".update_time|text"}}}},{"id":"truyenqq","meta":{"releases":"","titleBase":"truyen-tranh","readerBase":"truyen-tranh","searchBase":"tim-kiem.html?q=","defaultLang":"vi","trailing":false,"titleIdType":"id"},"releases":{"title":{"sel":"#list_new > li","name":".book_name h3 a|text","url":".book_name h3 a|attr:href","id":".book_name h3 a|attr:href|remove:.+-","chapter":{"sel":".last_chapter a","label":"|text","url":"|attr:href"}}},"title":{"id":".btn-subscribe|attr:data-id","name":".book_info h1|text","img":".book_avatar img|attr-contain:src","tags":".book_info li a[href*=\"/the-loai/\"]|text","chapter":{"sel":".works-chapter-list .works-chapter-item","label":".name-chap a|text","url":".name-chap a|attr:href","at":".time-chap|text"}},"reader":{"content":".chapter_content","label":"ol.breadcrumb > li:last-of-type a span|text","prev":".chapter-control a.prev[href]:first-of-type:not(.d-none)|attr:href","next":".chapter-control a.prev[href]:last-of-type:not(.d-none), .chapter-control a.next[href]:not(.d-none)|attr:href","title":{"sel":"ol.breadcrumb > li:nth-of-type(2) a","id":".btn-subscribe|attr:data-id","name":"span|text","url":"|attr:href"},"chapter":{"trigger":".chapter_list","sel":"#popup_content .chapter-list > a, .chapter_list > option","label":"|text","url":"|attr:href || |attr:value"}},"search":{"title":{"sel":".list_grid > li","name":"h3 a|text","url":"h3 a|attr:href","img":"img|attr-contain:src","chapter":{"sel":".last_chapter a","url":"|attr:href","label":"|text"}}}},{"id":"uzay","meta":{"releases":"","titleBase":"manga/{id}","readerBase":"manga/{titleId}/{titleSlug}","searchBase":"search?search=","defaultLang":"tr","titleIdType":"slug","trailing":false},"releases":{"title":{"sel":"section[aria-label=\"new series\"] ~ section .header + div > div","url":"a|attr:href","name":"h2|text","chapter":{"sel":"a.mobile-list-item","url":"|attr:href","label":"h3 span:first-child b|text","at":"h3 span:nth-child(2)|text"}}},"title":{"name":".content-details > h1|text","img":".content-info > img|attr:src","tags":".content-details a[href*=\"?categories=\"]|text","chapter":{"sel":".list-episode > a","url":"|attr:href","label":"h3 b|text","at":"span:last-child|text"}},"reader":{"content":".manga-episode-card","label":".header h1 + h2|text","prev":"[aria-label=\"episode-navbar\"] div:not(last-child) > a[href]|attr:href","next":"[aria-label=\"episode-navbar\"] div:last-child > a[href]|attr:href","title":{"sel":".header h1:has(> a) a","url":"|attr:href","name":"|text"}}},{"id":"mangaworld","meta":{"releases":"","titleBase":"manga/{id}","readerBase":"manga/{titleId}/{titleSlug}/read","searchBase":"archive?keyword=","defaultLang":"it","titleIdType":"id"},"releases":{"title":{"sel":".comics-grid > .entry","name":".manga-title|text","url":"a|attr:href","chapter":{"sel":"div:has(> .xanh)","label":"a|text","url":"a|attr:href","at":"i|text"}}},"title":{"name":"h1.name|text","img":".thumb img|attr:src","tags":".meta-data a[href*=\"?genre=\"]|text","type":".meta-data a[href*=\"?type=\"]|text","chapter":{"sel":".chapters-wrapper .chapter > a","url":"|attr:href","label":"span|text","at":"i|text"}},"reader":{"content":"#page","label":"h1|text","lstrip":"select.mode option[value=\"LIST\"]:checked","lstripBtn":"select.mode option[value=\"LIST\"]","title":{"sel":"a[href*=\"/manga/\"]","name":"|text|remove:Ritorna\\sa","url":"|attr:href"},"chapter":{"sel":"#controls-1 select.chapter option","label":"|text","url":"|value"}},"search":{"title":{"sel":".comics-grid .entry","url":"a|attr:href","img":"img|attr-contain:src","name":".manga-title|text"}}},{"id":"leercapitulo","meta":{"releases":"","titleBase":"manga/{id}","readerBase":"leer/{titleId}/{titleSlug}","defaultLang":"es","titleIdType":"id","trailing":true},"releases":{"title":{"sel":".media.mainpage-manga","url":"a|attr:href","name":"h4.manga-newest|text","chapter":{"sel":".hotup-list > span a","url":"|attr:href","label":"|text"}}},"title":{"name":"h1.title-manga|text","img":".cover-detail img|attr:src","tags":".description-update a[href*=\"/genre/\"]|text","chapter":{"sel":".chapter-list a.xanh","url":"|attr:href","label":"|text"}},"reader":{"content":".comic_wraCon","label":"h2.chapter-title:first-child|text","prev":"a.pre,a.LeftArrow|attr:href","next":"a.next,a.RightArrow|attr:href","lstrip":"select.loadImgType option[value=\"1\"]:checked","lstripBtn":"select.loadImgType option[value=\"1\"]","title":{"sel":"h2.chapter-title:nth-of-type(2) a","url":"|attr:href","name":"|text"},"chapter":{"sel":"h1 + .row select[rel=\"chap-select\"] option","url":"|attr:value","label":"|text"}}},{"id":"mangaplus","meta":{"home":"updates","releases":"updates","titleBase":"titles","readerBase":"viewer","defaultLang":"en","titleIdType":"slug","trailing":false,"noTags":true},"releases":{"title":{"sel":"[class*=\"UpdatedTitle-module_titleWrapper_\"]","url":"a|attr:href","name":"[class*=\"UpdatedTitle-module_titleName_\"]|text","chapter":{"sel":"[class*=\"UpdatedTitle-module_chapterTitle_\"]","label":"|text"}}},"title":{"lazy":true,"sel":"h1[class*=\"TitleDetailHeader-module_title_\"]","name":"h1[class*=\"TitleDetailHeader-module_title_\"]|text","img":"img[class*=\"TitleDetailHeader-module_coverImage_\"]|attr:src","chapter":{"sel":"[class*=\"ChapterListItem-module_chapterListItem_\"]","url":"a[class*=\"ChapterListItem-module_commentContainer_\"]|attr:href","label":"[class*=\"ChapterListItem-module_name_\"]|text","at":"[class*=\"ChapterListItem-module_date_\"]|text"}},"reader":{"content":"[class*=\"Viewer-module_viewerContainer_\"]","label":"[class*=\"Navigation-module_chapterTitle_\"]|text","lstrip":"input#mode-vertical:checked","lstripBtn":"input#mode-vertical","title":{"sel":"a:has(> [class*=\"Navigation-module_title_\"])","url":"|attr:href","name":"h1|text"},"chapter":{"sel":"ul > li[class*=\"SideMenu-module_chapter_\"]","label":"|text"}},"search":{"lazy":true,"empty":"p[class*=\"nothingMatched\"]","title":{"sel":"a[class^=\"AllTitle\"]","url":"|attr:href","name":"p|text","img":"img|[attr:data-src,attr-contain:src]"}}},{"id":"flame","meta":{"releases":"","titleBase":"series","readerBase":"series/{titleSlug}","searchBase":"browse?search=","defaultLang":"en","titleIdType":"name","trailing":false},"releases":{"title":{"sel":"[class*=\"SeriesCard_chapterCardContainer__\"]","url":"a|attr:href","name":".mantine-Stack-root a|text","chapter":{"sel":"a:has(> [class*=\"SeriesCard_chapterPillWrapper__\"])","url":"|attr:href","label":"p:first-child|text","at":"p:not(:first-child)|text"}}},"title":{"name":"h1|text","img":"img[alt=\"Cover\"]|attr:src","tags":"a[href*=\"/genre/\"] span|text","type":"p[class*=\"SeriesPage_infoField__\"]|row:type","first":".mantine-Paper-root p + a[href*=\"/series/\"]|attr:href","chapter":{"sel":"a[class*=\"ChapterCard_chapterWrapper__\"]","url":"|attr:href","label":"p:first-child|text","at":"p:not(:first-child)|text"}},"reader":{"content":"body","label":"p[class*=\"TopChapterNavbar_chapter_title__\"]|text","prevBtn":"button:has(.bi-arrow-left)","nextBtn":"button:has(.bi-arrow-right)","title":{"sel":"[class*=\"TopChapterNavbar_inner__\"]","name":"[class*=\"TopChapterNavbar_series_title__\"]|text","url":"a|attr:href"},"chapter":{"trigger":"button:has(.bi-card-list)","dismiss":".mantine-Modal-overlay, .mantine-CloseButton-root","sel":"[class*=\"ChapterCard_chapterWrapper__\"]","url":"|attr:href","label":"p:first-child|text","at":"p:not(:first-child)|text"}}},{"id":"vortex","meta":{"home":"home","releases":null,"titleBase":"series","readerBase":"series/{titleSlug}","searchBase":"series?searchTerm=","defaultLang":"en","trailing":false,"titleIdType":"name"},"title":{"name":"h1[itemprop=\"name\"]|text","img":"[itemprop=\"image\"] img|attr:src","type":"h1:has(> svg)|row:type","first":"a[href*=\"/series/\"][href*=\"/chapter\"]|attr:href","hasMore":"a[href*=\"/series/\"][href*=\"/chapter\"]"},"reader":{"content":"section:has(.image-container),main,body","label":"a[href*=\"/series\"]:has(img) div:has(~ time)|text","prev":"a:has(button[aria-label=\"Prev\"])|attr:href","next":"a:has(button[aria-label=\"Next\"])|attr:href","prevBtn":"button:has(.lucide-chevron-left)","nextBtn":"button:has(.lucide-chevron-right)","title":{"sel":"a[href*=\"/series\"]:has(img)","name":"div:has(~ time)|text|remove:\\sChapter.+","url":"|attr:href"},"chapter":{"trigger":"button:has(.lucide-chevron-down)","sel":"[data-radix-popper-content-wrapper] [role=\"option\"] span[id]","label":"|text"}},"chapters":{"chapter":{"trigger":"button[data-key=\"chapters\"]","sel":"[role=\"tabpanel\"] a[href*=\"/series/\"]","url":"|attr:href","label":"h3|text","at":"span:last-child:first-child|text"}},"search":{"lazy":true,"loading":"button > .animate-spin","title":{"sel":"div:has(> div > a[href*=\"/series/\"])","url":"a|attr:href","name":"a h1|text","img":"a img|attr-contain:src","chapter":{"sel":"a:has(time)","url":"|attr:href","label":"p|text","at":"time|attr:datetime"}}}},{"id":"weebcentral","meta":{"releases":"","titleBase":"series/{id}","readerBase":"chapters","searchBase":"search?text=","chapters":"about:blank","defaultLang":"en","titleIdType":"id","trailing":false},"releases":{"title":{"sel":"[x-data*=\"sub_feed_shown\"] section article","url":"a:first-child|attr:href","name":"div:not(:has(span)) div|text","chapter":{"sel":"a:not(:first-child)","url":"|attr:href","label":"div:not(:first-child) span|text","at":"time|attr:datetime"}}},"title":{"name":"h1|text","img":"picture img|attr:src","tags":"li a[href*=\"?included_tag=\"]|text","type":"li a[href*=\"?included_type=\"]|text","hasMore":"#chapter-list a","first":"[x-data]:has(> a[href*=\"chapters/\"]):last-child a|attr:href"},"reader":{"content":"[hx-include*=\"reading_style\"]","label":"[hx-target=\"#chapter-select-body\"] span|text","lstripBtn":"input[value=\"long_strip\"]","lstrip":"input[value=\"long_strip\"]:checked","prevBtn":"button[\\@click=\"prevPage()\"]","nextBtn":"button[\\@click=\"nextPage()\"]","title":{"sel":"#nav-top a[href*=\"/series/\"]","url":"|attr:href","name":"span|text"},"chapter":{"trigger":"button[hx-target=\"#chapter-select-body\"]"}},"chapters":{"chapter":{"sel":"a[href*=\"/chapters/\"]","url":"|attr:href","label":"span span|text","at":"time|attr:datetime"}},"search":{"lazy":true,"empty":"main [role=\"alert\"]","title":{"sel":"article:has(a img)","url":"a|attr:href","name":"a:not(:has(img))|text","img":"a img|attr-contain:src"}}},{"id":"lua","meta":{"releases":"","titleBase":"series","readerBase":"series/{titleSlug}","chapters":"about:blank","titleIdType":"slug","trailing":false,"defaultLang":"en","noTags":true},"releases":{"title":{"sel":"div:has(> div > a[href*=\"/series/\"]):has(a > h5)","url":"a|attr:href","name":"h5|text","chapter":{"sel":"a + div a","url":"|attr:href","label":"span:first-child|text","at":"span:not(:first-child)|text"}}},"title":{"name":"h1|text","img":"main div > img[src]|attr-contain:src","hasMore":"[aria-current=\"page\"]","chapter":{"sel":"a[href*=\"/series/\"]:has(> li)","url":"|attr:href","label":"div > span:first-child|text","at":"div > span:not(:first-child)|text"}},"reader":{"label":"h1|text","prev":"a[href*=\"/series/\"]:has(> button [data-icon=\"chevron-left\"])|attr:href","next":"a[href*=\"/series/\"]:has(> button [data-icon=\"chevron-right\"])|attr:href","content":"nav:first-child ~ .container:has(img)","title":{"sel":"nav:has(h1)","name":"h2|text","url":"a[href*=\"/series/\"]:has(svg[data-icon=\"house\"])|attr:href","img":"img|attr:src"},"chapter":{"trigger":"button:has(> [data-icon=\"list\"])","sel":"#headlessui-portal-root ul a[href*=\"/series/\"]:has(> li)","url":"|attr:href","label":"span:first-child|text","at":"span:not(first-child)|text"}}},{"id":"qi","releases":{"title":{"sel":"div:has(> div > div > a[href*=\"/series/\"] > p):has(img)","url":"a|attr:href","name":"p|text","chapter":{"sel":" a + div > div:last-child > a","url":"|attr:href","label":"span:first-child|text","at":"span:not(:first-child)|text"}}},"title":{"name":"h2|text","tags":"a[href*=\"/series?tag=\"] span|text","hasMore":"[aria-current=\"page\"]","first":"a[href*=\"/series/\"]:has(> button)|attr:href","chapter":{"sel":"li > a[href*=\"/series/\"]","url":"|attr:href","label":"div > span:first-child|text","at":"div > span:not(:first-child)|text"}},"reader":{"label":"h1|text","prev":"a[href*=\"/series/\"]:has(> button [data-icon=\"chevron-left\"])|attr:href","next":"a[href*=\"/series/\"]:has(> button [data-icon=\"chevron-right\"])|attr:href","content":"nav:first-child ~ .container:has(img)","title":{"sel":"nav:has(h1)","name":"h2|text","url":"a[href*=\"/series/\"]:has(svg[data-icon=\"house\"])|attr:href","img":"img|attr:src"},"chapter":{"trigger":"button:has(> [data-icon=\"list\"])","sel":"#headlessui-portal-root ul a[href*=\"/series/\"]:has(> li)","url":"|attr:href","label":"span:first-child|text","at":"span:not(first-child)|text"}}},{"id":"mangabuddy","meta":{"home":"home","releases":"home","titleBase":"","readerBase":"{titleSlug}","searchBase":"search?q=","titleIdType":"slug","defaultLang":"en","trailing":false},"releases":{"title":{"sel":".main-container .book-item .meta","name":"h3 a|text","url":"h3 a|attr:href","chapter":{"sel":".chap-item","label":"h4 a|text","url":"h4 a|attr:href","at":".updated-date span|text"}}},"title":{"sel":"#chapter-list","name":"h1|text","img":".img-cover img|attr-contain:src","tags":".detail a[href*=\"/genres/\"]|text","chapter":{"sel":"#chapter-list > li > a","url":"|attr:href","label":".chapter-title|text","at":".chapter-update|text"}},"reader":{"label":"#breadcrumbs-container .breadcrumbs-item:last-child|text","title":{"sel":"#breadcrumbs-container .breadcrumbs-item:nth-child(2) a","url":"|attr:href","name":"span|text"},"content":"#chapter-images","imgDivs":".chapter-image","prev":"a#btn-prev|attr:href","next":"a#btn-next|attr:href","chapter":{"trigger":"#load-chapters","sel":".chapter-select option","url":"|attr:value","label":"|text"}}},{"id":"rolia","meta":{"releases":"updated-mangas","titleBase":"manga","readerBase":"manga/{titleSlug}","chapters":"manga/{titleSlug}/chapterlist","searchBase":"?s=","titleIdType":"name","defaultLang":"en","trailing":true},"releases":{"title":{"sel":".article-feed > div > div:has(> h6)","name":"h6 a|text","url":"h6 a|attr:href","chapter":{"sel":"table tr","label":"a|text","url":"a|attr:href","at":"time|attr:data-date"}}},"title":{"name":"h1|text","img":"img.poster|attr-contain:src","tags":"a[href*=\"/genres/\"]|text","type":".card-movies-series table tr:last-child td|text","first":".chapter-list + a|attr:href","hasMore":".chapter-list ~ a[href*=\"/chapterlist\"]"},"chapters":{"chapter":{"sel":"#page-content-wrapper td:first-child a","url":"|attr:url","label":"|text"}},"reader":{"content":".manga-child-content","label":".childtitle|text","next":".chapter-nav-right|attr:href","prev":".chapter-nav-left|attr:href","title":{"sel":".breadcrumb strong a","name":"|text","url":"|attr:href"},"chapter":{"sel":"#postDropdown option:not(:first-child)","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":".card-body","url":"a|attr:href","img":"img|attr-contain:src","name":"h4 a|text"}}},{"id":"lelscanfr","meta":{"releases":"","titleBase":"manga","readerBase":"manga/{titleSlug}","searchBase":"manga?title=","chapters":"meta.reader","titleIdType":"slug","defaultLang":"fr","trailing":false},"releases":{"title":{"sel":"div:has(> #card-real)","url":"a|attr:href","name":"h2|text","chapter":{"sel":"#card-real + div div:has(a)","label":"b|text","url":"a|attr:href","at":"a + span|text"}}},"title":{"name":"main h2|text","img":"main img[alt]|attr-contain:src","tags":"main a[href*=\"genre=\"]|text","type":"a[href*=\"type=\"]|text","hasMore":"ul.pagination","chapter":{"sel":"#chapters-list > a","url":"|attr:href","label":"div:first-child > span|text","at":"div:nth-child(2) > span"}},"reader":{"label":"h2|text","title":{"sel":"h3 a","url":"|attr:href","name":"|text"},"content":"#chapter-container, main","lstrip":"#reading-types option[value=\"long\"]:checked","lstripBtn":"#reading-types option[value=\"long\"]","prev":"div:has(#chapter-select) + div a:first-child[href*=\"/manga/\"]|attr:href","next":"div:has(#chapter-select) + div a:last-child[href*=\"/manga/\"]|attr:href","chapter":{"sel":"div:has(~ #chapter-container) #chapter-select option","label":"|text","url":"|text"}}},{"id":"phoenix","meta":{"releases":"","titleBase":"manga","readerBase":"manga/{titleSlug}","titleIdType":"name","defaultLang":"fr","trailing":false,"noTags":true},"releases":{"title":{"sel":".main__latest-releases-card","url":"a|attr:href","name":"h3 text","chapter":{"sel":"a.main__latest-releases-card-chapter","url":"|attr:href","label":".main__latest-releases-card-chapter-number|text","at":".main__latest-releases-card-chapter-date|text"}}},"title":{"name":"h1|text","img":"img.project__cover|attr-contain:src","chapter":{"sel":"a.project__chapter","url":"|attr:href","label":".project__chapter-title|text","at":".project__chapter-date|text"}},"reader":{"label":".chapter__nav-chapter-title-number|text","title":{"sel":"a.chapter__nav-chapter","url":"|attr:href","name":".chapter__nav-title|text"},"content":".chapter-images__container","prev":"a.chapter__previous|attr:href","next":"a.chapter__next|attr:href","chapter":{"trigger":".chapter-images__controls-chapter","sel":".chapter-list .chapter_item a","url":"|attr:href","label":"|text"}}},{"404":"#content > .wrapper > .notf img, body:empty","id":"nika","meta":{"releases":"","titleBase":"manga","readerBase":"","searchBase":"?s=","idBase":"?p=","titleIdType":"name","defaultLang":"en","trailing":true},"releases":{"title":{"sel":".listupd .utao .uta .luf","url":"a|attr:href","name":"h4|text","chapter":{"sel":"ul li a:has(.eggchap)","url":"|attr:href","label":".eggchap|text","at":".eggtime|text"}}},"title":{"id":".bookmark[data-id]|attr:data-id","name":"h1.entry-title|text","img":".thumb img|attr-contain:src","tags":".mgen a[rel=\"tag\"]|text","type":".imptdt a[href*=\"type=\"]|text","chapter":{"sel":".chapter-item a","url":"|attr:href","label":"div div:first-child|text","at":"div div:not(:first-child)|text"}},"reader":{"content":"#readerarea","id":".ctop option:checked|attr:data-id","label":"h1.entry-title|text","title":{"sel":".headpost .allc a","name":"|text","url":"|attr:href"},"prev":"a.ch-prev-btn:not(.disabled)|attr:href","next":"a.ch-next-btn:not(.disabled)|attr:href","chapter":{"sel":".ctop #chapter option:not([disabled]):not([value=\"\"])","id":"|attr:data-id","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":".listupd .bs .bsx a","url":"|attr:href","name":".bigor .tt|text","img":"img|attr-contain:src"}}},{"id":"manhwaz","meta":{"releases":null,"titleBase":"webtoon","readerBase":"webtoon/{titleSlug}","searchBase":"search?s=","titleIdType":"name","defaultLang":"en","trailing":false},"title":{"name":".post-title h1|text","img":".summary_image img[alt]|attr-contain:src","tags":".genres-content a[rel=\"tag\"]|text","chapter":{"sel":".wp-manga-chapter","label":"a|text","url":"a|attr:href","at":".chapter-release-date i|text"}},"reader":{"label":".breadcrumb .active|text","title":{"sel":".breadcrumb li:has(+ .active) a","url":"|attr:href","name":"|text"},"content":"#chapter_content, .reading-content","prev":".nav-previous a|attr:href","next":".nav-next a|attr:href","chapter":{"sel":"#manga-reading-nav-head .single-chapter-select option","url":"|attr:value","label":"|text"}},"search":{"title":{"sel":".page-item-detail","url":"a|attr:href","name":"h3 a|text","img":"img|attr-contain:src","chapter":{"sel":".chapter-item ","url":"a|attr:href","label":"a|text","at":".post-on|text"}}}},{"id":"dynasty","meta":{"releases":null,"titleBase":"series","readerBase":"chapters","searchBase":"search?q=","titleIdType":"slug","defaultLang":"en","trailing":false},"title":{"name":"h2.tag-title b|text","img":".cover img|attr-contain:src","tags":".tag-tags a.label|text","chapter":{"sel":".chapter-list dd:has(> a.name)","url":"a|attr:href","label":"a|text","at":"small|text"}},"reader":{"label":"h3#chapter-title b|text","title":{"sel":"h3#chapter-title a","url":"|attr:href","name":"|text"},"content":"#image","prev":"a#prev_link|attr:href","next":"a#next_link|attr:href"},"search":{"title":{"sel":".chapter-list a.name","url":"|attr:href","name":"|text"}}},{"id":"fmteam","meta":{"releases":"","titleBase":"comics","readerBase":"read/{titleSlug}/{lang}","titleIdType":"slug","defaultLang":"fr","trailing":false},"releases":{"title":{"sel":".item:has(h5 a)","name":"h5 a|text","url":"h5 a|attr:href","chapter":{"sel":"a[href*=\"/read/\"]","label":"|text","url":"|attr:href"}}},"title":{"lazy":true,"sel":"#comic","name":"#comic .card-header|text","img":"#comic .card-body .thumbnail-full img|attr-contain:src","type":"#comic .card-body div:has(> label)|row:format","tags":"#comic .card-body div:has(> label)|row:genres","chapter":{"sel":"div:has(> div > .chapter a[href*=\"/read/\"])","label":"a[href*=\"/read/\"]|text","url":"a[href*=\"/read/\"]|attr:href","at":"div:last-child[title]|attr:title"}},"reader":{"title":{"sel":"#reader-controls-title a","name":"|text","url":"|attr:href"},"label":"select[name=\"jump-chapter\"] option:checked|text","content":"#reader-images","imgDivs":"#reader-images [data-page]","lstrip":".active > [data-value=\"long-strip\"]","lstripBtn":"[data-value=\"long-strip\"]","prev":"#chapter-link-left[href*=\"/read\"]|attr:href","next":"#chapter-link-right[href*=\"/read\"]|attr:href","chapter":{"sel":"select[name=\"jump-chapter\"] option","label":"|text","url":"|attr:value"}}},{"id":"readallcomics","meta":{"releases":null,"titleBase":"category","readerBase":"","searchBase":"?s=&type=comic&story=","titleIdType":"name","defaultLang":"en","trailing":true},"title":{"name":"h1 b|text","img":".description-archive img|attr-contain:src","tags":"h1 ~ div p strong|text","chapter":{"sel":".list-story li a","url":"|attr:href","label":"|text"}},"reader":{"sel":"center > p:has(> img)","label":"h3 strong|text","title":{"sel":".pinbin-category a","name":"|text","url":"|attr:href"},"content":"center > p:has(> img)","imgs":"center > p > img|[attr:data-jh-lazy-img,attr-contain:src]","chapter":{"sel":"center:has(> p > img) ~ div center select option","label":"|text","url":"|attr:value"}}},{"id":"sad","meta":{"releases":"","titleBase":"series","readerBase":"reader","searchBase":"series?search=","titleIdType":"slug","defaultLang":"tr","trailing":false},"releases":{"title":{"sel":"#latest-chapters .chap","name":".chap-title h3|text","url":".chap-title a|attr:href","chapter":{"sel":".chap-info","url":"|attr:href","label":".chap-number|text","at":".chap-date|attr:datetime"}}},"title":{"name":".detail .title h2|text","img":".series-image img|attr-contain:src","type":".type span:last-child|text","chapter":{"sel":".chap-link","url":"a|attr:href","label":"a|text","at":".chap-link .detail > span:last-child"}},"reader":{"label":".chap-select option:checked|text","title":{"sel":"a.series-title","name":"|text","url":"|attr:href"},"lstrip":"#rdmod option#webtoon:checked","lstripBtn":"#rdmod option#webtoon","content":".reader-content .list-style","prev":"a[rel=\"prev\"]|attr:href","next":"a[rel=\"next\"]|attr:href","chapter":{"sel":".chap-select option","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":".series-list","url":"a|attr:href","name":"h2|text","img":"img|[attr:data-src,attr-contain:src]"}}},{"id":"philia","meta":{"releases":"recently-updated","titleBase":"series","readerBase":"series/{titleSlug}","searchBase":"?s=","titleIdType":"slug","defaultLang":"en","trailing":true},"releases":{"title":{"sel":"main .unit","name":"a.c-title|text","url":"a.c-title|attr:href","chapter":{"sel":"li a","url":"|attr:href","label":".ch-num|text","at":".ch-date|text"}}},"title":{"name":"h1.serie-title|text","img":"img.cover|attr-contain:src","type":".stat-label|row:type","chapter":{"sel":".chapter-group a","url":"|attr:href","label":"zebi|text","at":".time|text"}},"reader":{"label":".current-type-number|text","title":{"sel":"a.manga-title","url":"|attr:href","name":"|text"},"content":"#ch-images","chapter":{"sel":".chapter-list ul .item","url":"|attr:data-chapter","label":"a|text"}},"search":{"title":{"sel":".unit","url":"a|attr:href","name":".c-title|name","img":"img|attr-contain:src","chapter":{"sel":".content > li a","url":"|attr:href","label":".ch-num|text","at":"ch-date|text"}}}},{"id":"batcave","meta":{"releases":"","titleBase":"","readerBase":"reader/{titleId}","searchBase":"search/","titleIdType":"id","defaultLang":"en","trailing":false,"noTags":true},"releases":{"title":{"sel":"li.latest","name":"a.latest__title|text","url":"a.latest__title|attr:href","chapter":{"sel":".latest__chapter a","url":"|attr:href","label":"|text"}}},"title":{"name":"#dle-content h1|text","img":"#dle-content .img-wide img|attr-contain:src","id":"[data-ratig-layer-id]|attr:data-ratig-layer-id","chapter":{"sel":".cl__item","label":".cl__item-num|text","url":"a|attr:href","at":".cl__item-date|text"}},"reader":{"label":".chapter__selector-trigger__title|text","title":{"sel":"a.header__post-link","url":"|attr:href","name":".header__post-title|text"},"content":".reader-view","chapter":{"trigger":".chapter__selector-trigger","sel":".chapters__list a","url":"|attr:href","label":"|text"},"prev":".chapter__selector a:has(.fa-angle-left)[href*=\"/reader/\"]|attr:href","next":".chapter__selector a:has(.fa-angle-right)[href*=\"/reader/\"]|attr:href"}},{"id":"tcb","meta":{"releases":null,"titleBase":"mangas/{id}","readerBase":"chapters","titleIdType":"slug","defaultLang":"en","trailing":false,"noTags":true},"title":{"name":"h1|text","img":"main img|attr-contain:src","chapter":{"sel":"main a[href*=\"/chapters/\"]","url":"|attr:href","label":"div|text"}},"reader":{"label":"h1|text|remove:.+-","title":{"name":"h1|text|remove:-.+","url":"main a[href*=\"/mangas/\"]|attr:href"},"prev":"a[href*=\"/chapters/\"]:has(+ a[href*=\"/mangas/\"])|attr:href","next":"a[href*=\"/mangas/\"] + a[href*=\"/chapters/\"]|attr:href","content":"main"}},{"id":"bato3x","meta":{"home":"v3x","releases":null,"titleBase":"title","readerBase":"title/{titleSlug}","searchBase":"v3x-search?word=","titleIdType":"id","defaultLang":"en","trailing":false},"title":{"name":"h3 a[href*=\"/title/\"]|text","id":"h3 a[href*=\"/title/\"]|attr:href|pattern:.*\\/(\\d+)-.*","img":"main img|attr-contain:src","tags":"div:has(> h3) + div b ~ span|text","chapter":{"sel":"[name=\"chapter-list\"] astro-slot > div","url":"a|attr:href","label":"a|text","at":"time|attr:time"}},"reader":{"label":"h6 a span|text","title":{"sel":"h3 a","name":"|text","url":"|attr:href","id":"|attr:href|pattern:.*\\/(\\d+)-.*"},"lstrip":"select[data-name=\"page-load\"] option[value=\"2\"]:checked","lstripBtn":"select[data-name=\"page-load\"] option[value=\"2\"]","content":"[name=\"image-items\"]","chapter":{"sel":"[data-name=\"page-jump\"] option","url":"|attr:value","label":"|text"}}},{"id":"mangapill","releases":{"title":{"sel":"div:has(> a[href*=\"/chapters/\"]):has(div > a[href*=\"/manga/\"])","name":"a[href*=\"/manga/\"]|text","url":"a[href*=\"/manga/\"]|attr:href","chapter":{"sel":"div:has(> a[href*=\"/chapters/\"])","url":"a[href*=\"/chapters/\"]|attr:href","label":"a[href*=\"/chapters/\"]|text","at":"time-ago|attr:datetime"}}},"title":{"name":"h1|text","img":"header ~ div img|attr:data-src","tags":"a[href*=\"?genre=\"]|text","chapter":{"sel":"#chapters a[href*=\"/chapters/\"]","url":"|attr:href","label":"|text"}},"reader":{"label":"h1#top|text","title":{"sel":"#js-chapter-selector-modal div:has(> a[href*=\"/manga/\"])","name":"#chapter-selector-modal-title|text","url":"a|attr:href"},"content":"div:has(> chapter-page)","imgs":"chapter-page picture img|attr-contain:src","prev":"a[data-hotkey=\"ArrowLeft\"]|attr:href","next":"a[data-hotkey=\"ArrowRight\"]|attr:href","chapter":{"trigger":"button[data-micromodal-trigger=\"js-chapter-selector-modal\"]","dismiss":"#js-chapter-selector-modal button[data-micromodal-close]","sel":"#js-chapter-selector-modal a[href*=\"/chapters/\"]","url":"|attr:href","label":"|text"}},"search":{"title":{"sel":"div:has(> a img)","url":"a|attr:href","name":"a:not(:has(img)) div|text","img":"a img|[attr:data-src,attr-contain:src]"}}},{"id":"nhentai"},{"id":"mangataro","releases":{"title":{"sel":"#manga-grid > div:has(a + div a[href*=\"/read/\"])","name":"h3|text","url":"a|attr:href","chapter":{"sel":"h3 ~ div > a","url":"|attr:href","label":"span:first-child|text","at":"span:last-child|text"}}},"title":{"name":"h1|text","img":".manga-page-wrapper img|attr-contain:src","tags":".manga-page-wrapper a[href*=\"/tag/\"]|text","type":"h1 + p + div + div > span|text","chapter":{"sel":".chapter-list > a","url":"|attr:href","label":"span:first-child|text","at":"div + span:not(:first-child)|text"}},"reader":{"title":{"sel":"a[href*=\"/manga/\"]","url":"|attr:href","name":"span|text"},"label":"select#chapter-select option:checked|text","content":".reader","imgs":".comic-image-container img|[attr:data-src,attr-contain:src]","chapter":{"sel":"select#chapter-select option","url":"|attr:value","label":"|text"}},"search":{"title":{"sel":".list-manga-card a","url":"|attr:href","name":"h3|text","img":"img|attr-contain:src"}}},{"id":"demonic","releases":{"title":{"sel":".updates-element-info","name":"h2 a|text","url":"a|attr:href","chapter":{"sel":".chap-date","url":"a|attr:href","label":"a|text","at":"div:last-child a|text"}}},"title":{"name":"h1.big-fat-titles|text","img":"#manga-page img[alt]|attr-contain:src","chapter":{"sel":"#chapters-list li > a","url":"|attr:href","label":"|text","at":"span|text"}},"reader":{"sel":".chapter-info h1 a","title":{"sel":".chapter-info h1 a","url":"|attr:href","name":"|text"},"label":"h2|text","content":"body","imgs":"img.imgholder:not([data-tried]):not([src*=\"/free_ads\"])|attr-contain:src","chapter":{"sel":"h2 + .chapters-nav select option","label":"|text","url":"|attr:value"}}},{"id":"atsu","title":{"lazy":true,"sel":"h1","name":"h1|text","img":".poster|attr-contain:src","tags":"a[href*=\"/explore?tags=\"]|text","first":"h2 ~ div div:last-child > a[href*=\"/read/\"]|attr:href","trackers":{"anl":"a[href*=\"anilist.co\"]|attr:href|pattern:.*/(\\d+)$","mal":"a[href*=\"myanimelist.net\"]|attr:href|pattern:.*/(\\d+)$"},"hasMore":"h2 ~ div:has(a[href*=\"/read/\"]):has(> button)","chapter":{"sel":"h2 ~ div div:has(> a[href*=\"/read/\"]):has(~ button) > a, h2 ~ div:not(:has(> button)) a[href*=\"/read/\"]","url":"|attr:href","label":"span:first-child|text","at":"span:last-child|text"}},"search":{"lazy":true,"empty":"div > h1","title":{"sel":"a[href*=\"/manga/\"]","url":"|attr:href","name":"p|text","img":"img|attr-contain:src"}}},{"id":"mangahaven","title":{"name":"p:has(+ div a[href*=\"filter\"])|text","img":"main img[alt]|attr-contain:src","tags":"a[href*=\"genre=\"] div|text","type":"a[href*=\"status=\"] ~ div:last-child|text"},"reader":{"title":{"url":"#fucking-container a[href*=\"/manga/\"]|attr:href","name":"#fucking-container p|text"},"label":"button p:last-child|text|remove:/.+","content":"body"},"search":{"lazy":true,"loading":".animate-pulse","title":{"sel":"a[href*=\"/manga/\"]","url":"|attr:href","name":"p|text","chapter":{"sel":"div:has(> span)","label":"span:first-child|text","lang":"span:last-child|text"}}}},{"id":"kali","releases":{"title":{"sel":".latest-item .meta","name":"h3 a|text","url":"a|attr:href","chapter":{"sel":".chap-item","url":"a|attr:href","label":"a|text","at":".updated-date span|text"}}},"title":{"name":".name h1|text","img":".img-cover img|[attr:data-src,attr-contain:src]","tags":".meta a[href*=\"/genres/\"]|text","chapter":{"sel":"#chapter-list li > a","url":"|attr:href","label":".chapter-title|text","at":".chapter-update|text"}},"reader":{"lazy":true,"sel":".chapter-image[data-src]","title":{"sel":".breadcrumbs-item a[href*=\"/manga/\"]","url":"|attr:href","name":"span|text"},"label":".breadcrumbs-item:last-child span|text","imgs":".chapter-image|attr:data-src","prev":"#btn-prev|attr:href","next":"#btn-next|attr:href","chapter":{"trigger":"#load-chapters","sel":".chapter-select option","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":".book-detailed-item","img":"img|[attr:data-src,attr-contain:src]","name":"h3 a|text","url":"h3 a|attr:href","chapter":{"sel":".thumb","label":".latest-chapter|text"}}}},{"id":"mangafreak","releases":{"title":{"sel":".latest_item","url":"a|attr:href","name":"a.name|text","chapter":{"sel":".chapter_box a","url":"|attr:href","label":"|text"}}},"title":{"name":"h1|text","img":".manga_series_image img|attr-contain:src","tags":".series_sub_genre_list > a|text","chapter":{"sel":".manga_series_list tbody tr","url":"a|attr:href","label":"a|text","at":"td:last-child|text"}},"reader":{"title":{"sel":"h1.title a","url":"|attr:href","name":"|text"},"label":"h1|text","imgs":".read_image img|attr-contain:src","chapter":{"sel":".chapter_list select option","label":"|text","url":"|attr:value"}},"search":{"title":{"sel":".manga_search_item","name":"h3 a|text","url":"a|attr:href","img":"img|attr-contain:src"}}},{"id":"readcomiconline","title":{"name":".barContent .bigChar|text","img":"#rightside img, .main img|attr-contain:src","chapter":{"sel":".listing tbody tr:has(a)","label":"a|text","url":"a|attr:href","at":"td:last-child|text"}},"reader":{"title":{"sel":"#navsubbar a","url":"|attr:href","name":"|text|pattern:Comic (.+) information"},"label":".selectEpisode option:checked|text","lstrip":"#selectReadType option[value=\"1\"]:checked","lstripBtn":"#selectReadType option[value=\"1\"]","content":"#divImage","chapter":{"sel":".selectEpisode option","url":"|attr:value","label":"|text"}}},{"id":"valir","releases":{"title":{"sel":".latest-poster","name":"a h3|text","url":"a|attr:href","chapter":{"sel":"a[href*=\"/chapter/\"]","url":"|attr:href","label":"span div|text","at":"span:last-child|text"}}},"title":{"name":"h1|text","img":".bg-\\[image\\:--photoURL\\]|bg-image","chapter":{"sel":"#chapters > a","url":"|attr:href","label":"span span|text","at":"span + div div|text"}},"reader":{"title":{"sel":"#chapter_header a[href*=\"/series/\"]","url":"|attr:href","name":"|text"},"label":"#chapter_header span:has(a[href*=\"/series/\"])|text","content":"#pages","chapter":{"sel":"#chapters > a","url":"|attr:href","label":"span span|text","at":"span + div div|text"}},"search":{"lazy":true,"delay":500,"empty":"#no_results_page","title":{"sel":"#searched_series_page > button:not(.hidden)","name":"a h3|text","url":"a|attr:href","img":"div[style*=\"background-image\"]|bg-image"}}},{"id":"rawkuma","releases":{"title":{"sel":"#search-results > div","url":"a|attr:href","name":"h1|text","chapter":{"sel":"div > a:has(time)","url":"|attr:href","label":"p|text","at":"time|attr:datetime"}}},"title":{"name":"h1[itemprop=\"name\"]|text","img":"[itemprop=\"image\"] img|attr-contain:src","tags":"a[href*=\"/genre/\"] span|text","type":"h4|row:type","first":"button a[href*=\"/manga/\"]|attr:href"},"reader":{"title":{"name":"a[href*=\"/manga/\"] img[alt]|attr:alt","url":"a[href*=\"/manga/\"]|text"},"label":"div:has(> time) div|text","imgs":"section[data-image-data] > img|attr-contain:src","prev":"a[href*=\"/manga/\"]:has([data-lucide=\"chevron-left\"])|attr:href","next":"a[href*=\"/manga/\"]:has([data-lucide=\"chevron-right\"])|attr:href","chapter":{"trigger":"button[pop-content=\"#chapter-lists-head\"]","sel":"#chapter-lists-head li > a","url":"|attr:href","label":"|text"}}},{"id":"mangaberri","releases":{"title":{"sel":".manga-horizontal-item","url":"a|attr:href","name":"a|attr:title","chapter":{"sel":"a.episode","url":"|attr:href","label":"span|text"}}},"title":{"sel":".chapters-container","name":"h1|text","img":"img.comic-img|attr-contain:src","tags":".comic-attrs a[href*=\"genre=\"]|text","chapter":{"sel":".chapters-container > a","url":"|attr:href","label":"span|text"}},"reader":{"title":{"sel":".breadcrumb-container a:nth-of-type(2)","url":"|attr:href","name":"|attr:title"},"label":".breadcrumb-container a:nth-of-type(3)|attr:title","imgs":".reading-container img|attr-contain:src","chapter":{"sel":"#top_chapter_selection option","url":"|attr:value","label":"|text"}},"search":{"title":{"sel":".manga-item","img":"img|attr-contain:src","name":"a|attr:title","url":"a|attr:href","chapter":{"sel":"a:last-of-type","url":"|attr:href","label":"|text"}}}},{"id":"kagane","title":{"name":"h1|text","tags":"span[title*=\"genre:\"]|text"},"reader":{"title":{"name":"title|text|remove:-.+","url":"a[href*=\"/series/\"]|attr:href"},"label":"title|text|remove:.+-","content":".reader-pages-content"},"search":{"lazy":true,"title":{"sel":"[data-series-item]","name":"h3|text","url":"a|attr:href"}}},{"id":"mangaball","title":{"name":"h4.comic-title|text","img":"img.featured-cover|attr-contain:src","tags":"span[onclick*=\"?tag_included_ids\"]|text"},"reader":{"title":{"name":"header h6|text","url":"[type=\"application/ld+json\"]|text|remove:^[\\s\\S]*?\"url\":\\s*\"|remove:\"[\\s\\S]*$"},"label":"#chapterTitle|text","content":"#mangaPages","imgs":"#mangaPages img|[attr:data-src,attr-contain:src]","group":"#translationGroup span|text"},"search":{"lazy":true,"empty":"#seasonal-anime-container .alert","title":{"sel":"div:has(> .item-title)","name":"a|text","url":"a|attr:href","img":".item-body img|attr-contain:src"}}},{"id":"mangatr","title":{"sel":"#tab1 .info-body h1","name":"#tab1 .info-body h1|text","img":".thumbnail|attr:src","tags":".manga-meta-card a[href*=\"tur=\"]|text","first":"#results a:has(+ .chapter-container)|attr:href","hasMore":"[data-page=\"2\"]","chapter":{"sel":".chapter-item","label":"a|text","url":"a|attr:href","at":".stats|text"}},"reader":{"sel":".chapter-content","title":{"sel":"a.navbar-brand","url":"|attr:href","name":"|text"},"label":".navbar-form option:checked|text","group":".chapter-content a.label|text","content":"#chapter-images","chapter":{"sel":".navbar-form option","url":"|attr:value","label":"|text"}}},{"id":"denizi","title":{"name":".panel-heading,h2|text","img":".single-managa .boxed img, h2 ~ div img|attr-contain:src","tags":"a[href*=\"/category/\"]|text","chapter":{"sel":".chapters > li","label":"a|text","url":"a|attr:href","at":".date-chapter-title-rtl|text"}},"reader":{"title":{"sel":".nav:has(#chapter-list) a","url":"|attr:href","name":"|text"},"label":"h1 b|text","content":"#all","imgs":"#all img|[attr:data-src,attr-contain:src]","chapter":{"sel":"#chapter-list li a","url":"|attr:href","label":"|text"}}},{"id":"mangabox","releases":{"title":{"sel":".itemupdate","name":"h3 a|text","url":"a|attr:href","chapter":{"sel":"ul > li:not(:first-child)","label":"a|text","url":"a|attr:href","at":"i|text"}}},"title":{"name":"h1|text","img":".manga-info-pic img|attr-contain:src","tags":".manga-info-text a[href*=\"/genre/\"]|text","chapter":{"sel":".chapter-list > .row","label":"a|text","url":"a|attr:href","at":"span:last-child|attr:title"}},"reader":{"title":{"sel":".breadcrumb a[href*=\"/manga/\"]","url":"|attr:href","name":"span|text"},"label":".breadcrumb > p > span:last-child span|text","imgs":".container-chapter-reader img|attr-contain:src","chapter":{"sel":".navi-change-chapter option","label":"|text","url":"|attr:data-c"}},"search":{"title":{"sel":".story_item","url":"a|attr:href","name":".story_name a|text","img":"img|attr-contain:src","chapter":{"sel":".story_chapter","url":"a|attr:href","label":"a|text"}}}},{"id":"merlin","title":{"name":"h1#manga-title,h1|text","img":".story-cover img|attr-contain:src","tags":"#genre-tags a[href*=\"/tur/\"]|text","hasMore":"a[href*=\"/page/2/\"]","first":".story-cover-wrap + div a|attr:href","chapter":{"sel":".chapter-item a","url":"|attr:href","label":"h3|text"}},"reader":{"title":{"sel":"#breadcrumb-manga","url":"|attr:href","name":"|text"},"label":"[aria-current=\"page\"]|text","prev":"a:has(> [uk-pagination-previous])|attr:href","next":"a:has(> [uk-pagination-next])|attr:href","imgs":"#chapter-content img|attr-contain:src","chapter":{"trigger":"#chapter-toggle","sel":"#chapter-dropdown li a","url":"|attr:href","label":"|text"}}},{"id":"temples","title":{"name":"main h1|text","img":"main img[alt]|attr-contain:src","chapter":{"sel":"a:has(h1):has(img):has(p)","url":"|attr:href","label":"h1|text","at":"div span:last-child|text"}},"reader":{"title":{"sel":"main h1 + a","url":"|attr:href","name":"|text"},"label":"main h1|text","imgDivs":"[data-index]","prev":"main a:has(svg):first-child|attr:href","next":"main a:has(svg):last-child|attr:href"}}]
package/stripper.js CHANGED
@@ -1 +1 @@
1
- (function(s,l){typeof exports=="object"&&typeof module<"u"?l(exports):typeof define=="function"&&define.amd?define(["exports"],l):(s=typeof globalThis<"u"?globalThis:s||self,l(s.$mpStripper={}))})(this,function(s){"use strict";var l=Object.defineProperty,S=(t,e,n)=>e in t?l(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,M=(t,e,n)=>(S(t,typeof e!="symbol"?e+"":e,n),n);class m{constructor(){M(this,"elsPool",new Map)}check(e){if(!e||e===document.body)return!0;const n=this.elsPool.get(e);if(n!==void 0)return n;const r=getComputedStyle(e);if(!(r.display!=="none"&&+(r.opacity??"1")>.1))return this.elsPool.set(e,!1),!1;const o=this.check(e.parentElement);return this.elsPool.set(e,o),o}}function h(t,e){let n=[e??document.documentElement];const r=t.split("->");for(let o=0;o<r.length;o++){const i=r[o];n=n.map(a=>Array.from((a.shadowRoot??a).querySelectorAll(i))).flat()}return n}function w(t=0){return new Promise(e=>setTimeout(e,t))}async function f(t,e,n){const r=await n(()=>{t=0});if(r!==void 0)return r;if(!(t<=0))return await new Promise(o=>{setTimeout(async()=>{const i=await f(t-1,e,n);o(i)},e)})}async function H(t,e,n=0){const r=e.root??document.documentElement,o=e.timeoutMs??1e4;return f(e.lazy===!0?o/50:0,50,()=>{const i=e.all===!0?Array.from(r.querySelectorAll(t)):r.querySelector(t)??void 0;return(e.all?!i?.length:!i)?void 0:i})}function u(t){const e=t.getBoundingClientRect();return e.width>=200&&e.height>=200}async function L(t,e){const n=await T(t,e);return y(n?.parentElement??t)}async function T(t,e){if(e?.imgDivs)return await H(e.imgDivs,{lazy:!0,timeoutMs:15e3});const n=Array.from(t.querySelectorAll(e?.imgs?.split("|")[0]??"img,canvas"));if(!n.length)return;const r=new m;return n.find(o=>r.check(o)&&(u(o)||o instanceof HTMLImageElement&&(!o.width||!o.height)))}function y(t){return t===document.documentElement||t.scrollHeight-t.clientHeight>=10&&window.getComputedStyle(t).overflow!=="visible"?t:y(t.parentElement)}function P(t){if(t instanceof HTMLOptionElement){const e=t.parentElement instanceof HTMLOptGroupElement?t.parentElement.parentElement:t.parentElement;if(!e||!(e instanceof HTMLSelectElement))return;const n=t.getAttribute("value")||"";if(e.value===n)return;e.value=n,e.dispatchEvent(new Event("change"));return}return t instanceof HTMLAnchorElement&&t.addEventListener("click",e=>e.preventDefault(),{once:!0}),t.click()}async function C(t){const e=await I(t),n=t?.content;return n?await f(e?30:10,100,()=>{for(const r of n.split(",")){const o=document.querySelector(r);if(o)return o}})??document.body:document.body}async function I(t){const{lstrip:e,lstripBtn:n}=t||{};if(!e||!n||document.querySelector(e))return!1;const r=await f(50,30,()=>document.querySelector(n));return r?(P(r),await w(),!0):!1}function R(t){return g(t)}async function g(t,e=0,n=0){const r=await C(t);q(r);const o=await L(r,t);await D(o,{stepMs:100,durationMs:1e4});const i=new m,a=t?.imgDivs?k(r,t.imgDivs,i):E(r,i),c=a===void 0;if(c&&n===50){if(!t?.imgDivs&&v(r,i))return r;throw new Error("EMPTY")}return a!==!1?(await w(500),await g(t,0,c?n+1:0),r):e>=1?r:await g(t,e+1)}function q(t){const e=Array.from(t.querySelectorAll('img[loading="lazy"]'));for(const n of e)n.setAttribute("loading","eager");p(t,"data-src"),p(t,"data-url")}function p(t,e){const n=Array.from(t.querySelectorAll(`img[${e}]`));for(const r of n){const o=r.getAttribute(e)?.split(" ")[0];o&&r.src!==o&&(r.src=o)}}function k(t,e,n){const r=h(e,t);if(r.length)return r.some(o=>v(o,n)?!1:E(o,n)!==!1)}function E(t,e){const n=Array.from(t.querySelectorAll("img"));let r=!1;for(const o of n){if(!e.check(o))continue;const i=u(o);if(r=r||i,o.complete){if(i&&!o.naturalWidth&&!o.naturalHeight)throw new Error("IMG_ERR")}else if(i||!o.width||!o.height)return!0}return r?!1:void 0}function v(t,e){return Array.from(t.querySelectorAll("canvas")).some(n=>e.check(n)&&u(n))}async function D(t,{stepMs:e,durationMs:n}){await $(t,n,e)}async function $(t,e,n){t.style.setProperty("scroll-behavior","auto");let r=e;for(;r>0&&t.scrollTop+t.clientHeight+200<t.scrollHeight;){const o=t.scrollHeight-t.scrollTop-t.clientHeight;t.scrollTop+=o/(r/n),r-=n,await w(n)}}async function W(t,e){const n=e?.imgDivs;return n?await j(t,n):await O(t,e)}async function j(t,e){const n=h(e,t),r=[],o=new m;for(const i of n){const a=Array.from(i.querySelectorAll("img,canvas"));for(const c of a)o.check(c)&&u(c)&&r.push(c)}return r}function O(t,e){const n=[],r={},o=new m;return t.querySelectorAll(e?.imgs?.split("|")[0]??"img,canvas").forEach(async i=>{if(!(!o.check(i)||!u(i))){if(i instanceof HTMLImageElement){const a=r[i.src];if(a!==void 0&&a!==-1){n.splice(a,1);return}r[i.src]=n.length}n.push(i)}}),n}async function U(t){return t instanceof HTMLCanvasElement?t.toDataURL("image/jpeg",1):await x(t)}async function x(t){if(!t.src.startsWith("blob:")||await z(t))return t.src;const e=document.createElement("canvas"),n=e.getContext("2d"),r=t.naturalWidth,o=t.naturalHeight;return e.width=r,e.height=o,n?.drawImage(t,0,0,r,o),e.toDataURL("image/jpeg",1)}function z(t){return new Promise(e=>{const n=new Image;n.onload=()=>e(!0),n.onerror=()=>e(!1),n.src=t.src})}function G(t,{isWeb:e}){const n=!e&&navigator.userAgent.toLowerCase().includes("android");return Promise.all(t.map(async({src:r,el:o})=>{let i,a;const c=r.startsWith("data:");if(n){const A=r.startsWith("blob:");!A&&!c&&(a=await d(r,o)),i=A?await B(r):r}else e?c?i=r:(a=await d(r,o,!0),i=F(a)):c?(i=await _(r),a=await d(i)):(i=r,a=await d(r,o));return{src:i,el:a}}))}function d(t,e,n){if(e&&e instanceof HTMLImageElement&&!n)return Array.from(e.attributes).forEach(o=>{o.name!=="src"&&e.removeAttribute(o.name)}),e;const r=(o=1)=>new Promise((i,a)=>{const c=document.createElement("img");n&&(c.crossOrigin="anonymous"),c.onload=()=>i(c),c.onerror=()=>{o<2?r(o+1).then(i).catch(a):a(new Error("RESOLVE_IMG_ERR"))},c.src=t});return r()}async function _(t){const e=await(await fetch(t)).blob();return URL.createObjectURL(e)}async function B(t){const e=await fetch(t);return await V(await e.blob())}function V(t){return new Promise((e,n)=>{const r=new FileReader;r.onloadend=()=>e(r.result),r.onerror=n,r.readAsDataURL(t)})}function F(t){const e=document.createElement("canvas"),n=e.getContext("2d"),r=t.naturalWidth,o=t.naturalHeight;return e.width=r,e.height=o,n.drawImage(t,0,0,r,o),e.toDataURL("image/webp")}async function Q({title:t,imgs:e}){document.open(),document.close(),document.documentElement.style.setProperty("background","black"),document.title=t;const n=document.createElement("meta");n.setAttribute("name","viewport"),n.setAttribute("content","width=device-width, initial-scale=1, user-scalable=0"),document.head.appendChild(n);const r=document.createElement("div");r.style.setProperty("display","none");const o=document.createElement("code");o.innerText=e.map(({src:i})=>i).join(" "),r.appendChild(o),document.body.appendChild(r),e.forEach(({el:i})=>i&&document.body.appendChild(i))}async function Y({spec:t,raw:e}){const n=await b({spec:t,raw:e});return await Q({title:e.title.name,imgs:n}),{...e,prev:void 0,imgs:void 0,title:{...e.title,chapters:[]}}}async function b({spec:t,raw:e,isWeb:n}){const r=e.imgs?.length?e.imgs.map(o=>({src:o})):await J(t.reader);if(!r.length)throw new Error("Empty");return await G(r,{isWeb:n})}async function J(t){const e=await R(t),n=await W(e,t);return await Promise.all(n.map(async r=>({src:await U(r),el:r})))}s.loadImages=b,s.strip=Y});
1
+ (function(s,l){typeof exports=="object"&&typeof module<"u"?l(exports):typeof define=="function"&&define.amd?define(["exports"],l):(s=typeof globalThis<"u"?globalThis:s||self,l(s.$mpStripper={}))})(this,function(s){"use strict";var l=Object.defineProperty,M=(t,e,n)=>e in t?l(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,L=(t,e,n)=>(M(t,typeof e!="symbol"?e+"":e,n),n);class m{constructor(){L(this,"elsPool",new Map)}check(e){if(!e||e===document.body)return!0;const n=this.elsPool.get(e);if(n!==void 0)return n;const o=getComputedStyle(e);if(!(o.display!=="none"&&+(o.opacity??"1")>.1))return this.elsPool.set(e,!1),!1;const r=this.check(e.parentElement);return this.elsPool.set(e,r),r}}function h(t,e){let n=[e??document.documentElement];const o=t.split("->");for(let r=0;r<o.length;r++){const i=o[r];n=n.map(a=>Array.from((a.shadowRoot??a).querySelectorAll(i))).flat()}return n}function w(t=0){return new Promise(e=>setTimeout(e,t))}async function f(t,e,n){const o=await n(()=>{t=0});if(o!==void 0)return o;if(!(t<=0))return await new Promise(r=>{setTimeout(async()=>{const i=await f(t-1,e,n);r(i)},e)})}async function T(t,e,n=0){const o=e.root??document.documentElement,r=e.timeoutMs??1e4;return f(e.lazy===!0?r/50:0,50,()=>{const i=e.all===!0?Array.from(o.querySelectorAll(t)):o.querySelector(t)??void 0;return(e.all?!i?.length:!i)?void 0:i})}function u(t){const e=t.getBoundingClientRect();return H(e)}function H({width:t,height:e}){return t>=75&&e>=50&&(t>=200||e>=200)}async function P(t,e){const n=await R(t,e);return y(n?.parentElement??t)}async function R(t,e){if(e?.imgDivs)return await T(e.imgDivs,{lazy:!0,timeoutMs:15e3});const n=Array.from(t.querySelectorAll(e?.imgs?.split("|")[0]??"img,canvas"));if(!n.length)return;const o=new m;return n.find(r=>o.check(r)&&(u(r)||r instanceof HTMLImageElement&&(!r.width||!r.height)))}function y(t){return t===document.documentElement||t.scrollHeight-t.clientHeight>=10&&window.getComputedStyle(t).overflow!=="visible"?t:y(t.parentElement)}function C(t){if(t instanceof HTMLOptionElement){const e=t.parentElement instanceof HTMLOptGroupElement?t.parentElement.parentElement:t.parentElement;if(!e||!(e instanceof HTMLSelectElement))return;const n=t.getAttribute("value")||"";if(e.value===n)return;e.value=n,e.dispatchEvent(new Event("change"));return}t instanceof HTMLAnchorElement&&t.addEventListener("click",e=>e.preventDefault(),{once:!0}),t.click(),t.dispatchEvent(new PointerEvent("pointerdown",{bubbles:!0,cancelable:!0,pointerType:"mouse",button:0})),t.dispatchEvent(new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:window,button:0}))}async function I(t){const e=await q(t),n=t?.content;return n?await f(e?30:10,100,()=>{for(const o of n.split(",")){const r=document.querySelector(o);if(r)return r}})??document.body:document.body}async function q(t){const{lstrip:e,lstripBtn:n}=t||{};if(!e||!n||document.querySelector(e))return!1;const o=await f(50,30,()=>document.querySelector(n));return o?(C(o),await w(),!0):!1}function k(t){return g(t)}async function g(t,e=0,n=0){const o=await I(t);D(o);const r=await P(o,t);await W(r,{stepMs:100,durationMs:1e4});const i=new m,a=t?.imgDivs?$(o,t.imgDivs,i):v(o,i),c=a===void 0;if(c&&n===50){if(!t?.imgDivs&&b(o,i))return o;throw new Error("EMPTY")}return a!==!1?(await w(500),await g(t,0,c?n+1:0),o):e>=1?o:await g(t,e+1)}function D(t){const e=Array.from(t.querySelectorAll('img[loading="lazy"]'));for(const n of e)n.setAttribute("loading","eager");E(t,"data-src"),E(t,"data-url")}function E(t,e){const n=Array.from(t.querySelectorAll(`img[${e}]`));for(const o of n){const r=o.getAttribute(e)?.split(" ")[0];r&&o.src!==r&&(o.src=r)}}function $(t,e,n){const o=h(e,t);if(o.length)return o.some(r=>b(r,n)?!1:v(r,n)!==!1)}function v(t,e){const n=Array.from(t.querySelectorAll("img"));let o=!1;for(const r of n){if(!e.check(r))continue;const i=u(r);if(o=o||i,r.complete){if(i&&!r.naturalWidth&&!r.naturalHeight)throw new Error("IMG_ERR")}else if(i||!r.width||!r.height)return!0}return o?!1:void 0}function b(t,e){return Array.from(t.querySelectorAll("canvas")).some(n=>e.check(n)&&u(n))}async function W(t,{stepMs:e,durationMs:n}){await j(t,n,e)}async function j(t,e,n){t.style.setProperty("scroll-behavior","auto");let o=e;for(;o>0&&t.scrollTop+t.clientHeight+200<t.scrollHeight;){const r=t.scrollHeight-t.scrollTop-t.clientHeight;t.scrollTop+=r/(o/n),o-=n,await w(n)}}async function U(t,e){const n=e?.imgDivs;return n?await O(t,n):await x(t,e)}async function O(t,e){const n=h(e,t),o=[],r=new m;for(const i of n){const a=Array.from(i.querySelectorAll("img,canvas"));for(const c of a)r.check(c)&&u(c)&&o.push(c)}return o}function x(t,e){const n=[],o={},r=new m;return t.querySelectorAll(e?.imgs?.split("|")[0]??"img,canvas").forEach(async i=>{if(!(!r.check(i)||!u(i))){if(i instanceof HTMLImageElement){const a=o[i.src];if(a!==void 0&&a!==-1){n.splice(a,1);return}o[i.src]=n.length}n.push(i)}}),n}async function z(t){return t instanceof HTMLCanvasElement?t.toDataURL("image/jpeg",1):await G(t)}async function G(t){if(!t.src.startsWith("blob:")||await _(t))return t.src;const e=document.createElement("canvas"),n=e.getContext("2d"),o=t.naturalWidth,r=t.naturalHeight;return e.width=o,e.height=r,n?.drawImage(t,0,0,o,r),e.toDataURL("image/jpeg",1)}function _(t){return new Promise(e=>{const n=new Image;n.onload=()=>e(!0),n.onerror=()=>e(!1),n.src=t.src})}function B(t,{isWeb:e}){const n=!e&&navigator.userAgent.toLowerCase().includes("android"),o=!e&&!n;return Promise.all(t.map(async({src:r,el:i})=>{let a,c;const p=r.startsWith("data:");if(n){const S=r.startsWith("blob:");!S&&!p&&(c=await d(r,i)),a=S?await F(r):r}else e?p?a=r:(c=await d(r,i,!0),a=Y(c,o)):p?(a=await V(r),c=await d(a)):(a=r,c=await d(r,i));return{src:a,el:c}}))}function d(t,e,n){if(e&&e instanceof HTMLImageElement&&!n)return Array.from(e.attributes).forEach(r=>{r.name!=="src"&&e.removeAttribute(r.name)}),e;const o=(r=1)=>new Promise((i,a)=>{const c=document.createElement("img");n&&(c.crossOrigin="anonymous"),c.onload=()=>i(c),c.onerror=()=>{r<2?o(r+1).then(i).catch(a):a(new Error("RESOLVE_IMG_ERR"))},c.src=t});return o()}async function V(t){const e=await(await fetch(t)).blob();return URL.createObjectURL(e)}async function F(t){const e=await fetch(t);return await Q(await e.blob())}function Q(t){return new Promise((e,n)=>{const o=new FileReader;o.onloadend=()=>e(o.result),o.onerror=n,o.readAsDataURL(t)})}function Y(t,e){const n=document.createElement("canvas"),o=n.getContext("2d"),r=t.naturalWidth,i=t.naturalHeight;if(n.width=r,n.height=i,o.drawImage(t,0,0,r,i),!e){const a=n.toDataURL("image/webp");if(a!=="data:,")return a}return n.toDataURL("image/jpeg")}async function J({title:t,imgs:e}){document.open(),document.close(),document.documentElement.style.setProperty("background","black"),document.title=t;const n=document.createElement("meta");n.setAttribute("name","viewport"),n.setAttribute("content","width=device-width, initial-scale=1, user-scalable=0"),document.head.appendChild(n);const o=document.createElement("div");o.style.setProperty("display","none");const r=document.createElement("code");r.innerText=e.map(({src:i})=>i).join(" "),o.appendChild(r),document.body.appendChild(o),e.forEach(({el:i})=>i&&document.body.appendChild(i))}async function K({spec:t,raw:e}){const n=await A({spec:t,raw:e});return await J({title:e.title.name,imgs:n}),{...e,prev:void 0,imgs:void 0,title:{...e.title,chapters:[]}}}async function A({spec:t,raw:e,isWeb:n}){const o=e.imgs?.length?e.imgs.map(r=>({src:r})):await N(t.reader);if(!o.length)throw new Error("Empty");return await B(o,{isWeb:n})}async function N(t){const e=await k(t),n=await U(e,t);return await Promise.all(n.map(async o=>({src:await z(o),el:o})))}s.loadImages=A,s.strip=K});