Fix VCPVMP (#15338)

* Fix VCPVMP

* Add update_strategy
This commit is contained in:
seew3l 2023-02-13 05:33:41 -05:00 committed by GitHub
parent a3df32a6b2
commit 049a67943a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 90 additions and 752 deletions

View File

@ -5,7 +5,7 @@ ext {
extName = 'VCPVMP'
pkgNameSuffix = "es.vcpvmp"
extClass = '.VCPVMPFactory'
extVersionCode = 6
extVersionCode = 7
isNsfw = true
}

View File

@ -6,6 +6,7 @@ import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.model.UpdateStrategy
import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
import okhttp3.Request
@ -27,25 +28,36 @@ open class VCPVMP(override val name: String, override val baseUrl: String) : Par
override fun latestUpdatesNextPageSelector() = throw UnsupportedOperationException("Not used")
override fun popularMangaRequest(page: Int) = GET("$baseUrl/page/$page", headers)
override fun popularMangaRequest(page: Int) = GET("$baseUrl/$urlSuffix/page/$page", headers)
override fun popularMangaSelector() = "div#ccontent div.gallery"
override fun popularMangaSelector() = "div.blog-list-items > div.entry"
override fun popularMangaFromElement(element: Element) = SManga.create().apply {
element.select("a.cover").first()!!.let {
element.select("a.popimg").first()!!.let {
setUrlWithoutDomain(it.attr("href"))
title = it.select("div.caption").text()
title = it.select("img").attr("alt")
thumbnail_url = it.select("img").attr("abs:src").substringBefore("?")
}
}
override fun popularMangaNextPageSelector() = "ul.pagination > li.active + li"
override fun popularMangaNextPageSelector() = "div.wp-pagenavi > span.current + a"
override fun mangaDetailsParse(document: Document) = SManga.create().apply {
document.select("div#catag").let {
genre = document.select("div#tagsin > a[rel=tag]").joinToString { it.text() }
status = SManga.UNKNOWN
thumbnail_url = document.select(pageListSelector).firstOrNull()?.attr("abs:src")
document.select("div.tax_post").let {
status = SManga.COMPLETED
update_strategy = UpdateStrategy.ONLY_FETCH_ONCE
val genreList = document.select("div.tax_box:has(div.title:contains(Etiquetas)) a[rel=tag]")
genre = genreList.joinToString { genre ->
val text = genre.text().replaceFirstChar { it.uppercase() }
val slug = genre.attr("href").replace("$baseUrl/$genreSuffix/", "")
val newPair = Pair(text, slug)
if (!genres.contains(newPair)) {
genres += newPair
}
text
}
}
}
@ -63,38 +75,38 @@ open class VCPVMP(override val name: String, override val baseUrl: String) : Par
override fun chapterListSelector() = throw UnsupportedOperationException("Not used")
override fun chapterFromElement(element: Element) = throw UnsupportedOperationException("Not used")
protected open val pageListSelector = "div.comicimg img"
protected open val pageListSelector = "div.wp-content p > img"
override fun pageListParse(document: Document): List<Page> = document.select(pageListSelector)
.mapIndexed { i, img -> Page(i, "", img.attr("abs:src")) }
override fun imageUrlParse(document: Document) = throw UnsupportedOperationException("Not used")
protected open val urlSuffix = ""
protected open val genreSuffix = ""
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
var url = baseUrl.toHttpUrlOrNull()!!.newBuilder()
val isOnVCP = (baseUrl == "https://vercomicsporno.com")
url.addPathSegments("page")
url.addPathSegments(page.toString())
url.addQueryParameter("s", query)
if (query.isNotBlank()) {
url = "$baseUrl/$urlSuffix".toHttpUrlOrNull()!!.newBuilder()
url.addPathSegments("page")
url.addPathSegments(page.toString())
url.addQueryParameter("s", query)
return GET(url.build().toString(), headers)
}
filters.forEach { filter ->
when (filter) {
is Genre -> {
if (filter.toUriPart().isNotEmpty()) {
url = baseUrl.toHttpUrlOrNull()!!.newBuilder()
url.addPathSegments(if (isOnVCP) "tags" else "genero")
url.addPathSegments(genreSuffix)
url.addPathSegments(filter.toUriPart())
url.addPathSegments("page")
url.addPathSegments(page.toString())
}
}
is Category -> {
if (filter.toUriPart().isNotEmpty()) {
url.addQueryParameter("cat", filter.toUriPart())
}
}
else -> {}
}
}
@ -108,377 +120,23 @@ open class VCPVMP(override val name: String, override val baseUrl: String) : Par
override fun searchMangaNextPageSelector() = popularMangaNextPageSelector()
override fun getFilterList() = FilterList(
Genre(),
Filter.Separator(),
Category(),
)
protected open var genres = arrayOf(Pair("Ver todos", ""))
// Array.from(document.querySelectorAll('div.tagcloud a.tag-cloud-link')).map(a => `Pair("${a.innerText}", "${a.href.replace('https://vercomicsporno.com/etiqueta/', '')}")`).join(',\n')
// from https://vercomicsporno.com/
private class Genre : UriPartFilter(
"Filtrar por categoría",
arrayOf(
Pair("Ver todos", ""),
Pair("Anales", "anales"),
Pair("Comics Porno", "comics-porno"),
Pair("Culonas", "culonas"),
Pair("Doujins", "doujins"),
Pair("Furry", "furry"),
Pair("Incesto", "incesto"),
Pair("Lesbianas", "lesbianas"),
Pair("Madre Hijo", "madre-hijo"),
Pair("Mamadas", "mamadas"),
Pair("Manga Hentai", "manga-hentai"),
Pair("Milfs", "milfs"),
Pair("Milftoon", "milftoon-comics"),
Pair("Orgias", "orgias"),
Pair("Parodias Porno", "parodias-porno"),
Pair("Rubias", "rubias"),
Pair("Series De Tv", "series-de-tv"),
Pair("Tetonas", "tetonas"),
Pair("Trios", "trios"),
Pair("Videojuegos", "videojuegos"),
Pair("Yuri", "yuri-2"),
),
)
override fun getFilterList(): FilterList {
val filters = listOf(
Filter.Header("Los filtros serán ignorados si la búsqueda no está vacía."),
Filter.Separator(),
Genre(genres),
)
// Array.from(document.querySelectorAll('form select#cat option.level-0')).map(a => `Pair("${a.innerText}", "${a.value}")`).join(',\n')
return FilterList(filters)
}
// Array.from(document.querySelectorAll('div.tagcloud a.tag-cloud-link')).map(a => `Pair("${a.innerText}", "${a.href.replace('https://vercomicsporno.com/etiquetas/', '')}")`).join(',\n')
// from https://vercomicsporno.com/
private class Category : UriPartFilter(
"Filtrar por categoría",
arrayOf(
Pair("Ver todos", ""),
Pair("5ish", "2853"),
Pair("69", "1905"),
Pair("8muses", "856"),
Pair("Aarokira", "2668"),
Pair("ABBB", "3058"),
Pair("Absurd Stories", "2846"),
Pair("Adam 00", "1698"),
Pair("Aeolus", "2831"),
Pair("Afrobull", "3032"),
Pair("Alcor", "2837"),
Pair("angstrom", "2996"),
Pair("Anonymouse", "2851"),
Pair("Aoino Broom", "3086"),
Pair("Aquarina", "2727"),
Pair("Arabatos", "1780"),
Pair("Aroma Sensei", "2663"),
Pair("Art of jaguar", "167"),
Pair("Atreyu Studio", "3040"),
Pair("Awaerr", "2921"),
Pair("Bakuhaku", "2866"),
Pair("Bashfulbeckon", "2841"),
Pair("Bear123", "2814"),
Pair("Black and White", "361"),
Pair("Black House", "3044"),
Pair("Blackadder", "83"),
Pair("Blacky Chan", "2901"),
Pair("Blargsnarf", "2728"),
Pair("BlueVersusRed", "2963"),
Pair("Bnouait", "2706"),
Pair("Born to Die", "2982"),
Pair("Buena trama", "2579"),
Pair("Buru", "2736"),
Pair("Cagri", "2751"),
Pair("CallMePlisskin", "2960"),
Pair("Catfightcentral", "2691"),
Pair("cecyartbytenshi", "2799"),
Pair("Cheka.art", "2999"),
Pair("Cherry Mouse Street", "2891"),
Pair("cherry-gig", "2679"),
Pair("Chochi", "3085"),
Pair("ClaraLaine", "2697"),
Pair("Clasicos", "2553"),
Pair("Cobatsart", "2729"),
Pair("Comics porno", "6"),
Pair("Comics Porno 3D", "1910"),
Pair("Comics porno mexicano", "511"),
Pair("Comics XXX", "119"),
Pair("CrazyDad3d", "2657"),
Pair("Creeeen", "2922"),
Pair("Croc", "1684"),
Pair("Crock", "3004"),
Pair("Cyberunique", "2801"),
Pair("Danaelus", "3080"),
Pair("DankoDeadZone", "3055"),
Pair("Darkhatboy", "2856"),
Pair("DarkShadow", "2845"),
Pair("DarkToons Cave", "2893"),
Pair("Dasan", "2692"),
Pair("David Willis", "2816"),
Pair("Dboy", "3094"),
Pair("Dconthedancefloor", "2905"),
Pair("Degenerate", "2923"),
Pair("Diathorn", "2894"),
Pair("Dicasty", "2983"),
Pair("Dimedrolly", "3017"),
Pair("Dirtycomics", "2957"),
Pair("DMAYaichi", "2924"),
Pair("Dony", "2769"),
Pair("Doxy", "2698"),
Pair("Drawnsex", "9"),
Pair("DrCockula", "2708"),
Pair("Dude-doodle-do", "2984"),
Pair("ebluberry", "2842"),
Pair("Ecchi Kimochiii", "1948"),
Pair("EcchiFactor 2.0", "1911"),
Pair("Eirhjien", "2817"),
Pair("Eliana Asato", "2878"),
Pair("Ender Selya", "2774"),
Pair("Enessef-UU", "3124"),
Pair("ERN", "3010"),
Pair("Erotibot", "2711"),
Pair("Escoria", "2945"),
Pair("Evil Rick", "2946"),
Pair("FearingFun", "3057"),
Pair("Felsala", "2138"),
Pair("Fetishhand", "2932"),
Pair("Fikomi", "2887"),
Pair("Fixxxer", "2737"),
Pair("FLBL", "3050"),
Pair("Folo", "2762"),
Pair("Forked Tail", "2830"),
Pair("Fotonovelas XXX", "320"),
Pair("Freckles", "3095"),
Pair("Fred Perry", "2832"),
Pair("Freehand", "400"),
Pair("FrozenParody", "1766"),
Pair("Fuckit", "2883"),
Pair("Funsexydragonball", "2786"),
Pair("Futanari", "1732"),
Pair("Futanari Fan", "2787"),
Pair("Garabatoz", "2877"),
Pair("Gerph", "2889"),
Pair("GFI", "3123"),
Pair("Ghettoyouth", "2730"),
Pair("Gilftoon", "2619"),
Pair("Glassfish", "84"),
Pair("GNAW", "3084"),
Pair("Goat-Head", "3011"),
Pair("Greivs", "3136"),
Pair("Grigori", "2775"),
Pair("Grose", "2876"),
Pair("Gundam888", "2681"),
Pair("Hagfish", "2599"),
Pair("Hary Draws", "2752"),
Pair("Hioshiru", "2673"),
Pair("Hmage", "2822"),
Pair("Horny-Oni", "2947"),
Pair("Hoteggs102", "2925"),
Pair("InCase", "1927"),
Pair("Incest Candy", "3126"),
Pair("Incesto 3d", "310"),
Pair("Incognitymous", "2693"),
Pair("Inker Shike", "2895"),
Pair("Interracial", "364"),
Pair("Inusen", "2854"),
Pair("Inuyuru", "2699"),
Pair("isakishi", "2721"),
Pair("Jadenkaiba", "2064"),
Pair("javisuzumiya", "2823"),
Pair("Jay Marvel", "2135"),
Pair("Jay Naylor", "174"),
Pair("Jellcaps", "2818"),
Pair("Jhon Person", "135"),
Pair("Jitsch", "2835"),
Pair("Jkr", "718"),
Pair("JLullaby", "2680"),
Pair("John North", "2927"),
Pair("JohnJoseco", "2906"),
Pair("JooJoo", "3026"),
Pair("Joru", "2798"),
Pair("JZerosk", "2757"),
Pair("K/DA", "2667"),
Pair("Ka-iN", "2874"),
Pair("Kadath", "2700"),
Pair("Kannel", "2836"),
Pair("Kaos", "1994"),
Pair("Karmagik", "2943"),
Pair("Karmakaze", "2968"),
Pair("Katoto Chan", "2916"),
Pair("Kimmundo", "2669"),
Pair("Kinkamashe", "2873"),
Pair("Kinkymation", "2733"),
Pair("Kirtu", "107"),
Pair("Kiselrok", "3075"),
Pair("Kogeikun", "2738"),
Pair("KrasH", "2958"),
Pair("Krazy Krow", "2848"),
Pair("Kumi Pumi", "2771"),
Pair("l", "1"),
Pair("Lady Astaroth", "2722"),
Pair("LaundryMom", "2926"),
Pair("LawyBunne", "2744"),
Pair("Laz", "2933"),
Pair("Lemon Font", "2750"),
Pair("Lewdua", "2734"),
Pair("LilithN", "2991"),
Pair("Locofuria", "2578"),
Pair("Loonyjams", "2935"),
Pair("Los Simpsons XXX", "94"),
Pair("Lumo", "2858"),
Pair("MAD-Project", "2890"),
Pair("Magnificent Sexy Gals", "2942"),
Pair("Manaworld", "85"),
Pair("Manaworldcomics", "164"),
Pair("Manga hentai", "152"),
Pair("Maoukouichi", "2910"),
Pair("Marcos Crot", "3025"),
Pair("Matemi", "2741"),
Pair("Mavruda", "2865"),
Pair("MCC", "2843"),
Pair("Meesh", "2740"),
Pair("Meinfischer", "3063"),
Pair("Melkor Mancin", "169"),
Pair("Meowwithme", "2936"),
Pair("Metal Owl", "2694"),
Pair("Miles-DF", "2864"),
Pair("Milffur", "140"),
Pair("Milftoon", "13"),
Pair("Milftoonbeach", "1712"),
Pair("Milky Bunny", "3066"),
Pair("MissBehaviour", "2997"),
Pair("Mojarte", "1417"),
Pair("Moose", "2939"),
Pair("morganagod", "2917"),
Pair("Moval-X", "2785"),
Pair("Mr. E Comics", "2562"),
Pair("Mr. Estella", "3068"),
Pair("MrPotatoParty", "2712"),
Pair("My Bad Bunny", "2989"),
Pair("Myster Box", "2670"),
Pair("Nastee34", "2930"),
Pair("Neal D Anderson", "2725"),
Pair("nearphotison", "3039"),
Pair("nicekotatsu", "2749"),
Pair("nihaotomita", "2998"),
Pair("Nikipostat", "2824"),
Pair("NiniiDawns", "2937"),
Pair("Nisego", "2768"),
Pair("Norasuko", "2800"),
Pair("Noticias", "1664"),
Pair("nsfyosu", "2859"),
Pair("Nyoronyan", "2758"),
Pair("NyuroraXBigdon", "3134"),
Pair("O-tako Studios", "2723"),
Pair("Oh!Nice", "2896"),
Pair("OldFlameShotgun", "2884"),
Pair("Otomo-San", "2788"),
Pair("Pack Imagenes", "654"),
Pair("Pak009", "2819"),
Pair("Palcomix", "48"),
Pair("Pandora Box", "155"),
Pair("peculiart", "3000"),
Pair("Pegasus Smith", "2682"),
Pair("Personalami", "2789"),
Pair("PeterAndWhitney", "2860"),
Pair("Pia-Sama", "2797"),
Pair("PinkPawg", "2861"),
Pair("Pinktoon", "2868"),
Pair("Pixelboy", "2840"),
Pair("pleasure castle", "3081"),
Pair("Pokeporn", "1914"),
Pair("Polyle", "2952"),
Pair("Poonet", "648"),
Pair("Prism Girls", "1926"),
Pair("Privados", "858"),
Pair("PTDMCA", "2949"),
Pair("QTsunade", "2770"),
Pair("quad", "3051"),
Pair("Quarko-Muon", "2872"),
Pair("Queenchikki", "3062"),
Pair("QueenComplex", "2951"),
Pair("QueenTsunade", "2811"),
Pair("Queervanire", "2871"),
Pair("r_ex", "2898"),
Pair("Raidon-san", "2962"),
Pair("RanmaBooks", "1974"),
Pair("Razter", "2689"),
Pair("recreator 2099", "2671"),
Pair("Redboard", "2803"),
Pair("reddanmanic", "2867"),
Pair("Reinbach", "2888"),
Pair("Relatedguy", "2829"),
Pair("ReloadHB", "3012"),
Pair("Revolverwing", "2790"),
Pair("RickFoxxx", "1411"),
Pair("Rino99", "2934"),
Pair("Ripperelite", "2820"),
Pair("RobCiveCat", "2739"),
Pair("RogueArtLove", "2812"),
Pair("Rousfairly", "2776"),
Pair("Rukasu", "2778"),
Pair("Rupalulu", "3135"),
Pair("SakuSaku Panic", "2907"),
Pair("SaMelodii", "2701"),
Pair("SanePerson", "2683"),
Pair("SatyQ", "3024"),
Pair("Saurian", "2950"),
Pair("Selrock", "2886"),
Pair("Shadako26", "2780"),
Pair("Shadbase", "1713"),
Pair("Shadow2007x", "2781"),
Pair("ShadowFenrir", "3132"),
Pair("Sheela", "2690"),
Pair("Sillygirl", "2129"),
Pair("Sin Porno", "2266"),
Pair("Sinner", "2897"),
Pair("Sinope", "2985"),
Pair("Sirkowski", "2802"),
Pair("Skulltitti", "2918"),
Pair("SleepyGimp", "2911"),
Pair("Slipshine", "2791"),
Pair("Slypon", "2912"),
Pair("Smutichi", "2821"),
Pair("Snaketrap", "2940"),
Pair("Sorje", "2961"),
Pair("Spirale", "2870"),
Pair("Stereoscope Comics", "3054"),
Pair("Stormfeder", "2759"),
Pair("Sun1Sol", "2782"),
Pair("SunsetRiders7", "1705"),
Pair("Super Melons", "2850"),
Pair("Taboolicious", "88"),
Pair("Tease Comix", "2948"),
Pair("Tekuho", "2601"),
Pair("Tentabat", "2862"),
Pair("the dark mangaka", "2783"),
Pair("The Pit", "2792"),
Pair("thegoodbadart", "2684"),
Pair("TheKite", "2825"),
Pair("Theminus", "2828"),
Pair("TheNewGuy", "3018"),
Pair("TheOtherHalf", "2666"),
Pair("Tim Fischer", "2763"),
Pair("Totempole", "2746"),
Pair("TotesFleisch8", "2764"),
Pair("Tovio Rogers", "3056"),
Pair("Tracy Scops", "2648"),
Pair("Transmorpher DDS", "2672"),
Pair("Turtlechan", "2796"),
Pair("TvMx", "2793"),
Pair("Urakan", "3043"),
Pair("Uzonegro", "2695"),
Pair("V3rnon", "2973"),
Pair("Vaiderman", "3031"),
Pair("VentZX", "2575"),
Pair("Vercomicsporno", "1376"),
Pair("Watsup", "2863"),
Pair("Whargleblargle", "2844"),
Pair("Wherewolf", "2685"),
Pair("Witchking00", "1815"),
Pair("Wulfsaga", "2931"),
Pair("Xamrock", "2686"),
Pair("Xierra099", "2702"),
Pair("Xkit", "2703"),
Pair("Y3df", "86"),
Pair("Yamamoto", "3019"),
Pair("Yusioka", "3082"),
Pair("Zillionaire", "2807"),
Pair("Zzomp", "252"),
Pair("ZZZ Comics", "2839"),
),
private class Genre(genres: Array<Pair<String, String>>) : UriPartFilter(
"Filtrar por género",
genres,
)
}

View File

@ -3,8 +3,6 @@ package eu.kanade.tachiyomi.extension.es.vcpvmp
import eu.kanade.tachiyomi.source.Source
import eu.kanade.tachiyomi.source.SourceFactory
import eu.kanade.tachiyomi.source.model.Filter
import eu.kanade.tachiyomi.source.model.SManga
import org.jsoup.nodes.Element
class VCPVMPFactory : SourceFactory {
override fun createSources(): List<Source> = listOf(
@ -15,381 +13,63 @@ class VCPVMPFactory : SourceFactory {
class VCP : VCPVMP("VCP", "https://vercomicsporno.com") {
override fun popularMangaSelector() = "div.blog-list-items header ~ div.entry"
override val pageListSelector = "div.wp-content img"
override fun popularMangaNextPageSelector() = "span.current + a"
override fun popularMangaFromElement(element: Element) = SManga.create().apply {
element.select("a.popimg").first()!!.let {
setUrlWithoutDomain(it.attr("href"))
it.select("figure img").first()!!.let { img ->
title = img.attr("alt")
thumbnail_url = img.attr("abs:src")
}
}
}
override val urlSuffix = "comics-porno"
override val genreSuffix = "etiquetas"
override var genres =
arrayOf(
Pair("Ver todos", ""),
Pair("Anales", "anales"),
Pair("Anime", "anime"),
Pair("Aprobado por c1b3r3y3", "aprobado-por-c1b3r3y3"),
Pair("Comics Incesto", "incesto-xxx"),
Pair("Culonas", "culonas"),
Pair("Furry", "furry-3"),
Pair("Futanari", "futanari-2"),
Pair("Lesbianas", "lesbianas"),
Pair("Madre Hijo", "madre-hijo"),
Pair("Mamadas", "mamadas"),
Pair("Manga Hentai", "manga-hentai-3"),
Pair("Masturbaciones", "madre-hijo"),
Pair("Milfs", "milfs-xxx"),
Pair("Orgias", "orgias"),
Pair("Parodias Porno", "parodias-porno-xxx"),
Pair("Rubias", "rubias"),
Pair("Tetonas", "tetonas"),
Pair("Trios", "trios"),
Pair("Videojuegos", "videojuegos-2"),
Pair("Yuri", "yuri-xxx"),
)
}
class VMP : VCPVMP("VMP", "https://vermangasporno.com") {
override val pageListSelector = "div.comicimg img[src^=$baseUrl]"
// Array.from(document.querySelectorAll('div.tagcloud a.tag-cloud-link'))
// .map(a => `Pair("${a.innerText}", "${a.href.replace('https://vermangasporno.com/genero/', '')}")`).join(',\n')
// from https://vermangasporno.com/
private class Genre : UriPartFilter(
"Filtrar por generos",
override val urlSuffix = "xxx"
override val genreSuffix = "genero"
override var genres =
arrayOf(
Pair("Ver todos", ""),
Pair("Ahegao", "ahegao"),
Pair("Anal", "anal"),
Pair("Big Ass", "big-ass"),
Pair("Big Breasts", "big-breasts"),
Pair("Blowjob", "blowjob"),
Pair("Cheating", "cheating"),
Pair("Colegiala", "colegiala"),
Pair("Fullcolor", "fullcolor"),
Pair("Creampie", "creampie"),
Pair("Cum", "cum"),
Pair("Group", "group"),
Pair("Incest", "incest"),
Pair("loli", "loli"),
Pair("Lolicon", "lolicon"),
Pair("Hairy", "hairy"),
Pair("Kissing", "kissing"),
Pair("Milf", "milf"),
Pair("Mosaic Censorship", "mosaic-censorship"),
Pair("Nakadashi", "nakadashi"),
Pair("Paizuri", "paizuri"),
Pair("Schoolgirl Uniform", "schoolgirl-uniform"),
Pair("Sin Censura", "sin-censura"),
Pair("Sole Female", "sole-female"),
Pair("Sole Male", "sole-male"),
Pair("Squirting", "squirting"),
Pair("Stockings", "stockings"),
Pair("Tetona", "tetona"),
Pair("Tetonas", "tetonas"),
),
)
// Array.from(document.querySelectorAll('form select#cat option.level-0')).map(a => `Pair("${a.innerText}", "${a.value}")`).join(',\n')
// from https://vermangasporno.com/
private class Category : UriPartFilter(
"Filtrar por categoría",
arrayOf(
Pair("Ver todos", ""),
Pair("3×3 Eyes", "1325"),
Pair("Accel World", "175"),
Pair("Aikatsu!", "1983"),
Pair("Akame ga Kill!", "2235"),
Pair("Akaruku Tanoshiku Kimochiyoku", "2268"),
Pair("Amagami", "1194"),
Pair("Amagi Brilliant Park", "209"),
Pair("Amano Megumi ha Sukidarake!", "888"),
Pair("Ane Doki", "1121"),
Pair("Angel Beats!", "176"),
Pair("Ano Hi Mita Hana no Namae wo Bokutachi wa Mada Shiranai", "1097"),
Pair("Another", "177"),
Pair("Ansatsu Kyoushitsu", "2"),
Pair("Aoi Hana", "1256"),
Pair("Aquarion EVOL", "2089"),
Pair("Arcana Heart", "934"),
Pair("Arslan senki", "2068"),
Pair("Asobi ni Iku yo!", "1280"),
Pair("Azur Lane", "2076"),
Pair("Baka to Test to Shoukanjuu", "1202"),
Pair("Baka to Test to Shoukanjuu | Autor: Kurosawa Kiyotaka", "1201"),
Pair("Bakemonogatari", "931"),
Pair("Bakuman", "1259"),
Pair("BanG Dream!", "1863"),
Pair("Batman", "184"),
Pair("bijin onna joushi takizawa-san", "2104"),
Pair("Bishoujo Senshi Sailor Moon", "745"),
Pair("Bleach", "82"),
Pair("Blend S", "2102"),
Pair("Blood+", "189"),
Pair("Boku no Hero Academia", "245"),
Pair("Boku wa tomodachi ga sukunai", "674"),
Pair("Bokutachi wa Benkyou ga Dekinai", "2180"),
Pair("Boruto", "2071"),
Pair("Capcom", "251"),
Pair("Charlotte", "1444"),
Pair("Clannad", "102"),
Pair("Claymore", "170"),
Pair("Code Geass", "171"),
Pair("Cyberbots", "981"),
Pair("Dagashi Kashi", "733"),
Pair("Danganronpa", "92"),
Pair("Danmachi", "1042"),
Pair("Darker than Black", "995"),
Pair("Darker than Black: The Black Contractor", "1086"),
Pair("Darkstalkers", "1996"),
Pair("Date A Live", "670"),
Pair("Dead Or Alive", "233"),
Pair("Deadman Wonderland", "900"),
Pair("Denpa Onna to Seishun Otoko", "952"),
Pair("Dokidoki! Precure", "1919"),
Pair("Dr. Slump", "977"),
Pair("Dragon Quest", "3"),
Pair("dragon quest iii", "239"),
Pair("Dragonball", "4"),
Pair("Dragons Crown", "1064"),
Pair("DREAM C CLUB", "941"),
Pair("Dungeon Ni Deai O Motomeru No Wa Machigatteiru Darou Ka", "226"),
Pair("Dungeon ni Deai wo Motomeru no wa Machigatteiru Darou ka", "127"),
Pair("Dungeon Travelers", "1951"),
Pair("Dynasty Warriors", "1885"),
Pair("Enen no Shouboutai", "2169"),
Pair("Eromanga Sensei", "901"),
Pair("Evangelion", "172"),
Pair("Fairy Tail", "348"),
Pair("Fantasy Earth Zero", "1433"),
Pair("Fate Kaleid Liner Prisma Illya", "237"),
Pair("Fate Stay Night", "235"),
Pair("Fate/Grand Order", "891"),
Pair("Fate/hollow ataraxia", "1294"),
Pair("Fate/stay night", "722"),
Pair("Final Fantasy", "591"),
Pair("Final Figh", "1215"),
Pair("Freezing", "190"),
Pair("Full Metal Daemon: Muramasa", "122"),
Pair("Full Metal Panic", "167"),
Pair("Fullmetal Alchemist", "118"),
Pair("Furry", "1972"),
Pair("Gabriel Dropout", "884"),
Pair("Gakkou Gurashi!", "1047"),
Pair("Gate: Jieitai Kano Chi nite Kaku Tatakaeri", "761"),
Pair("Gate: Jieitai Kanochi nite", "241"),
Pair("Gate: Jieitai Kanochi nite Kaku Tatakaeri", "243"),
Pair("Gegege no Kitarou", "1862"),
Pair("Getsuyoubi no Tawawa", "250"),
Pair("Ghost In The Shell", "1898"),
Pair("Girls und Panzer", "904"),
Pair("Goblin Slayer", "2143"),
Pair("Gochuumon wa Usagi Desu ka?", "5"),
Pair("Golden Kamuy", "2227"),
Pair("Gotoubun no Hanayome", "2251"),
Pair("Granblue Fantasy", "257"),
Pair("Grisaia no Kajitsu", "6"),
Pair("Guilty Gear", "727"),
Pair("Gundam 00", "857"),
Pair("Gundam Build Divers", "2137"),
Pair("Gundam Build Fighters", "7"),
Pair("Gundam SEED Destiny", "103"),
Pair("Hanasaku Iroha", "1104"),
Pair("Hanayamata", "1947"),
Pair("Hatsujou no Genri", "2139"),
Pair("Hatsukoi Delusion", "1930"),
Pair("Hayate no Gotoku!", "595"),
Pair("He Is My Master", "104"),
Pair("Hentai Ouji to Warawanai Neko.", "8"),
Pair("Hibike! Euphonium", "9"),
Pair("Highschool Dead", "168"),
Pair("Highschool DxD", "105"),
Pair("Highschool of the Dead", "937"),
Pair("Himouto! Umaru-chan", "1039"),
Pair("Hokenshitsu no Shinigami", "1105"),
Pair("Honkai Gakuen", "2165"),
Pair("Hyperdimension Neptunia", "1567"),
Pair("Ichigo 100%", "151"),
Pair("Incesto", "182"),
Pair("Infinite Stratos", "786"),
Pair("Isekai Maou to Shoukan Shoujo no Dorei Majutsu", "2170"),
Pair("K-ON", "150"),
Pair("Kaguya Luna", "2249"),
Pair("Kaguya-sama wa Kokurasetai", "2157"),
Pair("Kaichou wa Maid-sama!", "1129"),
Pair("Kaiten Mutenmaru", "911"),
Pair("Kami Nomi zo Shiru Sekai", "1091"),
Pair("Kämpfer", "1120"),
Pair("Kangoku Gakuen", "1036"),
Pair("Kanon", "65"),
Pair("Kantai Collection: KanColle", "10"),
Pair("Kara no Kyoukai", "731"),
Pair("Kenichi", "96"),
Pair("Keroro Gunsou", "11"),
Pair("Kidou Senshi Gundam 00", "960"),
Pair("Kill la Kill", "1851"),
Pair("Kimetsu no Yaiba", "2149"),
Pair("Kimi ni Todoke", "1127"),
Pair("Kimi no Na wa", "2147"),
Pair("KimiKiss", "1182"),
Pair("King of fighter", "155"),
Pair("King of Fighters", "788"),
Pair("Kiratto Pri Chan", "2182"),
Pair("Kobayashi-san-chi no Maid Dragon", "299"),
Pair("Koihime Musou", "1188"),
Pair("Kono Subarashii Sekai Ni Syukufuku O", "259"),
Pair("Kono Subarashii Sekai ni Syukufuku o!", "853"),
Pair("Konosuba!", "2128"),
Pair("Kurogane no Linebarrels", "1150"),
Pair("Kyoukai Senjou no Horizon", "660"),
Pair("Ladies Versus Butlers", "204"),
Pair("Little Witch Academia", "2127"),
Pair("Love Hina", "94"),
Pair("Love Live Sunshine", "207"),
Pair("Love Live!", "716"),
Pair("Love Live! School Idol Project", "12"),
Pair("Love Plus", "1013"),
Pair("Lucky Star", "893"),
Pair("Macross Frontier", "157"),
Pair("Mahou Sensei Negima", "61"),
Pair("Mahou Sensei Negima!", "1331"),
Pair("Mahou Shoujo Lyrical Nanoha", "13"),
Pair("Mahouka Koukou no Rettousei", "93"),
Pair("Mai-Otome", "2271"),
Pair("Maji de Watashi ni Koi Shinasai!", "1218"),
Pair("Maria-sama ga Miteru", "902"),
Pair("Mayo Chiki!", "137"),
Pair("Medaka Box", "615"),
Pair("Minecraft", "2098"),
Pair("Mirai Nikki", "1138"),
Pair("Mitsuboshi Colors", "2307"),
Pair("Mobile Suit Gundam Tekketsu No Orphans", "297"),
Pair("Mondaiji-tachi ga Isekai Kara Kuru Sou Desu yo?", "1403"),
Pair("Monster Hunter", "1742"),
Pair("Monster Musume no Iru Nichijou", "683"),
Pair("Moyashimon", "1509"),
Pair("Musaigen no Phantom World", "298"),
Pair("Nagi no Asukara", "1830"),
Pair("Nanatsu no Taizai", "2299"),
Pair("Naruto", "14"),
Pair("Nazo no Kanojo X", "1247"),
Pair("Neon Genesis Evangelion", "62"),
Pair("Nisekoi", "246"),
Pair("Nyan Koi!", "978"),
Pair("Oboro Muramasa", "1116"),
Pair("Ojousama to Maid no Midarana Seikatsu", "1931"),
Pair("Okusan", "998"),
Pair("One Piece", "68"),
Pair("One Punch Man", "188"),
Pair("Onegai Teacher", "1076"),
Pair("Ookami to Koushinryou", "958"),
Pair("Ookami-san to Shichinin no Nakama-tachi", "1244"),
Pair("Ore no Imouto ga Konna ni Kawaii Wake ga Nai", "328"),
Pair("Original", "15"),
Pair("Oshiete! Galko-chan", "2136"),
Pair("Overlord", "686"),
Pair("Overwatch", "260"),
Pair("Panty & Stocking with Garterbelt", "1176"),
Pair("Papa no Iu Koto o Kikinasai!", "976"),
Pair("Parasyte", "1911"),
Pair("Persona 3", "255"),
Pair("Persona 4", "953"),
Pair("Persona 5", "2265"),
Pair("Pokemon", "148"),
Pair("Princess crown", "983"),
Pair("Princess Lover!", "1175"),
Pair("Prison School", "164"),
Pair("Psycho-Pass", "2275"),
Pair("Puella Magi Madoka Magica", "948"),
Pair("Queens Blade", "656"),
Pair("Ragnarok Online", "1243"),
Pair("Rakudai Kishi no Cavalry", "765"),
Pair("Rakuen Tsuihou -Expelled from Paradise-", "1045"),
Pair("Ranma 1/2", "767"),
Pair("Re:Zero kara Hajimeru Isekai Seikatsu", "161"),
Pair("Real Drive", "261"),
Pair("Rebuild of evangelion", "149"),
Pair("Renkin San-kyuu Magical? Pokaan", "737"),
Pair("Resident Evil", "1118"),
Pair("Rockman DASH", "1242"),
Pair("Rokka no Yuusha", "1600"),
Pair("Rosario + Vampire", "1204"),
Pair("Rosario Vampire", "234"),
Pair("Rozen Maiden", "1240"),
Pair("Rurouni Kenshin", "1520"),
Pair("Saber Marionette", "73"),
Pair("Saenai Heroine no Sodatekata", "926"),
Pair("Sailor Moon", "186"),
Pair("Saint Seiya", "66"),
Pair("Saki", "258"),
Pair("School Rumble", "191"),
Pair("Sekirei", "180"),
Pair("Sekiro: Shadows Die Twice", "2152"),
Pair("Serial Experiments Lain", "1498"),
Pair("Seto No Hanayome", "219"),
Pair("Shadowverse", "1957"),
Pair("Shantae", "1050"),
Pair("Shijou Saikyou no Deshi Kenichi", "1144"),
Pair("Shingeki no Kyojin", "169"),
Pair("Shingetsutan Tsukihime", "16"),
Pair("Shinmai Fukei Kiruko-san", "2207"),
Pair("Shinmai Maou no Testament", "17"),
Pair("Shinra Bansho", "18"),
Pair("Shinrabansho", "2063"),
Pair("Shinrabanshou", "1979"),
Pair("Shinryaku! Ika Musume", "1160"),
Pair("shirokuma cafe", "2074"),
Pair("Shitsuke Ai", "1630"),
Pair("Shokugeki no Soma", "152"),
Pair("Smile Precure", "858"),
Pair("Smile PreCure!", "1841"),
Pair("SNK", "252"),
Pair("Sora no Otoshimono", "20"),
Pair("Soul Eater", "158"),
Pair("Space Dandy", "1826"),
Pair("Spice and wolf", "154"),
Pair("Spider-man", "2140"),
Pair("Star Twinkle PreCure", "2310"),
Pair("Steins;Gate", "992"),
Pair("Street Fighter", "101"),
Pair("Strike Witches", "642"),
Pair("Subarashii Sekai ni Shukufuku wo!", "739"),
Pair("Suite Precure♪", "145"),
Pair("Super Sonico", "1102"),
Pair("Super Street Fighter IV", "802"),
Pair("Suzumiya Haruhi No Yuuutsu", "314"),
Pair("Sword art online", "147"),
Pair("taimanin asagi", "1869"),
Pair("Taimanin Yukikaze", "826"),
Pair("Tales of the Abyss", "1148"),
Pair("Tamako Market", "770"),
Pair("Tate no Yuusha no Nariagari", "2184"),
Pair("Teen Titans", "21"),
Pair("Tengen Toppa Gurren Lagann", "1190"),
Pair("Tengen Toppa Gurren-Lagann", "100"),
Pair("Tera", "2215"),
Pair("TERA The Exiled Realm of Arborea", "2214"),
Pair("Terra Formars", "2073"),
Pair("The iDOLM@STER", "22"),
Pair("the loud house", "2054"),
Pair("The OneChanbara", "1053"),
Pair("The Seven Deadly Sins", "620"),
Pair("To Love-Ru", "23"),
Pair("To Love-Ru Darkness", "1135"),
Pair("Toaru Kagaku no Railgun", "769"),
Pair("Toaru Majutsu no Index", "741"),
Pair("ToHeart", "1164"),
Pair("ToHeart2", "905"),
Pair("ToHeart2 AnotherDays", "97"),
Pair("Tokyo 7th Sisters", "762"),
Pair("Tokyo Ghoul", "864"),
Pair("Tonari no Seki-kun", "1768"),
Pair("Toradora", "192"),
Pair("Toradora!", "1152"),
Pair("Touhou Project", "24"),
Pair("Traducción Exclusiva", "2285"),
Pair("Tsujou Kougeki ga Zentai Kougeki de 2-kai Kougeki no Okaasan wa Suki desu ka?", "2131"),
Pair("Tsukihime", "877"),
Pair("Uchuu no Stellvia", "715"),
Pair("Utawarerumono", "1905"),
Pair("Uzaki-chan wa Asobitai!", "2146"),
Pair("Valkyria Chronicles", "1084"),
Pair("Vampire savior", "982"),
Pair("Vocaloid", "912"),
Pair("Watashi ga Motenai no wa Dou Kangaetemo Omaera ga Warui!", "1032"),
Pair("Witch Craft Works", "552"),
Pair("Witchblade", "1302"),
Pair("Wizard of Oz", "723"),
Pair("Yahari Ore no Seishun Love Come wa Machigatteiru", "967"),
Pair("Yakitate!! Japan", "1409"),
Pair("yatterman", "984"),
Pair("Yotsubato!", "1429"),
Pair("Yu-Gi-Oh! ZEXAL", "196"),
Pair("Yuru Yuri", "25"),
Pair("YuruYuri", "894"),
Pair("Zegapain", "1330"),
Pair("Zero no Tsukaima", "26"),
Pair("Zettai Junpaku Mahou Shoujo", "1918"),
Pair("Zettai Karen Children", "1417"),
Pair("Zoids Shinseiki Zero", "153"),
Pair("Zombieland Saga", "2059"),
),
)
Pair("Unusual Pupils", "unusual-pupils"),
)
}
open class UriPartFilter(displayName: String, private val vals: Array<Pair<String, String>>) :