add mangaforfree to madara (#7559)
* Update MangaLazy.kt * Delete ic_launcher.png * Delete ic_launcher.png * Delete ic_launcher.png * Delete ic_launcher.png * Delete ic_launcher.png * Delete web_hi_res_512.png * change lq icon * Create Mangaforfree.kt * Add files via upload * Update MadaraGenerator.kt * Update MadaraGenerator.kt * add Raw to genre * Update Mangaforfree.kt * Update and rename Mangaforfree.kt to MangaForFreeFactory.kt * Update MadaraGenerator.kt * Fixed Typo Co-authored-by: Johannes Joens <34899572+jopejoe1@users.noreply.github.com>
After Width: | Height: | Size: 4.0 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 6.1 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 91 KiB |
|
@ -0,0 +1,89 @@
|
||||||
|
package eu.kanade.tachiyomi.extension.all.mangaforfree
|
||||||
|
|
||||||
|
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||||
|
import eu.kanade.tachiyomi.source.Source
|
||||||
|
import eu.kanade.tachiyomi.source.SourceFactory
|
||||||
|
import java.util.concurrent.TimeUnit
|
||||||
|
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||||
|
import okhttp3.OkHttpClient
|
||||||
|
import eu.kanade.tachiyomi.annotations.Nsfw
|
||||||
|
|
||||||
|
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")
|
||||||
|
|
||||||
|
@Nsfw
|
||||||
|
abstract class MangaForFree(
|
||||||
|
override val name: String,
|
||||||
|
override val baseUrl: String,
|
||||||
|
override val lang: String
|
||||||
|
) : Madara(name, baseUrl, lang) {
|
||||||
|
private val rateLimitInterceptor = RateLimitInterceptor(1)
|
||||||
|
|
||||||
|
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
|
||||||
|
.connectTimeout(10, TimeUnit.SECONDS)
|
||||||
|
.readTimeout(30, TimeUnit.SECONDS)
|
||||||
|
.addNetworkInterceptor(rateLimitInterceptor)
|
||||||
|
.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"),
|
||||||
|
)
|
||||||
|
}
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 8.4 KiB After Width: | Height: | Size: 6.4 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 62 KiB |
|
@ -16,7 +16,7 @@ class MangaLazy : Madara("MangaLazy", "https://mangalazy.com", "en") {
|
||||||
.addNetworkInterceptor(rateLimitInterceptor)
|
.addNetworkInterceptor(rateLimitInterceptor)
|
||||||
.build()
|
.build()
|
||||||
|
|
||||||
override val pageListParseSelector = ".reading-content div.text-left div.imgs.loaded-inner :has(>img)"
|
override val pageListParseSelector = "img"
|
||||||
|
|
||||||
override fun getGenreList() = listOf(
|
override fun getGenreList() = listOf(
|
||||||
Genre("Action", "action"),
|
Genre("Action", "action"),
|
||||||
|
|
|
@ -108,6 +108,7 @@ class MadaraGenerator : ThemeSourceGenerator {
|
||||||
SingleLang("MangaDods", "https://www.mangadods.com", "en", overrideVersionCode = 2),
|
SingleLang("MangaDods", "https://www.mangadods.com", "en", overrideVersionCode = 2),
|
||||||
SingleLang("Manga Drop Out", "https://www.mangadropout.xyz", "id", isNsfw = true, overrideVersionCode = 1),
|
SingleLang("Manga Drop Out", "https://www.mangadropout.xyz", "id", isNsfw = true, overrideVersionCode = 1),
|
||||||
SingleLang("MangaEffect", "https://mangaeffect.com", "en", overrideVersionCode = 1),
|
SingleLang("MangaEffect", "https://mangaeffect.com", "en", overrideVersionCode = 1),
|
||||||
|
MultiLang("MangaForFree.net", "https://mangaforfree.net", listOf("en", "ko", "all") , isNsfw = true, className = "MangaForFreeFactory", pkgName = "mangaforfree"),
|
||||||
SingleLang("MangaGreat", "https://mangagreat.com", "en", overrideVersionCode = 1),
|
SingleLang("MangaGreat", "https://mangagreat.com", "en", overrideVersionCode = 1),
|
||||||
SingleLang("Manga Hentai", "https://mangahentai.me", "en", isNsfw = true, overrideVersionCode = 1),
|
SingleLang("Manga Hentai", "https://mangahentai.me", "en", isNsfw = true, overrideVersionCode = 1),
|
||||||
SingleLang("Mangakik", "https://mangakik.com", "en"),
|
SingleLang("Mangakik", "https://mangakik.com", "en"),
|
||||||
|
@ -116,7 +117,7 @@ class MadaraGenerator : ThemeSourceGenerator {
|
||||||
SingleLang("MangaKomi", "https://mangakomi.com", "en", overrideVersionCode = 2),
|
SingleLang("MangaKomi", "https://mangakomi.com", "en", overrideVersionCode = 2),
|
||||||
SingleLang("Manga Land Arabic", "https://mangalandarabic.com", "ar"),
|
SingleLang("Manga Land Arabic", "https://mangalandarabic.com", "ar"),
|
||||||
SingleLang("مانجا ليك", "https://mangalek.com", "ar", className = "Mangalek"),
|
SingleLang("مانجا ليك", "https://mangalek.com", "ar", className = "Mangalek"),
|
||||||
SingleLang("MangaLazy", "https://mangalazy.com", "en", isNsfw = true, overrideVersionCode = 3),
|
SingleLang("MangaLazy", "https://mangalazy.com", "en", isNsfw = true, overrideVersionCode = 4),
|
||||||
SingleLang("MangaLionz", "https://mangalionz.com", "ar"),
|
SingleLang("MangaLionz", "https://mangalionz.com", "ar"),
|
||||||
SingleLang("مانجا لينك", "https://mangalink.io", "ar", className = "MangaLinkio", overrideVersionCode = 1),
|
SingleLang("مانجا لينك", "https://mangalink.io", "ar", className = "MangaLinkio", overrideVersionCode = 1),
|
||||||
SingleLang("Manga Lord", "https://mangalord.com", "en", overrideVersionCode = 1),
|
SingleLang("Manga Lord", "https://mangalord.com", "en", overrideVersionCode = 1),
|
||||||
|
|