Riztard Lanthorn 1569ea29d0
Update WPMangaStream factory code: add series type to genre (#6365)
add series type(manga/manhwa/manhua/other) thinggy to genre for some source
2021-03-31 10:03:54 -04:00

109 lines
4.2 KiB
Kotlin

package eu.kanade.tachiyomi.extension.id.westmanga
import eu.kanade.tachiyomi.multisrc.wpmangastream.WPMangaStream
import eu.kanade.tachiyomi.source.model.SManga
import org.jsoup.nodes.Document
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
import java.util.concurrent.TimeUnit
import okhttp3.OkHttpClient
class WestManga : WPMangaStream("West Manga", "https://westmanga.info", "id") {
// Formerly "West Manga (WP Manga Stream)"
override val id = 8883916630998758688
private val rateLimitInterceptor = RateLimitInterceptor(4)
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
.connectTimeout(10, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS)
.addNetworkInterceptor(rateLimitInterceptor)
.build()
override fun mangaDetailsParse(document: Document): SManga {
return SManga.create().apply {
document.select(".seriestucontent").firstOrNull()?.let { infoElement ->
genre = infoElement.select(".seriestugenre a").joinToString { it.text() }
status = parseStatus(infoElement.select(".infotable tr:contains(Status) td:last-child").firstOrNull()?.ownText())
author = infoElement.select(".infotable tr:contains(Author) td:last-child").firstOrNull()?.ownText()
description = infoElement.select(".entry-content-single[itemprop=\"description\"]").joinToString("\n") { it.text() }
thumbnail_url = infoElement.select("div.thumb img").imgAttr()
// add manga/manhwa/manhua thinggy to genre
val type = document.select(".infotable tr:contains(Type) td:last-child").firstOrNull()?.ownText()
genre += if (genre!!.contains(type.toString())) "" else if (!type.isNullOrEmpty() && !genre.isNullOrEmpty()) ", $type"
else if (!type.isNullOrEmpty() && genre.isNullOrEmpty()) "$type" else ""
}
}
}
override fun getGenreList(): List<Genre> = listOf(
Genre("4 Koma", "344"),
Genre("Action", "13"),
Genre("Adventure", "4"),
Genre("Anthology", "1494"),
Genre("Comedy", "5"),
Genre("Cooking", "54"),
Genre("Crime", "856"),
Genre("Crossdressing", "1306"),
Genre("Demon", "64"),
Genre("Drama", "6"),
Genre("Ecchi", "14"),
Genre("Fantasy", "7"),
Genre("Game", "36"),
Genre("Gender Bender", "149"),
Genre("Genderswap", "157"),
Genre("Gore", "56"),
Genre("Gyaru", "812"),
Genre("Harem", "17"),
Genre("Historical", "44"),
Genre("Horror", "211"),
Genre("Isekai", "20"),
Genre("Isekai Action", "742"),
Genre("Josei", "164"),
Genre("Magic", "65"),
Genre("Manga", "268"),
Genre("Manhua", "32"),
Genre("Martial Art", "754"),
Genre("Martial Arts", "8"),
Genre("Mature", "46"),
Genre("Mecha", "22"),
Genre("Medical", "704"),
Genre("Medy", "1439"),
Genre("Monsters", "91"),
Genre("Music", "457"),
Genre("Mystery", "30"),
Genre("Office Workers", "1501"),
Genre("Oneshot", "405"),
Genre("Project", "313"),
Genre("Psychological", "23"),
Genre("Reincarnation", "57"),
Genre("Reinkarnasi", "1170"),
Genre("Romance", "15"),
Genre("School", "102"),
Genre("School Life", "9"),
Genre("Sci-fi", "33"),
Genre("Seinen", "18"),
Genre("Shotacon", "1070"),
Genre("Shoujo", "110"),
Genre("Shoujo Ai", "113"),
Genre("Shounen", "10"),
Genre("Shounen Ai", "shounen-ai"),
Genre("Si-fi", "776"),
Genre("Slice of Lif", "773"),
Genre("Slice of Life", "11"),
Genre("Smut", "586"),
Genre("Sports", "103"),
Genre("Super Power", "274"),
Genre("Supernatural", "34"),
Genre("Suspense", "181"),
Genre("Thriller", "170"),
Genre("Tragedy", "92"),
Genre("Urban", "1050"),
Genre("Vampire", "160"),
Genre("Video Games", "1093"),
Genre("Webtoons", "486"),
Genre("Yaoi", "yaoi"),
Genre("Zombies", "377")
)
}