Tachiyomi-Extensions/multisrc/overrides/madara/mangaforfree/src/MangaForFreeFactory.kt

85 lines
3.0 KiB
Kotlin
Raw Normal View History

package eu.kanade.tachiyomi.extension.all.mangaforfree
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
import eu.kanade.tachiyomi.multisrc.madara.Madara
import eu.kanade.tachiyomi.source.Source
import eu.kanade.tachiyomi.source.SourceFactory
import okhttp3.OkHttpClient
import java.util.concurrent.TimeUnit
class MangaForFreeFactory : SourceFactory {
override fun createSources(): List<Source> = listOf(
MangaForFreeEN(),
MangaForFreeKO(),
MangaForFreeALL(),
)
}
class MangaForFreeEN : MangaForFree("MangaForFree.net", "https://mangaforfree.net", "en") {
override fun chapterListSelector() = "li.wp-manga-chapter:not(:contains(Raw))"
}
class MangaForFreeKO : MangaForFree("MangaForFree.net", "https://mangaforfree.net", "ko") {
override fun chapterListSelector() = "li.wp-manga-chapter:contains(Raw)"
}
class MangaForFreeALL : MangaForFree("MangaForFree.net", "https://mangaforfree.net", "all")
abstract class MangaForFree(
override val name: String,
override val baseUrl: String,
override val lang: String
) : Madara(name, baseUrl, lang) {
override val client: OkHttpClient = super.client.newBuilder()
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
.build()
override fun getGenreList() = listOf(
Genre("Action", "action"),
Genre("Adult", "adult"),
Genre("Adventure", "adventure"),
Genre("Anime", "anime"),
Genre("Cartoon", "cartoon"),
Genre("Comedy", "comedy"),
Genre("Comic", "comic"),
Genre("Completed", "completed"),
Genre("Cooking", "cooking"),
Genre("Detective", "detective"),
Genre("Doujinshi", "doujinshi"),
Genre("Drama", "drama"),
Genre("Ecchi", "ecchi"),
Genre("Fanstasy", "fantasy"),
Genre("Gender bender", "gender-bender"),
Genre("Harem", "harem"),
Genre("Historical", "historical"),
Genre("Horror", "horror"),
Genre("Josei", "josei"),
Genre("Live action", "live-action"),
Genre("Manga", "manga"),
Genre("Manhua", "manhua"),
Genre("Manhwa", "manhwa"),
Genre("Martial arts", "martial-arts"),
Genre("Mature", "mature"),
Genre("Mecha", "mecha"),
Genre("Mystery", "mystery"),
Genre("One shot", "one-shot"),
Genre("Psychological", "psychological"),
Genre("Romance", "romance"),
Genre("School Life", "school-life"),
Genre("Sci-fi", "sci-fi"),
Genre("Seinen", "seinen"),
Genre("Shoujo", "shoujo"),
Genre("Shoujo ai", "shoujo-ai"),
Genre("Shounen", "shounen"),
Genre("Shounen ai", "shounen-ai"),
Genre("Slice of Life", "slice-of-life"),
Genre("Smut", "smut"),
Genre("Soft Yaoi", "soft-yaoi"),
Genre("Soft Yuri", "soft-yuri"),
Genre("Sports", "sports"),
Genre("Supernatural", "supernatural"),
Genre("Tragedy", "tragedy"),
Genre("Webtoon", "webtoon"),
Genre("Yaoi", "yaoi"),
Genre("Yuri", "yuri"),
)
}