Tachiyomi-Extensions/multisrc/overrides/madara/doujinhentai/src/DoujinHentai.kt

106 lines
4.3 KiB
Kotlin
Raw Normal View History

package eu.kanade.tachiyomi.extension.es.doujinhentai
import eu.kanade.tachiyomi.multisrc.madara.Madara
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.model.Filter
import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.model.SManga
import okhttp3.HttpUrl.Companion.toHttpUrl
import okhttp3.Request
import org.jsoup.nodes.Element
import java.text.SimpleDateFormat
import java.util.Locale
class DoujinHentai : Madara("DoujinHentai", "https://doujinhentai.net", "es", SimpleDateFormat("d MMM. yyyy", Locale.ENGLISH)) {
override fun popularMangaRequest(page: Int): Request = GET("$baseUrl/lista-manga-hentai?orderby=views&page=$page", headers)
override fun popularMangaSelector() = "div.col-md-3 a"
override fun popularMangaFromElement(element: Element): SManga {
val manga = SManga.create()
manga.setUrlWithoutDomain(element.attr("href"))
manga.title = element.select("h5").text()
manga.thumbnail_url = element.select("img").attr("abs:data-src")
return manga
}
override fun popularMangaNextPageSelector() = "a[rel=next]"
override fun latestUpdatesRequest(page: Int): Request = GET("$baseUrl/lista-manga-hentai?orderby=last&page=$page", headers)
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
val url = baseUrl.toHttpUrl().newBuilder()
if (query.isNotBlank()) {
url.addPathSegment("search")
url.addQueryParameter("query", query) // query returns results all on one page
} else {
filters.forEach { filter ->
when (filter) {
is GenreSelectFilter -> {
if (filter.state != 0) {
url.addPathSegments("lista-manga-hentai/category/${filter.toUriPart()}")
url.addQueryParameter("page", page.toString())
}
}
}
}
}
return GET(url.build().toString(), headers)
}
override fun searchMangaSelector() = "div.c-tabs-item__content > div.c-tabs-item__content, ${popularMangaSelector()}"
override fun searchMangaFromElement(element: Element): SManga {
return if (element.hasAttr("href")) {
popularMangaFromElement(element) // genre search results
} else {
super.searchMangaFromElement(element) // query search results
}
}
override fun searchMangaNextPageSelector() = popularMangaNextPageSelector()
override fun chapterListSelector() = "ul.main.version-chap > li.wp-manga-chapter:not(:last-child)" // removing empty li
override val pageListParseSelector = "div#all > img.img-responsive"
Madara removed hardcoded genres and a bit of cleanup (#10262) * Update AllPornComic.kt * Update ArazNovel.kt * Update ArthurScan.kt * Update BlManhwaClub.kt * Delete BoysLove.kt * Update CeriseScans.kt * Update DarkYueRealm.kt * Update DoujinHentai.kt * Update FreeManga.kt * Update GloryScans.kt * Update Hentai20.kt * Update Hentaidexy.kt * Delete HentaiWebtoon.kt * Update Hiperdex.kt * Delete multisrc/overrides/madara/hzmanga directory * Update IsekaiScanCom.kt * Update LHTranslation.kt * Update MangaClash.kt * Delete MangaCV.kt * Update MangaDeemak.kt * Update MangaFenix.kt * Update MangaForFreeFactory.kt * Delete Mangaforfreecom.kt * Delete MangaGG.kt * Delete Mangakik.kt * Update MangaKitsune.kt * Update MangaKomi.kt * Delete MangaMitsu.kt * Update MangaPL.kt * Update MangaTuli.kt * Update Mangauptocats.kt * Delete MangaYami.kt * Delete ManhuaFast.kt * Update ManhwahentaiMe.kt * Update ManyToon.kt * Update ManyToonMe.kt * Update MidnightMessScans.kt * Update ModeScanlator.kt * Delete OhNoManga.kt * Delete Pornwha.kt * Delete ReadAdult.kt * Update Rh2PlusManga.kt * Delete Romance24h.kt * Update SamuraiScan.kt * Delete Skymanga.kt * Delete SunshineButterflyScans.kt * Update SweetTimeScan.kt * Update Toonily.kt * Delete Toonilynet.kt * Delete TritiniaScans.kt * Update TsundokuTraducoes.kt * Delete Wakamics.kt * Delete WebToon69.kt * Delete WebToonily.kt * Delete WebtoonScan.kt * Update Wonderland.kt * Delete XManga.kt * Update YaoiManga.kt * Delete YaoiScan.kt * Update YaoiToshokan.kt * Delete YugenMangas.kt * Delete web_hi_res_512.png * Moved it to right location * Delete web_hi_res_512.png * Move image to right location * Delete web_hi_res_512.png * Delete multisrc/overrides/madara/turkcemanga/mipmap-xxxhdpi directory * Delete multisrc/overrides/madara/turkcemanga/mipmap-xxhdpi directory * Delete multisrc/overrides/madara/turkcemanga/mipmap-xhdpi directory * Delete multisrc/overrides/madara/turkcemanga/mipmap-mdpi directory * Delete multisrc/overrides/madara/turkcemanga/mipmap-hdpi directory * Update DoujinHentai.kt
2021-12-29 10:19:34 +00:00
override fun getFilterList() = FilterList(
Filter.Header("Solo funciona si la consulta está en blanco"),
GenreSelectFilter()
)
class GenreSelectFilter : UriPartFilter(
"Búsqueda de género",
arrayOf(
Pair("<seleccionar>", ""),
Pair("Ecchi", "ecchi"),
Pair("Yaoi", "yaoi"),
Pair("Yuri", "yuri"),
Pair("Anal", "anal"),
Pair("Tetonas", "tetonas"),
Pair("Escolares", "escolares"),
Pair("Incesto", "incesto"),
Pair("Virgenes", "virgenes"),
Pair("Masturbacion", "masturbacion"),
Pair("Maduras", "maduras"),
Pair("Lolicon", "lolicon"),
Pair("Bikini", "bikini"),
Pair("Sirvientas", "sirvientas"),
Pair("Enfermera", "enfermera"),
Pair("Embarazada", "embarazada"),
Pair("Ahegao", "ahegao"),
Pair("Casadas", "casadas"),
Pair("Chica Con Pene", "chica-con-pene"),
Pair("Juguetes Sexuales", "juguetes-sexuales"),
Pair("Orgias", "orgias"),
Pair("Harem", "harem"),
Pair("Romance", "romance"),
Pair("Profesores", "profesores"),
Pair("Tentaculos", "tentaculos"),
Pair("Mamadas", "mamadas"),
Pair("Shota", "shota"),
Pair("Interracial", "interracial"),
Pair("Full Color", "full-colo"),
Pair("Sin Censura", "sin-censura"),
Pair("Futanari", "futanari"),
Pair("Doble Penetracion", "doble-penetracion"),
Pair("Cosplay", "cosplay")
)
)
}