Madara Updates (#8597)

* Add Madara Sunshine Butterfly Scans

* Add Madara Jiro Comics

* Add Madara Inmortal Scan

* Add Madara Ikifeng

* Madara Remove Outdated Sites

* Madara Add ShinobiScans

* Add Madara InstaManhwa

Yoink
This commit is contained in:
happywillow0 2021-08-18 06:34:31 -04:00 committed by GitHub
parent c69c777fee
commit 00439cfd35
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
53 changed files with 108 additions and 96 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 234 KiB

View File

@ -1,28 +0,0 @@
package eu.kanade.tachiyomi.extension.ar.goldenmanga
import eu.kanade.tachiyomi.multisrc.madara.Madara
import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga
import org.jsoup.nodes.Element
import java.text.SimpleDateFormat
import java.util.Locale
class GoldenManga : Madara("موقع لترجمة المانجا", "https://golden-manga.com", "ar", SimpleDateFormat("yyyy-MM-dd", Locale.US)) {
override fun searchMangaSelector() = "div.c-image-hover a"
override fun searchMangaFromElement(element: Element): SManga {
return SManga.create().apply {
setUrlWithoutDomain(element.attr("href"))
title = element.attr("title")
thumbnail_url = element.select("img").firstOrNull()?.let { imageFromElement(it) }
}
}
override fun chapterListSelector() = "div.main a"
override fun chapterFromElement(element: Element): SChapter {
return SChapter.create().apply {
setUrlWithoutDomain(element.attr("href"))
name = element.select("h6:first-of-type").text()
date_upload = parseChapterDate(element.select("h6:last-of-type").firstOrNull()?.ownText())
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -0,0 +1,9 @@
package eu.kanade.tachiyomi.extension.es.ikifeng
import eu.kanade.tachiyomi.annotations.Nsfw
import eu.kanade.tachiyomi.multisrc.madara.Madara
import java.text.SimpleDateFormat
import java.util.Locale
@Nsfw
class Ikifeng : Madara("Ikifeng", "https://ikifeng.com", "es", SimpleDateFormat("dd/MM/yyyy", Locale("es")))

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

View File

@ -0,0 +1,8 @@
package eu.kanade.tachiyomi.extension.es.inmortalscan
import eu.kanade.tachiyomi.multisrc.madara.Madara
import java.text.SimpleDateFormat
import java.util.Locale
class InmortalScan : Madara("Inmortal Scan", "https://manga.mundodrama.site", "es", SimpleDateFormat("MMMM d, yyyy", Locale("es")))

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

View File

@ -0,0 +1,65 @@
package eu.kanade.tachiyomi.extension.en.instamanhwa
import eu.kanade.tachiyomi.multisrc.madara.Madara
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.POST
import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.util.asJsoup
import okhttp3.FormBody
import okhttp3.Request
import okhttp3.Response
import org.jsoup.nodes.Document
import java.text.SimpleDateFormat
import java.util.Locale
class InstaManhwa : Madara(
"InstaManhwa",
"https://www.instamanhwa.com",
"en",
SimpleDateFormat("dd MMMM, yyyy", Locale.US)
) {
override val supportsLatest: Boolean = false
override fun latestUpdatesRequest(page: Int): Request = GET("$baseUrl/latest?page=$page", headers)
override fun popularMangaRequest(page: Int): Request = latestUpdatesRequest(page)
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
return GET("$baseUrl/search?s=$query&page=$page", headers)
}
override fun chapterListRequest(manga: SManga): Request {
return GET("$baseUrl${manga.url}")
}
override fun chapterListParse(response: Response): List<SChapter> {
val document = response.asJsoup()
val mangaId = document.select("div[id^=manga-chapters-holder]").attr("data-id")
val cookie = response.headers("").joinToString { it.substringBefore(";") }
val token = document.select("meta[name=csrf-token]").attr("content")
return getAjaxChapters(mangaId, cookie, token)
.select(chapterListSelector())
.map { chapterFromElement(it) }
}
private fun getAjaxChapters(mangaId: String, cookie: String, token: String): Document {
val headers = headersBuilder()
.add("Host", baseUrl.substringAfter("https://"))
.add("Cookie", cookie)
.build()
val body = FormBody.Builder()
.addEncoded("_token", token)
.addEncoded("action", "manga_get_chapters")
.addEncoded("manga", mangaId)
.build()
return client.newCall(POST("$baseUrl/ajax", headers, body)).execute().asJsoup()
}
// Not used
override fun getGenreList(): List<Genre> = emptyList()
// Not used
override fun getFilterList(): FilterList = FilterList()
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -0,0 +1,12 @@
package eu.kanade.tachiyomi.extension.en.jirocomics
import eu.kanade.tachiyomi.multisrc.madara.Madara
import eu.kanade.tachiyomi.annotations.Nsfw
import eu.kanade.tachiyomi.source.model.SChapter
import okhttp3.Response
@Nsfw
class JiroComics : Madara("Jiro Comics", "https://jirocomics.com", "en") {
override fun chapterListParse(response: Response): List<SChapter> = super.chapterListParse(response).reversed()
}

View File

@ -1,7 +0,0 @@
package eu.kanade.tachiyomi.extension.id.kombatch
import eu.kanade.tachiyomi.multisrc.madara.Madara
import java.text.SimpleDateFormat
import java.util.Locale
class Kombatch : Madara("Kombatch", "https://kombatch.com", "id", SimpleDateFormat("d MMMM yyyy", Locale.forLanguageTag("id")))

View File

@ -1,7 +0,0 @@
package eu.kanade.tachiyomi.extension.tr.mangabaz
import eu.kanade.tachiyomi.multisrc.madara.Madara
import java.text.SimpleDateFormat
import java.util.Locale
class MangaBaz : Madara("MangaBaz", "https://mangabaz.com", "tr", SimpleDateFormat("dd MMMM yyyy", Locale.forLanguageTag("tr")))

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

View File

@ -0,0 +1,8 @@
package eu.kanade.tachiyomi.extension.it.shinobiscans
import eu.kanade.tachiyomi.multisrc.madara.Madara
import java.text.SimpleDateFormat
import java.util.Locale
class ShinobiScans : Madara("ShinobiScans", "https://shinobiscans.com", "it", SimpleDateFormat("MMMM d, yyyy", Locale("it")))

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

View File

@ -1,26 +0,0 @@
package eu.kanade.tachiyomi.extension.vi.truyentranhaudiocom
import eu.kanade.tachiyomi.multisrc.madara.Madara
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SManga
import okhttp3.Request
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
import java.text.SimpleDateFormat
import java.util.Locale
class TruyenTranhAudioCom : Madara("TruyenTranhAudio.com", "https://truyentranhaudio.com", "vi", SimpleDateFormat("dd/MM/yyyy", Locale.getDefault())) {
override fun popularMangaRequest(page: Int): Request = GET("$baseUrl/page/$page?s&post_type=wp-manga&m_orderby=views", headers)
override fun popularMangaSelector() = searchMangaSelector()
override fun popularMangaFromElement(element: Element): SManga = searchMangaFromElement(element)
override fun latestUpdatesRequest(page: Int): Request = GET("$baseUrl/page/$page?s&post_type=wp-manga&m_orderby=latest", headers)
override fun latestUpdatesSelector() = searchMangaSelector()
override fun latestUpdatesFromElement(element: Element): SManga = searchMangaFromElement(element)
override fun pageListParse(document: Document): List<Page> {
return document.select("div.reading-content img").map { it.attr("abs:src") }
.filterNot { it.isNullOrEmpty() }
.distinct()
.mapIndexed { i, url -> Page(i, "", url) }
}
}

View File

@ -1,21 +0,0 @@
package eu.kanade.tachiyomi.extension.vi.truyentranhaudioonline
import eu.kanade.tachiyomi.multisrc.madara.Madara
import eu.kanade.tachiyomi.source.model.Page
import okhttp3.Headers
import org.jsoup.nodes.Document
import java.text.SimpleDateFormat
import java.util.Locale
class TruyenTranhAudioOnline : Madara("TruyenTranhAudio.online", "https://truyentranhaudio.online", "vi", SimpleDateFormat("dd/MM/yyyy", Locale.getDefault())) {
override val formHeaders: Headers = headersBuilder()
.add("Content-Type", "application/x-www-form-urlencoded")
.build()
override fun pageListParse(document: Document): List<Page> {
return document.select("div.reading-content img").map { it.attr("abs:src") }
.filterNot { it.isNullOrEmpty() }
.distinct()
.mapIndexed { i, url -> Page(i, "", url) }
}
}

View File

@ -51,7 +51,6 @@ class MadaraGenerator : ThemeSourceGenerator {
SingleLang("BoysLove", "https://boyslove.me", "en", overrideVersionCode = 2), SingleLang("BoysLove", "https://boyslove.me", "en", overrideVersionCode = 2),
SingleLang("CAT-translator", "https://cat-translator.com", "th", className = "CatTranslator", overrideVersionCode = 1), 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, overrideVersionCode = 1), SingleLang("Café com Yaoi", "http://cafecomyaoi.com.br", "pt-BR", pkgName = "cafecomyaoi", className = "CafeComYaoi", isNsfw = true, overrideVersionCode = 1),
SingleLang("CatOnHeadTranslations", "https://catonhead.com", "en", overrideVersionCode = 1),
SingleLang("Cerise Scans", "https://cerisescans.com", "pt-BR", overrideVersionCode = 2), SingleLang("Cerise Scans", "https://cerisescans.com", "pt-BR", overrideVersionCode = 2),
SingleLang("Cervo Scanlator", "https://cervoscan.xyz", "pt-BR", overrideVersionCode = 3), SingleLang("Cervo Scanlator", "https://cervoscan.xyz", "pt-BR", overrideVersionCode = 3),
SingleLang("Chibi Manga", "https://www.cmreader.info", "en", overrideVersionCode = 1), SingleLang("Chibi Manga", "https://www.cmreader.info", "en", overrideVersionCode = 1),
@ -102,7 +101,6 @@ class MadaraGenerator : ThemeSourceGenerator {
SingleLang("HentaiXComic", "https://hentaixcomic.com", "en", isNsfw = true), SingleLang("HentaiXComic", "https://hentaixcomic.com", "en", isNsfw = true),
SingleLang("HentaiXYuri", "https://hentaixyuri.com", "en", isNsfw = true), SingleLang("HentaiXYuri", "https://hentaixyuri.com", "en", isNsfw = true),
SingleLang("HentaiWebtoon", "https://hentaiwebtoon.com", "en", isNsfw = true), SingleLang("HentaiWebtoon", "https://hentaiwebtoon.com", "en", isNsfw = true),
SingleLang("Hero Manhua", "https://heromanhua.com", "en"),
SingleLang("Heroz Scanlation", "https://herozscans.com", "en", overrideVersionCode = 1), SingleLang("Heroz Scanlation", "https://herozscans.com", "en", overrideVersionCode = 1),
SingleLang("Hiperdex", "https://hiperdex.com", "en", isNsfw = true, overrideVersionCode = 4), SingleLang("Hiperdex", "https://hiperdex.com", "en", isNsfw = true, overrideVersionCode = 4),
SingleLang("Hizomanga", "https://hizomanga.com", "ar"), SingleLang("Hizomanga", "https://hizomanga.com", "ar"),
@ -111,21 +109,24 @@ class MadaraGenerator : ThemeSourceGenerator {
SingleLang("Hscans", "https://hscans.com", "en", overrideVersionCode = 1), SingleLang("Hscans", "https://hscans.com", "en", overrideVersionCode = 1),
SingleLang("Hunter Fansub", "https://hunterfansub.com", "es", overrideVersionCode = 1), SingleLang("Hunter Fansub", "https://hunterfansub.com", "es", overrideVersionCode = 1),
SingleLang("Ichirin No Hana Yuri", "https://ichirinnohanayuri.com.br", "pt-BR", overrideVersionCode = 3), SingleLang("Ichirin No Hana Yuri", "https://ichirinnohanayuri.com.br", "pt-BR", overrideVersionCode = 3),
SingleLang("Ikifeng", "https://ikifeng.com", "es", isNsfw = true),
SingleLang("Immortal Updates", "https://immortalupdates.com", "en", overrideVersionCode = 1), SingleLang("Immortal Updates", "https://immortalupdates.com", "en", overrideVersionCode = 1),
SingleLang("Imperfect Comics", "https://imperfectcomic.com", "en"), SingleLang("Imperfect Comics", "https://imperfectcomic.com", "en"),
SingleLang("Império Scans", "https://imperioscans.com.br", "pt-BR", className = "ImperioScans"), SingleLang("Império Scans", "https://imperioscans.com.br", "pt-BR", className = "ImperioScans"),
SingleLang("Império dos Otakus", "https://imperiodosotakus.tk", "pt-BR", className = "ImperioDosOtakus", overrideVersionCode = 2), SingleLang("Império dos Otakus", "https://imperiodosotakus.tk", "pt-BR", className = "ImperioDosOtakus", overrideVersionCode = 2),
SingleLang("InfraFandub", "https://infrafandub.xyz", "es"), SingleLang("InfraFandub", "https://infrafandub.xyz", "es"),
SingleLang("Inmortal Scan", "https://manga.mundodrama.site", "es"),
SingleLang("InstaManhwa", "https://www.instamanhwa.com", "en", isNsfw = true),
SingleLang("IsekaiScan.com", "https://isekaiscan.com", "en", className = "IsekaiScanCom", overrideVersionCode = 3), SingleLang("IsekaiScan.com", "https://isekaiscan.com", "en", className = "IsekaiScanCom", overrideVersionCode = 3),
SingleLang("IsekaiScanManga (unoriginal)", "https://isekaiscanmanga.com", "en", className = "IsekaiScanManga", overrideVersionCode = 1), SingleLang("IsekaiScanManga (unoriginal)", "https://isekaiscanmanga.com", "en", className = "IsekaiScanManga", overrideVersionCode = 1),
SingleLang("Its Your Right Manhua", "https://itsyourightmanhua.com/", "en", overrideVersionCode = 1), SingleLang("Its Your Right Manhua", "https://itsyourightmanhua.com/", "en", overrideVersionCode = 1),
SingleLang("JaiminisBox.net", "https://jaiminisbox.net", "en", className = "Jaiminisboxnet"), SingleLang("JaiminisBox.net", "https://jaiminisbox.net", "en", className = "Jaiminisboxnet"),
SingleLang("Jiro Comics", "https://jirocomics.com", "en", isNsfw = true),
SingleLang("KawaScans", "https://kawascans.com", "en"), SingleLang("KawaScans", "https://kawascans.com", "en"),
SingleLang("KisekiManga", "https://kisekimanga.com", "en", overrideVersionCode = 1), SingleLang("KisekiManga", "https://kisekimanga.com", "en", overrideVersionCode = 1),
SingleLang("Kissmanga.in", "https://kissmanga.in", "en", className= "KissmangaIn", overrideVersionCode = 2), SingleLang("Kissmanga.in", "https://kissmanga.in", "en", className= "KissmangaIn", overrideVersionCode = 2),
SingleLang("KlikManga", "https://klikmanga.com", "id", overrideVersionCode = 1), SingleLang("KlikManga", "https://klikmanga.com", "id", overrideVersionCode = 1),
SingleLang("Kokomanga", "https://kokomanga.com", "en"), SingleLang("Kokomanga", "https://kokomanga.com", "en"),
SingleLang("Kombatch", "https://kombatch.com", "id"),
SingleLang("Kun Manga", "https://kunmanga.com", "en", overrideVersionCode = 1), SingleLang("Kun Manga", "https://kunmanga.com", "en", overrideVersionCode = 1),
SingleLang("Lara Manga", "https://laramanga.com", "en"), SingleLang("Lara Manga", "https://laramanga.com", "en"),
SingleLang("Latest Manga", "https://latestmanga.net", "en"), SingleLang("Latest Manga", "https://latestmanga.net", "en"),
@ -181,7 +182,6 @@ class MadaraGenerator : ThemeSourceGenerator {
SingleLang("Manga4All", "https://manga4all.net", "en", overrideVersionCode = 3), SingleLang("Manga4All", "https://manga4all.net", "en", overrideVersionCode = 3),
SingleLang("Manga68", "https://manga68.com", "en", overrideVersionCode = 1), SingleLang("Manga68", "https://manga68.com", "en", overrideVersionCode = 1),
SingleLang("Manga68.net", "https://manga68.net", "en", className = "Manga68net"), SingleLang("Manga68.net", "https://manga68.net", "en", className = "Manga68net"),
SingleLang("MangaBaz", "https://mangabaz.com", "tr"),
SingleLang("MangaBob", "https://mangabob.com", "en", overrideVersionCode = 1), SingleLang("MangaBob", "https://mangabob.com", "en", overrideVersionCode = 1),
SingleLang("MangaBox", "https://mangabox.org", "en"), SingleLang("MangaBox", "https://mangabox.org", "en"),
SingleLang("MangaClash", "https://mangaclash.com", "en", overrideVersionCode = 3), SingleLang("MangaClash", "https://mangaclash.com", "en", overrideVersionCode = 3),
@ -329,6 +329,7 @@ class MadaraGenerator : ThemeSourceGenerator {
SingleLang("Seafoam Scans", "https://seafoamscans.com", "en", overrideVersionCode = 2), SingleLang("Seafoam Scans", "https://seafoamscans.com", "en", overrideVersionCode = 2),
SingleLang("Setsu Scans", "https://setsuscans.com", "en", overrideVersionCode = 1), SingleLang("Setsu Scans", "https://setsuscans.com", "en", overrideVersionCode = 1),
SingleLang("Shield Manga", "https://shieldmanga.club", "en", overrideVersionCode = 2), SingleLang("Shield Manga", "https://shieldmanga.club", "en", overrideVersionCode = 2),
SingleLang("ShinobiScans", "https://shinobiscans.com", "it"),
SingleLang("Shooting Star Scans", "https://shootingstarscans.xyz", "en", overrideVersionCode = 1), SingleLang("Shooting Star Scans", "https://shootingstarscans.xyz", "en", overrideVersionCode = 1),
SingleLang("ShoujoHearts", "https://shoujohearts.com", "en", overrideVersionCode = 2), SingleLang("ShoujoHearts", "https://shoujohearts.com", "en", overrideVersionCode = 2),
SingleLang("SiXiang Scans", "http://www.sixiangscans.com", "en", overrideVersionCode = 1), SingleLang("SiXiang Scans", "http://www.sixiangscans.com", "en", overrideVersionCode = 1),
@ -341,6 +342,7 @@ class MadaraGenerator : ThemeSourceGenerator {
SingleLang("Solo Leveling", "https://readsololeveling.online", "en"), SingleLang("Solo Leveling", "https://readsololeveling.online", "en"),
SingleLang("StageComics", "https://stagecomics.com", "pt-BR", overrideVersionCode = 3), SingleLang("StageComics", "https://stagecomics.com", "pt-BR", overrideVersionCode = 3),
SingleLang("Sugar Babies", "https://sugarbscan.com", "en", overrideVersionCode = 1), SingleLang("Sugar Babies", "https://sugarbscan.com", "en", overrideVersionCode = 1),
SingleLang("Sunshine Butterfly Scans", "https://sunshinebutterflyscan.com", "en", isNsfw = true ),
SingleLang("Sweet Time Scan", "https://sweetscan.net", "pt-BR", overrideVersionCode = 2), SingleLang("Sweet Time Scan", "https://sweetscan.net", "pt-BR", overrideVersionCode = 2),
SingleLang("TappyToon.Net", "https://tappytoon.net", "en", className = "Tappytoonnet"), SingleLang("TappyToon.Net", "https://tappytoon.net", "en", className = "Tappytoonnet"),
SingleLang("Tatakae Scan", "https://tatakaescan.xyz", "pt-BR", isNsfw = true), SingleLang("Tatakae Scan", "https://tatakaescan.xyz", "pt-BR", isNsfw = true),
@ -356,8 +358,6 @@ class MadaraGenerator : ThemeSourceGenerator {
SingleLang("Top Manhua", "https://topmanhua.com", "en", overrideVersionCode = 1), SingleLang("Top Manhua", "https://topmanhua.com", "en", overrideVersionCode = 1),
SingleLang("TreeManga", "https://treemanga.com", "en"), SingleLang("TreeManga", "https://treemanga.com", "en"),
SingleLang("TritiniaScans", "https://tritinia.com", "en", overrideVersionCode = 1), SingleLang("TritiniaScans", "https://tritinia.com", "en", overrideVersionCode = 1),
SingleLang("TruyenTranhAudio.com", "https://truyentranhaudio.com", "vi", className = "TruyenTranhAudioCom"),
SingleLang("TruyenTranhAudio.online", "https://truyentranhaudio.online", "vi", className = "TruyenTranhAudioOnline"),
SingleLang("Tsundoku Traduções", "https://tsundokutraducoes.com.br", "pt-BR", pkgName = "tsundokutraducoes", className = "TsundokuTraducoes", overrideVersionCode = 3), SingleLang("Tsundoku Traduções", "https://tsundokutraducoes.com.br", "pt-BR", pkgName = "tsundokutraducoes", className = "TsundokuTraducoes", overrideVersionCode = 3),
SingleLang("TuManga.net", "https://tumanga.net", "es", className = "TuMangaNet"), SingleLang("TuManga.net", "https://tumanga.net", "es", className = "TuMangaNet"),
SingleLang("Twilight Scans", "https://twilightscans.com", "en", overrideVersionCode = 1), SingleLang("Twilight Scans", "https://twilightscans.com", "en", overrideVersionCode = 1),
@ -401,7 +401,6 @@ class MadaraGenerator : ThemeSourceGenerator {
SingleLang("مانجا عرب تيم Manga Arab Team", "https://mangaarbteam.com", "ar", className = "MangaArabTeam", overrideVersionCode = 1), SingleLang("مانجا عرب تيم Manga Arab Team", "https://mangaarbteam.com", "ar", className = "MangaArabTeam", overrideVersionCode = 1),
SingleLang("مانجا ليك", "https://mangalek.com", "ar", className = "Mangalek", overrideVersionCode = 1), SingleLang("مانجا ليك", "https://mangalek.com", "ar", className = "Mangalek", overrideVersionCode = 1),
SingleLang("مانجا لينك", "https://mangalink.io", "ar", className = "MangaLinkio", overrideVersionCode = 2), SingleLang("مانجا لينك", "https://mangalink.io", "ar", className = "MangaLinkio", overrideVersionCode = 2),
SingleLang("موقع لترجمة المانجا", "https://golden-manga.com", "ar", className = "GoldenManga"),
) )
companion object { companion object {