add few more sources to madara (#7935)

* 24hmanga icon

* mangabox icon

* mangaforfreecom icon

* mangahz icon

* mangalime icon

* delete ym icon

* replace ym icon

* Create BoysLove.kt

* Update BoysLove.kt

* Update MangaClash.kt

* Update MangaClash.kt

* Update MangaKomi.kt

* Create ManhwahentaiMe.kt

* Update ManyToon.kt

* Create ManyToonMe.kt

* Update MidnightMessScans.kt

* Create 24hManga.kt

* Create MangaForFreeCom.kt

* Create MangaHZ.kt

* Delete MangaHZ.kt

* Create MangaHZ.kt

* Update MangaKitsune.kt

* Delete multisrc/overrides/madara/mangadna directory

* Update MadaraGenerator.kt

* Create MangaBox.kt

* Update MangaClash.kt

* Update 24hManga.kt

* Update MangaHZ.kt

* Delete multisrc/overrides/madara/aloalivn/src directory

* Update 24hManga.kt

* Update 24hManga.kt

* Delete multisrc/overrides/madara/mangaforfreecom directory

* remove mangaforfreecom

* Delete multisrc/overrides/madara/24hmanga directory

* 24hmanga icon

* Create TwenyFourhManga.kt

* Rename TwenyFourhManga.kt to TwentyFourhManga.kt

* Update MadaraGenerator.kt

* Update TwentyFourhManga.kt

* Update ManhwahentaiMe.kt

* Update ManyToon.kt

* Update ManyToonMe.kt
This commit is contained in:
CVIUS 2021-07-02 20:15:36 +08:00 committed by GitHub
parent 3e91a7dfa5
commit bc259faf3e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
49 changed files with 379 additions and 131 deletions

View File

@ -1,26 +1,30 @@
package eu.kanade.tachiyomi.extension.en.aloalivn
package eu.kanade.tachiyomi.extension.en.boyslove
import eu.kanade.tachiyomi.annotations.Nsfw
import eu.kanade.tachiyomi.multisrc.madara.Madara
class Aloalivn : Madara("Aloalivn", "https://aloalivn.com", "en") {
@Nsfw
class BoysLove : Madara("BoysLove", "https://boyslove.me", "en") {
override fun getGenreList() = listOf(
Genre("Action", "action"),
Genre("Adult", "adult"),
Genre("Adventure", "adventure"),
Genre("Anime", "anime"),
Genre("Boys Love", "boys-love"),
Genre("Cartoon", "cartoon"),
Genre("Comedy", "comedy"),
Genre("Comic", "comic"),
Genre("Complete", "complete"),
Genre("Cooking", "cooking"),
Genre("Detective", "detective"),
Genre("Doujinshi", "doujinshi"),
Genre("Drama", "drama"),
Genre("Ecchi", "ecchi"),
Genre("Fantasy", "fantasy"),
Genre("Fanstasy", "fantasy"),
Genre("Gender bender", "gender-bender"),
Genre("Harem", "harem"),
Genre("Historical", "historical"),
Genre("Horror", "horror"),
Genre("Isekai", "Isekai"),
Genre("Josei", "josei"),
Genre("Live action", "live-action"),
Genre("Manga", "manga"),
@ -29,12 +33,13 @@ class Aloalivn : Madara("Aloalivn", "https://aloalivn.com", "en") {
Genre("Martial arts", "martial-arts"),
Genre("Mature", "mature"),
Genre("Mecha", "mecha"),
Genre("Medical", "medical"),
Genre("Mystery", "mystery"),
Genre("One shot", "one-shot"),
Genre("Psychological", "psychological"),
Genre("Romance", "romance"),
Genre("School Life", "school-life"),
Genre("Si-fi", "si-fi"),
Genre("Sci-fi", "sci-fi"),
Genre("Seinen", "seinen"),
Genre("Shoujo", "shoujo"),
Genre("Shoujo ai", "shoujo-ai"),
@ -42,12 +47,11 @@ class Aloalivn : Madara("Aloalivn", "https://aloalivn.com", "en") {
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("Thriller", "thriller"),
Genre("Webtoon", "webtoon"),
Genre("Webtoons", "webtoons"),
Genre("Yaoi", "yaoi"),
Genre("Yuri", "yuri"),
)

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

View File

@ -0,0 +1,12 @@
package eu.kanade.tachiyomi.extension.en.mangabox
import eu.kanade.tachiyomi.multisrc.madara.Madara
import java.text.SimpleDateFormat
import java.util.Locale
class MangaBox : Madara(
"MangaBox",
"https://mangabox.org",
"en",
dateFormat = SimpleDateFormat("dd.MM.yyyy", Locale.US)
)

View File

@ -8,7 +8,7 @@ import okhttp3.OkHttpClient
import java.util.concurrent.TimeUnit
class MangaClash : Madara(
"Manga Clash",
"MangaClash",
"https://mangaclash.com",
"en",
dateFormat = SimpleDateFormat("MM/dd/yy", Locale.US)
@ -17,4 +17,70 @@ class MangaClash : Madara(
override val client: OkHttpClient = super.client.newBuilder()
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
.build()
override fun getGenreList() = listOf(
Genre("4-koma", "4-koma"),
Genre("Action", "action"),
Genre("Adaptation", "adaptation"),
Genre("Adult", "adult"),
Genre("Adventure", "adventure"),
Genre("Comedy", "comedy"),
Genre("Cooking", "cooking"),
Genre("Crime", "crime"),
Genre("Demons", "demons"),
Genre("Doujinshi", "doujinshi"),
Genre("Drama", "drama"),
Genre("Ecchi", "ecchi"),
Genre("English", "english"),
Genre("Fanstasy", "fantasy"),
Genre("Food", "food"),
Genre("Full color", "full-color"),
Genre("Game", "game"),
Genre("Gender bender", "gender-bender"),
Genre("Harem", "harem"),
Genre("Historical", "historical"),
Genre("Horror", "horror"),
Genre("Isekai", "Isekai"),
Genre("Japanese", "japanese"),
Genre("Josei", "josei"),
Genre("Korean", "korean"),
Genre("Magic", "magic"),
Genre("Magical girls", "magical-girls"),
Genre("Manga", "manga"),
Genre("Manhua", "manhua"),
Genre("Manhwa", "manhwa"),
Genre("Martial arts", "martial-arts"),
Genre("Mature", "mature"),
Genre("Mecha", "mecha"),
Genre("Medical", "medical"),
Genre("Military", "military"),
Genre("Mystery", "mystery"),
Genre("One shot", "one-shot"),
Genre("Philosophical", "philosophical"),
Genre("Police", "police"),
Genre("Psychological", "psychological"),
Genre("Reincarnation", "reincarnation"),
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("Shoujoai", "shoujoai"),
Genre("Shounen", "shounen"),
Genre("Shounen ai", "shounen-ai"),
Genre("Slice of Life", "slice-of-life"),
Genre("Smut", "smut"),
Genre("Sports", "sports"),
Genre("Super power", "super-power"),
Genre("Superhero", "superhero"),
Genre("Supernatural", "supernatural"),
Genre("Thriller", "thriller"),
Genre("Tragedy", "tragedy"),
Genre("Webtoon", "webtoon"),
Genre("Webtoons", "webtoons"),
Genre("Wuxia", "wuxia"),
Genre("Yaoi", "yaoi"),
Genre("Yuri", "yuri"),
)
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

View File

@ -1,100 +0,0 @@
package eu.kanade.tachiyomi.extension.en.mangadna
import eu.kanade.tachiyomi.multisrc.madara.Madara
import eu.kanade.tachiyomi.annotations.Nsfw
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.POST
import eu.kanade.tachiyomi.network.asObservable
import eu.kanade.tachiyomi.source.model.Filter
import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.model.MangasPage
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.online.ParsedHttpSource
import eu.kanade.tachiyomi.util.asJsoup
import okhttp3.CacheControl
import okhttp3.FormBody
import okhttp3.Headers
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.RequestBody.Companion.toRequestBody
import okhttp3.Response
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
import rx.Observable
import java.text.ParseException
import java.text.SimpleDateFormat
import java.util.Calendar
import java.util.Locale
import java.util.concurrent.TimeUnit
import kotlin.math.absoluteValue
import kotlin.random.Random
@Nsfw
class MangaDNA : Madara("MangaDNA", "https://mangadna.com", "en", dateFormat = SimpleDateFormat("dd MMM yyyy", Locale.US)) {
override fun chapterListSelector() = "li.a-h, .row-content-chapter li"
override fun mangaDetailsParse(document: Document): SManga {
val manga = SManga.create()
with(document) {
select("div.post-title h1").first()?.let {
manga.title = it.ownText()
}
select("div.author-content").first()?.let {
if (it.text().notUpdating()) manga.author = it.text()
}
select("div.artist-content").first()?.let {
if (it.text().notUpdating()) manga.artist = it.text()
}
select("div.panel-story-description").let {
manga.description = it.select("div.dsct").text()
}
select("div.summary_image img").first()?.let {
manga.thumbnail_url = imageFromElement(it)
}
select("div.summary-content").last()?.let {
manga.status = when (it.text()) {
// I don't know what's the corresponding for COMPLETED and LICENSED
// There's no support for "Canceled" or "On Hold"
"Completed", "Completo", "Concluído", "Concluido", "Terminé" -> SManga.COMPLETED
"OnGoing", "Продолжается", "Updating", "Em Lançamento", "Em andamento", "Em Andamento", "En cours", "Ativo", "Lançando" -> SManga.ONGOING
else -> SManga.UNKNOWN
}
}
val genres = select("div.genres-content a")
.map { element -> element.text().toLowerCase(Locale.ROOT) }
.toMutableSet()
// add tag(s) to genre
select("div.tags-content a").forEach { element ->
if (genres.contains(element.text()).not()) {
genres.add(element.text().toLowerCase(Locale.ROOT))
}
}
// add manga/manhwa/manhua thinggy to genre
document.select(seriesTypeSelector).firstOrNull()?.ownText()?.let {
if (it.isEmpty().not() && it.notUpdating() && it != "-" && genres.contains(it).not()) {
genres.add(it.toLowerCase(Locale.ROOT))
}
}
manga.genre = genres.toList().joinToString(", ") { it.capitalize(Locale.ROOT) }
// add alternative name to manga description
document.select(altNameSelector).firstOrNull()?.ownText()?.let {
if (it.isEmpty().not() && it.notUpdating()) {
manga.description += when {
manga.description.isNullOrEmpty() -> altName + it
else -> "\n\n$altName" + it
}
}
}
}
return manga
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

View File

@ -0,0 +1,9 @@
package eu.kanade.tachiyomi.extension.en.mangahz
import eu.kanade.tachiyomi.multisrc.madara.Madara
import eu.kanade.tachiyomi.annotations.Nsfw
import java.text.SimpleDateFormat
import java.util.Locale
@Nsfw
class MangaHZ : Madara("MangaHZ", "https://mangahz.com", "en", dateFormat = SimpleDateFormat("MM/dd/yyyy", Locale.US))

View File

@ -1,24 +1,14 @@
package eu.kanade.tachiyomi.extension.en.mangakitsune
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
import eu.kanade.tachiyomi.annotations.Nsfw
import eu.kanade.tachiyomi.multisrc.madara.Madara
import eu.kanade.tachiyomi.source.model.SChapter
import java.text.SimpleDateFormat
import java.util.Locale
import okhttp3.OkHttpClient
import okhttp3.Response
import java.util.concurrent.TimeUnit
@Nsfw
class MangaKitsune : Madara("MangaKitsune", "https://mangakitsune.com", "en", dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.US)) {
override val client: OkHttpClient = super.client.newBuilder()
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
.build()
override fun chapterListParse(response: Response): List<SChapter> = super.chapterListParse(response).reversed()

View File

@ -16,4 +16,74 @@ class MangaKomi : Madara(
override val client: OkHttpClient = super.client.newBuilder()
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
.build()
override fun getGenreList() = listOf(
Genre("4-koma", "4-koma"),
Genre("Action", "action"),
Genre("Adaptation", "adaptation"),
Genre("Adult", "adult"),
Genre("Adventure", "adventure"),
Genre("Comedy", "comedy"),
Genre("Cooking", "cooking"),
Genre("Crime", "crime"),
Genre("Demons", "demons"),
Genre("Doujinshi", "doujinshi"),
Genre("Drama", "drama"),
Genre("Ecchi", "ecchi"),
Genre("Fanstasy", "fantasy"),
Genre("Food", "food"),
Genre("Full color", "full-color"),
Genre("Game", "game"),
Genre("Gender bender", "gender-bender"),
Genre("Harem", "harem"),
Genre("Historical", "historical"),
Genre("Horror", "horror"),
Genre("Isekai", "Isekai"),
Genre("Japanese", "japanese"),
Genre("Josei", "josei"),
Genre("Kids", "kids"),
Genre("Korean", "korean"),
Genre("Magic", "magic"),
Genre("Magical girls", "magical-girls"),
Genre("Manga", "manga"),
Genre("Manhua", "manhua"),
Genre("Manhwa", "manhwa"),
Genre("Martial arts", "martial-arts"),
Genre("Mature", "mature"),
Genre("Mecha", "mecha"),
Genre("Medical", "medical"),
Genre("Military", "military"),
Genre("Monsters", "monsters"),
Genre("Music", "music"),
Genre("Mystery", "mystery"),
Genre("One shot", "one-shot"),
Genre("Philosophical", "philosophical"),
Genre("Police", "police"),
Genre("Psychological", "psychological"),
Genre("Reincarnation", "reincarnation"),
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("Shoujoai", "shoujoai"),
Genre("Shounen", "shounen"),
Genre("Shounen ai", "shounen-ai"),
Genre("Slice of Life", "slice-of-life"),
Genre("Smut", "smut"),
Genre("Sports", "sports"),
Genre("Super power", "super-power"),
Genre("Superhero", "superhero"),
Genre("Supernatural", "supernatural"),
Genre("Thriller", "thriller"),
Genre("Tragedy", "tragedy"),
Genre("Vampire", "vampire"),
Genre("Vietnamese", "vietnamese"),
Genre("Webtoon", "webtoon"),
Genre("Webtoons", "webtoons"),
Genre("Wuxia", "wuxia"),
Genre("Yaoi", "yaoi"),
Genre("Yuri", "yuri"),
)
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

View File

@ -0,0 +1,57 @@
package eu.kanade.tachiyomi.extension.en.manhwahentaime
import eu.kanade.tachiyomi.annotations.Nsfw
import eu.kanade.tachiyomi.multisrc.madara.Madara
@Nsfw
class ManhwahentaiMe : Madara("Manhwahentai.me", "https://manhwahentai.me", "en") {
override fun getGenreList() = listOf(
Genre("Action", "action"),
Genre("Adult", "adult"),
Genre("Adventure", "adventure"),
Genre("Comedy", "comedy"),
Genre("Complete", "complete"),
Genre("Cooking", "cooking"),
Genre("Doujinshi", "doujinshi"),
Genre("Drama", "drama"),
Genre("Ecchi", "ecchi"),
Genre("Fanstasy", "fantasy"),
Genre("Gender bender", "gender-bender"),
Genre("Gossip", "gossip"),
Genre("Harem", "harem"),
Genre("Historical", "historical"),
Genre("Horror", "horror"),
Genre("Isekai", "isekai"),
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("Medical", "medical"),
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("Sports", "sports"),
Genre("Supernatural", "supernatural"),
Genre("Thriller", "thriller"),
Genre("Tragedy", "tragedy"),
Genre("Webtoon", "webtoon"),
Genre("Webtoons", "webtoons"),
Genre("Yaoi", "yaoi"),
Genre("Yuri", "yuri"),
)
}

View File

@ -6,4 +6,59 @@ import eu.kanade.tachiyomi.multisrc.madara.Madara
@Nsfw
class ManyToon : Madara("ManyToon", "https://manytoon.com", "en") {
override fun getGenreList() = listOf(
Genre("Action", "action"),
Genre("Adult", "adult"),
Genre("Adventure", "adventure"),
Genre("BL", "bl"),
Genre("Boys love", "boys-love"),
Genre("Comedy", "comedy"),
Genre("Complete", "complete"),
Genre("Cooking", "cooking"),
Genre("Doujinshi", "doujinshi"),
Genre("Drama", "drama"),
Genre("Ecchi", "ecchi"),
Genre("Fanstasy", "fantasy"),
Genre("Gender bender", "gender-bender"),
Genre("Girls love", "girls-love"),
Genre("Gossip", "gossip"),
Genre("Harem", "harem"),
Genre("Hentai", "hentai"),
Genre("Historical", "historical"),
Genre("Horror", "horror"),
Genre("Isekai", "isekai"),
Genre("Japanese", "japanese"),
Genre("Josei", "josei"),
Genre("Manga", "manga"),
Genre("Manga hentai", "manga-hentai"),
Genre("Manhua", "manhua"),
Genre("Manhwa", "manhwa"),
Genre("Martial arts", "martial-arts"),
Genre("Mature", "mature"),
Genre("Mecha", "mecha"),
Genre("Medical", "medical"),
Genre("Mystery", "mystery"),
Genre("One shot", "one-shot"),
Genre("Porn comic", "porn-comic"),
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("Sports", "sports"),
Genre("Supernatural", "supernatural"),
Genre("Thriller", "thriller"),
Genre("Tragedy", "tragedy"),
Genre("Webtoon", "webtoon"),
Genre("Webtoons", "webtoons"),
Genre("Yaoi", "yaoi"),
Genre("Yuri", "yuri"),
)
}

View File

@ -0,0 +1,59 @@
package eu.kanade.tachiyomi.extension.en.manytoonme
import eu.kanade.tachiyomi.annotations.Nsfw
import eu.kanade.tachiyomi.multisrc.madara.Madara
@Nsfw
class ManyToonMe : Madara("ManyToon.me", "https://manytoon.me", "en") {
override fun getGenreList() = listOf(
Genre("Action", "action"),
Genre("Adult", "adult"),
Genre("Adventure", "adventure"),
Genre("Comedy", "comedy"),
Genre("Complete", "complete"),
Genre("Cooking", "cooking"),
Genre("Doujinshi", "doujinshi"),
Genre("Drama", "drama"),
Genre("Ecchi", "ecchi"),
Genre("Fanstasy", "fantasy"),
Genre("Gender bender", "gender-bender"),
Genre("Gossip", "gossip"),
Genre("Harem", "harem"),
Genre("Hentai", "hentai"),
Genre("Historical", "historical"),
Genre("Horror", "horror"),
Genre("Isekai", "isekai"),
Genre("Josei", "josei"),
Genre("Manga", "manga"),
Genre("Manga hentai", "manga-hentai"),
Genre("Manhua", "manhua"),
Genre("Manhwa", "manhwa"),
Genre("Martial arts", "martial-arts"),
Genre("Mature", "mature"),
Genre("Mecha", "mecha"),
Genre("Medical", "medical"),
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("Sports", "sports"),
Genre("Supernatural", "supernatural"),
Genre("Thriller", "thriller"),
Genre("Tragedy", "tragedy"),
Genre("Webtoon", "webtoon"),
Genre("Webtoons", "webtoons"),
Genre("Yaoi", "yaoi"),
Genre("Yuri", "yuri"),
)
}

View File

@ -95,4 +95,16 @@ class MidnightMessScans : Madara("Midnight Mess Scans", "https://midnightmess.or
return manga
}
override fun getGenreList() = listOf(
Genre("Bilibili", "bilibili"),
Genre("Complete", "complete"),
Genre("Manga", "manga"),
Genre("Manhwa", "manhwa"),
Genre("Manhua", "manhua"),
Genre("Shounen ai", "shounen-ai"),
Genre("Thiccass", "thiccass"),
Genre("Usahime", "usahime"),
Genre("Yaoi", "yaoi"),
)
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

View File

@ -0,0 +1,11 @@
package eu.kanade.tachiyomi.extension.en.twentyfourhmanga
import eu.kanade.tachiyomi.multisrc.madara.Madara
import eu.kanade.tachiyomi.annotations.Nsfw
import java.text.SimpleDateFormat
import java.util.Locale
@Nsfw
class TwentyFourhManga : Madara("24hManga", "https://24hmanga.com", "en", dateFormat = SimpleDateFormat("dd/MM/yyyy", Locale.US)) {
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 78 KiB

View File

@ -21,6 +21,7 @@ class MadaraGenerator : ThemeSourceGenerator {
SingleLang("1st Kiss", "https://1stkissmanga.com", "en", className = "FirstKissManga", overrideVersionCode = 3),
SingleLang("1stKissManga.Club", "https://1stkissmanga.club", "en", className = "FirstKissMangaClub"),
SingleLang("247Manga", "https://247manga.com", "en", className = "Manga247"),
SingleLang("24hManga", "https://24hmanga.com", "en", isNsfw = true, className = "TwentyFourhManga"),
SingleLang("24hRomance", "https://24hromance.com", "en", className = "Romance24h"),
SingleLang("365Manga", "https://365manga.com", "en", className = "ThreeSixtyFiveManga", overrideVersionCode = 1),
SingleLang("AYATOON", "https://ayatoon.com", "tr", overrideVersionCode = 1),
@ -46,7 +47,7 @@ class MadaraGenerator : ThemeSourceGenerator {
SingleLang("Banana Mecânica", "https://leitorbm.com", "pt-BR", isNsfw = true, pkgName = "bananamecanica", className = "BananaMecanica", overrideVersionCode = 1),
SingleLang("BestManga", "https://bestmanga.club", "ru", overrideVersionCode = 1),
SingleLang("BestManhua", "https://bestmanhua.com", "en", overrideVersionCode = 2),
SingleLang("BoysLove", "https://boyslove.me", "en", overrideVersionCode = 1),
SingleLang("BoysLove", "https://boyslove.me", "en", overrideVersionCode = 2),
SingleLang("CAT-translator", "https://cat-translator.com", "th", className = "CatTranslator", overrideVersionCode = 1),
SingleLang("Café com Yaoi", "http://cafecomyaoi.com.br", "pt-BR", pkgName = "cafecomyaoi", className = "CafeComYaoi", isNsfw = true),
SingleLang("CatOnHeadTranslations", "https://catonhead.com", "en", overrideVersionCode = 1),
@ -92,7 +93,6 @@ class MadaraGenerator : ThemeSourceGenerator {
SingleLang("Hiperdex", "https://hiperdex.com", "en", isNsfw = true, overrideVersionCode = 4),
SingleLang("Hscans", "https://hscans.com", "en", overrideVersionCode = 1),
SingleLang("Hunter Fansub", "https://hunterfansub.com", "es", overrideVersionCode = 1),
SingleLang("Hz Manga", "https://www.hzmangas.com", "es"),
SingleLang("Ichirin No Hana Yuri", "https://ichirinnohanayuri.com.br", "pt-BR", overrideVersionCode = 3),
SingleLang("Immortal Updates", "https://immortalupdates.com", "en", overrideVersionCode = 1),
SingleLang("Imperfect Comics", "https://imperfectcomic.com", "en"),
@ -118,7 +118,6 @@ class MadaraGenerator : ThemeSourceGenerator {
SingleLang("Manga Action", "https://manga-action.com", "ar", overrideVersionCode = 1),
SingleLang("Manga Bin", "https://mangabin.com/", "en", overrideVersionCode = 1),
SingleLang("Manga Chill", "https://mangachill.com/", "en", overrideVersionCode = 1),
SingleLang("Manga Clash", "https://mangaclash.com", "en", overrideVersionCode = 2),
SingleLang("Manga Crab", "https://mangacrab.com", "es"),
SingleLang("Manga Diyari", "https://manga-diyari.com", "tr", overrideVersionCode = 1),
SingleLang("Manga Drop Out", "https://www.mangadropout.xyz", "id", isNsfw = true, overrideVersionCode = 1),
@ -148,16 +147,19 @@ class MadaraGenerator : ThemeSourceGenerator {
SingleLang("Manga68", "https://manga68.com", "en", overrideVersionCode = 1),
SingleLang("MangaBaz", "https://mangabaz.com", "tr"),
SingleLang("MangaBob", "https://mangabob.com", "en", overrideVersionCode = 1),
SingleLang("MangaBox", "https://mangabox.org", "en"),
SingleLang("MangaClash", "https://mangaclash.com", "en", overrideVersionCode = 3),
SingleLang("MangaCultivator", "https://mangacultivator.com", "en", overrideVersionCode = 1),
SingleLang("MangaDNA", "https://mangadna.com", "en", isNsfw = true),
SingleLang("MangaDods", "https://www.mangadods.com", "en", overrideVersionCode = 2),
SingleLang("MangaEffect", "https://mangaeffect.com", "en", overrideVersionCode = 1),
SingleLang("MangaFort", "https://mangafort.com", "en"),
SingleLang("MangaFoxFull", "https://mangafoxfull.com", "en"),
SingleLang("MangaGreat", "https://mangagreat.com", "en", overrideVersionCode = 1),
SingleLang("MangaKitsune", "https://mangakitsune.com", "en", isNsfw = true, overrideVersionCode = 3),
SingleLang("MangaKomi", "https://mangakomi.com", "en", overrideVersionCode = 3),
SingleLang("MangaHZ", "https://mangahz.com", "en", isNsfw = true),
SingleLang("MangaKitsune", "https://mangakitsune.com", "en", isNsfw = true, overrideVersionCode = 4),
SingleLang("MangaKomi", "https://mangakomi.com", "en", overrideVersionCode = 4),
SingleLang("MangaLazy", "https://mangalazy.com", "en", isNsfw = true, overrideVersionCode = 1),
SingleLang("MangaLime", "https://mangalime.com", "en"),
SingleLang("MangaLionz", "https://mangalionz.com", "ar"),
SingleLang("MangaMe", "https://mangame.org", "en", overrideVersionCode = 1),
SingleLang("MangaPL", "https://mangapl.com", "en", isNsfw = true, overrideVersionCode = 1),
@ -200,16 +202,16 @@ class MadaraGenerator : ThemeSourceGenerator {
SingleLang("Manhwa18.org", "https://manhwa18.org", "en", isNsfw = true, className = "Manhwa18Org", overrideVersionCode = 1),
SingleLang("ManhwaNelo", "https://manhwanelo.com", "en"),
SingleLang("Manhwatop", "https://manhwatop.com", "en", overrideVersionCode = 1),
SingleLang("Manhwahentai.me", "https://manhwahentai.me", "en", className = "ManhwahentaiMe", isNsfw = true),
SingleLang("Manhwahentai.me", "https://manhwahentai.me", "en", className = "ManhwahentaiMe", isNsfw = true, overrideVersionCode = 1),
SingleLang("ManhwaWorld", "https://manhwaworld.com", "en"),
SingleLang("ManyToon", "https://manytoon.com", "en", isNsfw = true, overrideVersionCode = 2),
SingleLang("ManyToon.me", "https://manytoon.me", "en", isNsfw = true, className = "ManyToonMe", overrideVersionCode = 1),
SingleLang("ManyToon", "https://manytoon.com", "en", isNsfw = true, overrideVersionCode = 3),
SingleLang("ManyToon.me", "https://manytoon.me", "en", isNsfw = true, className = "ManyToonMe", overrideVersionCode = 2),
SingleLang("ManyToonClub", "https://manytoon.club", "ko", isNsfw = true, overrideVersionCode = 1),
SingleLang("ManyComic", "https://manycomic.com", "en", isNsfw = true, overrideVersionCode = 1),
SingleLang("Mark Scans", "https://markscans.online", "pt-BR", overrideVersionCode = 2),
SingleLang("MHentais", "https://mhentais.com", "pt-BR", isNsfw = true),
SingleLang("NeoXXX Scans", "https://xxx.neoxscans.net", "pt-BR", isNsfw = true, overrideVersionCode = 1),
SingleLang("Midnight Mess Scans", "https://midnightmess.org", "en", isNsfw = true, overrideVersionCode = 4),
SingleLang("Midnight Mess Scans", "https://midnightmess.org", "en", isNsfw = true, overrideVersionCode = 5),
SingleLang("Milftoon", "https://milftoon.xxx", "en", isNsfw = true, overrideVersionCode = 2),
SingleLang("Mixed Manga", "https://mixedmanga.com", "en", overrideVersionCode = 1),
SingleLang("Mode Scanlator", "https://modescanlator.com", "pt-BR", overrideVersionCode = 1),
@ -298,10 +300,11 @@ class MadaraGenerator : ThemeSourceGenerator {
SingleLang("XManga", "https://xmanga.io", "en", isNsfw = true),
SingleLang("XuN Scans", "https://xunscans.xyz", "en", overrideVersionCode = 2),
SingleLang("Yaoi Fan Clube", "https://yaoifanclube.com.br", "pt-BR", isNsfw = true, overrideVersionCode = 1),
SingleLang("Yaoi.mobi", "https://yaoi.mobi", "en", isNsfw = true, className = "YaoiManga", pkgName = "yaoimanga", overrideVersionCode = 3),
SingleLang("Yaoi.mobi", "https://yaoi.mobi", "en", isNsfw = true, className = "YaoiManga", pkgName = "yaoimanga", overrideVersionCode = 4),
SingleLang("Yaoi Toshokan", "https://yaoitoshokan.net", "pt-BR", isNsfw = true, overrideVersionCode = 2),
SingleLang("Yuri Verso", "https://yuri.live", "pt-BR", overrideVersionCode = 2),
SingleLang("Zin Translator", "https://zinmanga.com", "en", overrideVersionCode = 1),
SingleLang("ZuttoManga", "https://zuttomanga.com", "en"),
SingleLang("شبكة كونان العربية", "https://www.manga.detectiveconanar.com", "ar", className = "DetectiveConanAr", overrideVersionCode = 1),
SingleLang("مانجا العاشق", "https://3asq.org", "ar", className = "Manga3asq", overrideVersionCode = 1),
SingleLang("مانجا العرب", "https://www.manhwa.ae", "ar", className = "ManhwaAe"),