diff --git a/src/pt/argoshentai/build.gradle b/src/pt/argoshentai/build.gradle deleted file mode 100644 index 2c5a556a4..000000000 --- a/src/pt/argoshentai/build.gradle +++ /dev/null @@ -1,10 +0,0 @@ -ext { - extName = 'Argos Hentai' - extClass = '.ArgosHentai' - themePkg = 'madara' - baseUrl = 'https://argoshentai.xyz' - overrideVersionCode = 0 - isNsfw = true -} - -apply from: "$rootDir/common.gradle" diff --git a/src/pt/argoshentai/res/mipmap-hdpi/ic_launcher.png b/src/pt/argoshentai/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index eca76a9d7..000000000 Binary files a/src/pt/argoshentai/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/argoshentai/res/mipmap-mdpi/ic_launcher.png b/src/pt/argoshentai/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 2dea5875e..000000000 Binary files a/src/pt/argoshentai/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/argoshentai/res/mipmap-xhdpi/ic_launcher.png b/src/pt/argoshentai/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index f8354adde..000000000 Binary files a/src/pt/argoshentai/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/argoshentai/res/mipmap-xxhdpi/ic_launcher.png b/src/pt/argoshentai/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 29c374b79..000000000 Binary files a/src/pt/argoshentai/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/argoshentai/res/mipmap-xxxhdpi/ic_launcher.png b/src/pt/argoshentai/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 96ae3dd57..000000000 Binary files a/src/pt/argoshentai/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/argoshentai/src/eu/kanade/tachiyomi/extension/pt/argoshentai/ArgosHentai.kt b/src/pt/argoshentai/src/eu/kanade/tachiyomi/extension/pt/argoshentai/ArgosHentai.kt deleted file mode 100644 index 9238e1bd2..000000000 --- a/src/pt/argoshentai/src/eu/kanade/tachiyomi/extension/pt/argoshentai/ArgosHentai.kt +++ /dev/null @@ -1,17 +0,0 @@ -package eu.kanade.tachiyomi.extension.pt.argoshentai - -import eu.kanade.tachiyomi.multisrc.madara.Madara -import eu.kanade.tachiyomi.network.interceptor.rateLimit -import java.text.SimpleDateFormat -import java.util.Locale - -class ArgosHentai : Madara( - "Argos Hentai", - "https://argoshentai.xyz", - "pt-BR", - SimpleDateFormat("MMMMM dd, yyyy", Locale("pt", "BR")), -) { - override val client = super.client.newBuilder() - .rateLimit(3) - .build() -} diff --git a/src/pt/bruttal/build.gradle b/src/pt/bruttal/build.gradle deleted file mode 100644 index fff8641ae..000000000 --- a/src/pt/bruttal/build.gradle +++ /dev/null @@ -1,8 +0,0 @@ -ext { - extName = 'Bruttal' - extClass = '.Bruttal' - extVersionCode = 7 - isNsfw = false -} - -apply from: "$rootDir/common.gradle" diff --git a/src/pt/bruttal/res/mipmap-hdpi/ic_launcher.png b/src/pt/bruttal/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 7acf1167f..000000000 Binary files a/src/pt/bruttal/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/bruttal/res/mipmap-mdpi/ic_launcher.png b/src/pt/bruttal/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index c31c1d044..000000000 Binary files a/src/pt/bruttal/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/bruttal/res/mipmap-xhdpi/ic_launcher.png b/src/pt/bruttal/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index ca5a5cabe..000000000 Binary files a/src/pt/bruttal/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/bruttal/res/mipmap-xxhdpi/ic_launcher.png b/src/pt/bruttal/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 662be6849..000000000 Binary files a/src/pt/bruttal/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/bruttal/res/mipmap-xxxhdpi/ic_launcher.png b/src/pt/bruttal/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index a6f89087e..000000000 Binary files a/src/pt/bruttal/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/bruttal/src/eu/kanade/tachiyomi/extension/pt/bruttal/Bruttal.kt b/src/pt/bruttal/src/eu/kanade/tachiyomi/extension/pt/bruttal/Bruttal.kt deleted file mode 100644 index f90bcd761..000000000 --- a/src/pt/bruttal/src/eu/kanade/tachiyomi/extension/pt/bruttal/Bruttal.kt +++ /dev/null @@ -1,191 +0,0 @@ -package eu.kanade.tachiyomi.extension.pt.bruttal - -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.network.asObservableSuccess -import eu.kanade.tachiyomi.network.interceptor.rateLimit -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.HttpSource -import kotlinx.serialization.decodeFromString -import kotlinx.serialization.json.Json -import okhttp3.Headers -import okhttp3.HttpUrl.Companion.toHttpUrl -import okhttp3.OkHttpClient -import okhttp3.Request -import okhttp3.Response -import rx.Observable -import uy.kohesive.injekt.injectLazy -import java.util.concurrent.TimeUnit - -class Bruttal : HttpSource() { - - override val name = "Bruttal" - - override val baseUrl = BRUTTAL_URL - - override val lang = "pt-BR" - - override val supportsLatest = false - - override val client: OkHttpClient = network.cloudflareClient.newBuilder() - .rateLimit(1, 2, TimeUnit.SECONDS) - .build() - - override fun headersBuilder(): Headers.Builder = Headers.Builder() - .add("Referer", "$baseUrl/bruttal/") - .add("User-Agent", USER_AGENT) - - private val json: Json by injectLazy() - - override fun popularMangaRequest(page: Int): Request { - val newHeaders = headersBuilder() - .add("Accept", "application/json, text/plain, */*") - .build() - - return GET("$baseUrl/data/home.json", newHeaders) - } - - override fun popularMangaParse(response: Response): MangasPage { - val titles = response.parseAs().list - .map(BruttalComicBookDto::toSManga) - - return MangasPage(titles, false) - } - - override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { - val newHeaders = headersBuilder() - .add("Accept", "application/json, text/plain, */*") - .build() - - val jsonUrl = "$baseUrl/data/home.json".toHttpUrl().newBuilder() - .addQueryParameter("q", query) - .toString() - - return GET(jsonUrl, newHeaders) - } - - override fun searchMangaParse(response: Response): MangasPage { - val query = response.request.url.queryParameter("q").orEmpty() - - var titles = response.parseAs().list - .map(BruttalComicBookDto::toSManga) - - if (query.isNotEmpty()) { - titles = titles.filter { it.title.contains(query, ignoreCase = true) } - } - - return MangasPage(titles, false) - } - - // Workaround to allow "Open in browser" use the real URL. - override fun fetchMangaDetails(manga: SManga): Observable { - return client.newCall(mangaDetailsApiRequest(manga)) - .asObservableSuccess() - .map { response -> - mangaDetailsParse(response).apply { initialized = true } - } - } - - private fun mangaDetailsApiRequest(manga: SManga): Request { - val newHeaders = headersBuilder() - .add("Accept", "application/json, text/plain, */*") - .set("Referer", baseUrl + manga.url) - .build() - - return GET("$baseUrl/data/comicbooks.json", newHeaders) - } - - override fun mangaDetailsParse(response: Response): SManga { - val comicBookUrl = response.request.header("Referer")!! - .substringAfter("/bruttal") - - return response.parseAs>() - .first { it.url == comicBookUrl } - .toSManga() - } - - // Chapters are available in the same url of the manga details. - override fun chapterListRequest(manga: SManga): Request = mangaDetailsApiRequest(manga) - - override fun chapterListParse(response: Response): List { - val comicBooks = response.parseAs>() - - val comicBookUrl = response.request.header("Referer")!! - .substringAfter("/bruttal") - val currentComicBook = comicBooks.first { it.url == comicBookUrl } - - return currentComicBook.seasons - .flatMap(BruttalSeasonDto::chapters) - .map(BruttalChapterDto::toSChapter) - .reversed() - } - - override fun pageListRequest(chapter: SChapter): Request { - val newHeaders = headersBuilder() - .add("Accept", "application/json, text/plain, */*") - .set("Referer", baseUrl + chapter.url) - .build() - - return GET("$baseUrl/data/comicbooks.json", newHeaders) - } - - override fun pageListParse(response: Response): List { - val comicBooks = response.parseAs>() - - val chapterUrl = response.request.header("Referer")!! - val comicBookSlug = chapterUrl - .substringAfter("bruttal/") - .substringBefore("/") - val seasonNumber = chapterUrl - .substringAfter("temporada-") - .substringBefore("/") - val chapterNumber = chapterUrl.substringAfter("capitulo-") - - val currentComicBook = comicBooks.first { it.url == "/$comicBookSlug" } - val currentSeason = currentComicBook.seasons.first { - it.alias.substringAfter("-") == seasonNumber - } - val currentChapter = currentSeason.chapters.first { - it.alias.substringAfter("-") == chapterNumber - } - - return currentChapter.images - .mapIndexed { i, imageDto -> - val imageUrl = "$baseUrl/${imageDto.image.removePrefix("./")}" - Page(i, chapterUrl, imageUrl) - } - } - - override fun fetchImageUrl(page: Page): Observable = Observable.just(page.imageUrl!!) - - override fun imageUrlParse(response: Response): String = "" - - override fun imageRequest(page: Page): Request { - val newHeaders = headersBuilder() - .add("Accept", "image/avif,image/webp,image/apng,image/*,*/*;q=0.8") - .set("Referer", page.url) - .build() - - return GET(page.imageUrl!!, newHeaders) - } - - override fun latestUpdatesRequest(page: Int): Request = - throw UnsupportedOperationException() - - override fun latestUpdatesParse(response: Response): MangasPage = - throw UnsupportedOperationException() - - private inline fun Response.parseAs(): T = use { - json.decodeFromString(body.string()) - } - - companion object { - const val BRUTTAL_URL = "https://originals.omelete.com.br/bruttal" - - private const val USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) " + - "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36" - } -} diff --git a/src/pt/bruttal/src/eu/kanade/tachiyomi/extension/pt/bruttal/BruttalDto.kt b/src/pt/bruttal/src/eu/kanade/tachiyomi/extension/pt/bruttal/BruttalDto.kt deleted file mode 100644 index 60124baf4..000000000 --- a/src/pt/bruttal/src/eu/kanade/tachiyomi/extension/pt/bruttal/BruttalDto.kt +++ /dev/null @@ -1,69 +0,0 @@ -package eu.kanade.tachiyomi.extension.pt.bruttal - -import eu.kanade.tachiyomi.source.model.SChapter -import eu.kanade.tachiyomi.source.model.SManga -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable - -@Serializable -data class BruttalHomeDto( - val list: List = emptyList(), -) - -@Serializable -data class BruttalComicBookDto( - val author: String, - val illustrator: String, - @SerialName("image_mobile") val imageMobile: String, - val keywords: String, - val seasons: List = emptyList(), - @SerialName("soon_text") val soonText: String = "", - val synopsis: String, - val title: String, - val url: String, -) { - - fun toSManga(): SManga = SManga.create().apply { - title = this@BruttalComicBookDto.title - description = synopsis + (if (soonText.isEmpty()) "" else "\n\n$soonText") - artist = illustrator - author = this@BruttalComicBookDto.author - genre = keywords.split(";") - .map { keyword -> keyword.trim().replaceFirstChar { it.uppercase() } } - .sorted() - .joinToString() - status = SManga.ONGOING - thumbnail_url = "${Bruttal.BRUTTAL_URL}/" + imageMobile.removePrefix("./") - url = this@BruttalComicBookDto.url - initialized = true - } -} - -@Serializable -data class BruttalSeasonDto( - val alias: String, - val chapters: List = emptyList(), -) - -@Serializable -data class BruttalChapterDto( - val alias: String, - val images: List = emptyList(), - @SerialName("share_title") val shareTitle: String, - val title: String, - val url: String, -) { - - fun toSChapter(): SChapter = SChapter.create().apply { - name = title - chapter_number = shareTitle - .removePrefix("Capítulo ") - .toFloatOrNull() ?: -1f - url = this@BruttalChapterDto.url - } -} - -@Serializable -data class BruttalImageDto( - val image: String, -) diff --git a/src/pt/dianxiatraducoes/build.gradle b/src/pt/dianxiatraducoes/build.gradle deleted file mode 100644 index 418d7e553..000000000 --- a/src/pt/dianxiatraducoes/build.gradle +++ /dev/null @@ -1,10 +0,0 @@ -ext { - extName = 'Dianxia Traduções' - extClass = '.DianxiaTraducoes' - themePkg = 'madara' - baseUrl = 'https://dianxiatrads.com' - overrideVersionCode = 0 - isNsfw = true -} - -apply from: "$rootDir/common.gradle" diff --git a/src/pt/dianxiatraducoes/res/mipmap-hdpi/ic_launcher.png b/src/pt/dianxiatraducoes/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 59dfdfca1..000000000 Binary files a/src/pt/dianxiatraducoes/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/dianxiatraducoes/res/mipmap-mdpi/ic_launcher.png b/src/pt/dianxiatraducoes/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 7d04813a2..000000000 Binary files a/src/pt/dianxiatraducoes/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/dianxiatraducoes/res/mipmap-xhdpi/ic_launcher.png b/src/pt/dianxiatraducoes/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 91ceff1cf..000000000 Binary files a/src/pt/dianxiatraducoes/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/dianxiatraducoes/res/mipmap-xxhdpi/ic_launcher.png b/src/pt/dianxiatraducoes/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 6476db3c4..000000000 Binary files a/src/pt/dianxiatraducoes/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/dianxiatraducoes/res/mipmap-xxxhdpi/ic_launcher.png b/src/pt/dianxiatraducoes/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 0b66dc0b8..000000000 Binary files a/src/pt/dianxiatraducoes/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/dianxiatraducoes/src/eu/kanade/tachiyomi/extension/pt/dianxiatraducoes/DianxiaTraducoes.kt b/src/pt/dianxiatraducoes/src/eu/kanade/tachiyomi/extension/pt/dianxiatraducoes/DianxiaTraducoes.kt deleted file mode 100644 index cf0f345e8..000000000 --- a/src/pt/dianxiatraducoes/src/eu/kanade/tachiyomi/extension/pt/dianxiatraducoes/DianxiaTraducoes.kt +++ /dev/null @@ -1,15 +0,0 @@ -package eu.kanade.tachiyomi.extension.pt.dianxiatraducoes - -import eu.kanade.tachiyomi.multisrc.madara.Madara -import java.text.SimpleDateFormat -import java.util.Locale - -class DianxiaTraducoes : Madara( - "Dianxia Traduções", - "https://dianxiatrads.com", - "pt-BR", - dateFormat = SimpleDateFormat("dd/MM/yyyy", Locale.ROOT), -) { - override val useLoadMoreRequest = LoadMoreStrategy.Never - override val useNewChapterEndpoint = false -} diff --git a/src/pt/infinyxscan/build.gradle b/src/pt/infinyxscan/build.gradle deleted file mode 100644 index 64dd727b4..000000000 --- a/src/pt/infinyxscan/build.gradle +++ /dev/null @@ -1,10 +0,0 @@ -ext { - extName = 'InfinyxScan' - extClass = '.InfinyxScan' - themePkg = 'madara' - baseUrl = 'https://infinyxscan.cloud' - overrideVersionCode = 0 - isNsfw = false -} - -apply from: "$rootDir/common.gradle" diff --git a/src/pt/infinyxscan/res/mipmap-hdpi/ic_launcher.png b/src/pt/infinyxscan/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 138974f37..000000000 Binary files a/src/pt/infinyxscan/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/infinyxscan/res/mipmap-mdpi/ic_launcher.png b/src/pt/infinyxscan/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 3be49e29b..000000000 Binary files a/src/pt/infinyxscan/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/infinyxscan/res/mipmap-xhdpi/ic_launcher.png b/src/pt/infinyxscan/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index b0974cea8..000000000 Binary files a/src/pt/infinyxscan/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/infinyxscan/res/mipmap-xxhdpi/ic_launcher.png b/src/pt/infinyxscan/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index dad3465ee..000000000 Binary files a/src/pt/infinyxscan/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/infinyxscan/res/mipmap-xxxhdpi/ic_launcher.png b/src/pt/infinyxscan/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index b0ed285b6..000000000 Binary files a/src/pt/infinyxscan/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/infinyxscan/src/eu/kanade/tachiyomi/extension/pt/infinyxscan/InfinyxScan.kt b/src/pt/infinyxscan/src/eu/kanade/tachiyomi/extension/pt/infinyxscan/InfinyxScan.kt deleted file mode 100644 index 23925f8ee..000000000 --- a/src/pt/infinyxscan/src/eu/kanade/tachiyomi/extension/pt/infinyxscan/InfinyxScan.kt +++ /dev/null @@ -1,14 +0,0 @@ -package eu.kanade.tachiyomi.extension.pt.infinyxscan - -import eu.kanade.tachiyomi.multisrc.madara.Madara -import java.text.SimpleDateFormat -import java.util.Locale - -class InfinyxScan : Madara( - "InfinyxScan", - "https://infinyxscan.cloud", - "pt-BR", - SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR")), -) { - override val useNewChapterEndpoint: Boolean = true -} diff --git a/src/pt/lerhentai/build.gradle b/src/pt/lerhentai/build.gradle deleted file mode 100644 index 84befc749..000000000 --- a/src/pt/lerhentai/build.gradle +++ /dev/null @@ -1,10 +0,0 @@ -ext { - extName = 'Ler Hentai' - extClass = '.LerHentai' - themePkg = 'madara' - baseUrl = 'https://lerhentai.com' - overrideVersionCode = 0 - isNsfw = true -} - -apply from: "$rootDir/common.gradle" diff --git a/src/pt/lerhentai/res/mipmap-hdpi/ic_launcher.png b/src/pt/lerhentai/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 097897cd1..000000000 Binary files a/src/pt/lerhentai/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/lerhentai/res/mipmap-mdpi/ic_launcher.png b/src/pt/lerhentai/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 4ee798b6f..000000000 Binary files a/src/pt/lerhentai/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/lerhentai/res/mipmap-xhdpi/ic_launcher.png b/src/pt/lerhentai/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 0c7c812be..000000000 Binary files a/src/pt/lerhentai/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/lerhentai/res/mipmap-xxhdpi/ic_launcher.png b/src/pt/lerhentai/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 8e6550822..000000000 Binary files a/src/pt/lerhentai/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/lerhentai/res/mipmap-xxxhdpi/ic_launcher.png b/src/pt/lerhentai/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index cfe49a99c..000000000 Binary files a/src/pt/lerhentai/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/lerhentai/src/eu/kanade/tachiyomi/extension/pt/lerhentai/LerHentai.kt b/src/pt/lerhentai/src/eu/kanade/tachiyomi/extension/pt/lerhentai/LerHentai.kt deleted file mode 100644 index 73165786b..000000000 --- a/src/pt/lerhentai/src/eu/kanade/tachiyomi/extension/pt/lerhentai/LerHentai.kt +++ /dev/null @@ -1,23 +0,0 @@ -package eu.kanade.tachiyomi.extension.pt.lerhentai - -import eu.kanade.tachiyomi.multisrc.madara.Madara -import eu.kanade.tachiyomi.source.model.SManga -import org.jsoup.nodes.Document -import java.text.SimpleDateFormat -import java.util.Locale - -class LerHentai : Madara( - "Ler Hentai", - "https://lerhentai.com", - "pt-BR", - dateFormat = SimpleDateFormat("d 'de' MMMM 'de' yyyy", Locale("pt", "BR")), -) { - override val useLoadMoreRequest = LoadMoreStrategy.Never - override val useNewChapterEndpoint = false - - override fun mangaDetailsParse(document: Document): SManga { - return super.mangaDetailsParse(document).apply { - description = description?.removePrefix("Sinopse\n\n") - } - } -} diff --git a/src/pt/lichmangas/build.gradle b/src/pt/lichmangas/build.gradle deleted file mode 100644 index beff38445..000000000 --- a/src/pt/lichmangas/build.gradle +++ /dev/null @@ -1,10 +0,0 @@ -ext { - extName = 'Lich Mangas' - extClass = '.LichMangas' - themePkg = 'madara' - baseUrl = 'https://lichmangas.com' - overrideVersionCode = 0 - isNsfw = true -} - -apply from: "$rootDir/common.gradle" diff --git a/src/pt/lichmangas/res/mipmap-hdpi/ic_launcher.png b/src/pt/lichmangas/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 20acea3f0..000000000 Binary files a/src/pt/lichmangas/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/lichmangas/res/mipmap-mdpi/ic_launcher.png b/src/pt/lichmangas/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 30651dbed..000000000 Binary files a/src/pt/lichmangas/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/lichmangas/res/mipmap-xhdpi/ic_launcher.png b/src/pt/lichmangas/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index f3dc7618d..000000000 Binary files a/src/pt/lichmangas/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/lichmangas/res/mipmap-xxhdpi/ic_launcher.png b/src/pt/lichmangas/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index a3df9a12e..000000000 Binary files a/src/pt/lichmangas/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/lichmangas/res/mipmap-xxxhdpi/ic_launcher.png b/src/pt/lichmangas/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 6212b922b..000000000 Binary files a/src/pt/lichmangas/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/lichmangas/src/eu/kanade/tachiyomi/extension/pt/lichmangas/LichMangas.kt b/src/pt/lichmangas/src/eu/kanade/tachiyomi/extension/pt/lichmangas/LichMangas.kt deleted file mode 100644 index 8992b1236..000000000 --- a/src/pt/lichmangas/src/eu/kanade/tachiyomi/extension/pt/lichmangas/LichMangas.kt +++ /dev/null @@ -1,14 +0,0 @@ -package eu.kanade.tachiyomi.extension.pt.lichmangas - -import eu.kanade.tachiyomi.multisrc.madara.Madara -import java.text.SimpleDateFormat -import java.util.Locale - -class LichMangas : Madara( - "Lich Mangas", - "https://lichmangas.com", - "pt-BR", - dateFormat = SimpleDateFormat("dd/MM/yyyy", Locale.ROOT), -) { - override val useNewChapterEndpoint = true -} diff --git a/src/pt/limitedtimeproject/build.gradle b/src/pt/limitedtimeproject/build.gradle deleted file mode 100644 index 27900f77a..000000000 --- a/src/pt/limitedtimeproject/build.gradle +++ /dev/null @@ -1,10 +0,0 @@ -ext { - extName = 'Limited Time Project' - extClass = '.LimitedTimeProject' - themePkg = 'madara' - baseUrl = 'https://limitedtimeproject.com' - overrideVersionCode = 1 - isNsfw = true -} - -apply from: "$rootDir/common.gradle" diff --git a/src/pt/limitedtimeproject/res/mipmap-hdpi/ic_launcher.png b/src/pt/limitedtimeproject/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 0b044de75..000000000 Binary files a/src/pt/limitedtimeproject/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/limitedtimeproject/res/mipmap-mdpi/ic_launcher.png b/src/pt/limitedtimeproject/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 2c7f0a3fb..000000000 Binary files a/src/pt/limitedtimeproject/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/limitedtimeproject/res/mipmap-xhdpi/ic_launcher.png b/src/pt/limitedtimeproject/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index e8f7aa60b..000000000 Binary files a/src/pt/limitedtimeproject/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/limitedtimeproject/res/mipmap-xxhdpi/ic_launcher.png b/src/pt/limitedtimeproject/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 22bcfcee0..000000000 Binary files a/src/pt/limitedtimeproject/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/limitedtimeproject/res/mipmap-xxxhdpi/ic_launcher.png b/src/pt/limitedtimeproject/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index d79913a37..000000000 Binary files a/src/pt/limitedtimeproject/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/limitedtimeproject/src/eu/kanade/tachiyomi/extension/pt/limitedtimeproject/LimitedTimeProject.kt b/src/pt/limitedtimeproject/src/eu/kanade/tachiyomi/extension/pt/limitedtimeproject/LimitedTimeProject.kt deleted file mode 100644 index a543e44ee..000000000 --- a/src/pt/limitedtimeproject/src/eu/kanade/tachiyomi/extension/pt/limitedtimeproject/LimitedTimeProject.kt +++ /dev/null @@ -1,23 +0,0 @@ -package eu.kanade.tachiyomi.extension.pt.limitedtimeproject - -import eu.kanade.tachiyomi.multisrc.madara.Madara -import eu.kanade.tachiyomi.network.interceptor.rateLimit -import java.text.SimpleDateFormat -import java.util.Locale - -class LimitedTimeProject : Madara( - "Limited Time Project", - "https://limitedtimeproject.com", - "pt-BR", - SimpleDateFormat("dd/MM/yyyy", Locale.ROOT), -) { - override val client = super.client.newBuilder() - .rateLimit(3) - .build() - - override val mangaSubString = "manhwas" - - override val useLoadMoreRequest = LoadMoreStrategy.Never - - override val useNewChapterEndpoint = true -} diff --git a/src/pt/mangaonline/build.gradle b/src/pt/mangaonline/build.gradle deleted file mode 100644 index e6082e710..000000000 --- a/src/pt/mangaonline/build.gradle +++ /dev/null @@ -1,12 +0,0 @@ -ext { - extName = 'Manga Online' - extClass = '.MangaOnline' - extVersionCode = 3 - isNsfw = true -} - -apply from: "$rootDir/common.gradle" - -dependencies { - implementation(project(':lib:randomua')) -} diff --git a/src/pt/mangaonline/res/mipmap-hdpi/ic_launcher.png b/src/pt/mangaonline/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 56f7c5ca6..000000000 Binary files a/src/pt/mangaonline/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/mangaonline/res/mipmap-mdpi/ic_launcher.png b/src/pt/mangaonline/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 64e854b44..000000000 Binary files a/src/pt/mangaonline/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/mangaonline/res/mipmap-xhdpi/ic_launcher.png b/src/pt/mangaonline/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index eda32d4c3..000000000 Binary files a/src/pt/mangaonline/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/mangaonline/res/mipmap-xxhdpi/ic_launcher.png b/src/pt/mangaonline/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 61ddad796..000000000 Binary files a/src/pt/mangaonline/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/mangaonline/res/mipmap-xxxhdpi/ic_launcher.png b/src/pt/mangaonline/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 8fb31483b..000000000 Binary files a/src/pt/mangaonline/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/mangaonline/src/eu/kanade/tachiyomi/extension/pt/mangaonline/MangaOnline.kt b/src/pt/mangaonline/src/eu/kanade/tachiyomi/extension/pt/mangaonline/MangaOnline.kt deleted file mode 100644 index 91dd4c9ee..000000000 --- a/src/pt/mangaonline/src/eu/kanade/tachiyomi/extension/pt/mangaonline/MangaOnline.kt +++ /dev/null @@ -1,201 +0,0 @@ -package eu.kanade.tachiyomi.extension.pt.mangaonline - -import android.content.SharedPreferences -import android.util.Log -import androidx.preference.PreferenceScreen -import eu.kanade.tachiyomi.lib.randomua.addRandomUAPreferenceToScreen -import eu.kanade.tachiyomi.lib.randomua.getPrefCustomUA -import eu.kanade.tachiyomi.lib.randomua.getPrefUAType -import eu.kanade.tachiyomi.lib.randomua.setRandomUserAgent -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.network.interceptor.rateLimitHost -import eu.kanade.tachiyomi.source.ConfigurableSource -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 keiyoushi.utils.getPreferences -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.launch -import okhttp3.HttpUrl.Companion.toHttpUrl -import okhttp3.OkHttpClient -import okhttp3.Request -import okhttp3.Response -import org.jsoup.nodes.Document -import org.jsoup.nodes.Element -import java.text.SimpleDateFormat -import java.util.Locale -import java.util.concurrent.TimeUnit - -class MangaOnline : ParsedHttpSource(), ConfigurableSource { - override val lang = "pt-BR" - - override val supportsLatest = true - - override val name = "Manga Online" - - override val baseUrl = "https://mangaonline.biz" - - private var genresSet: Set = emptySet() - - private val preferences: SharedPreferences = getPreferences() - - override val client: OkHttpClient = - network.cloudflareClient.newBuilder() - .setRandomUserAgent( - preferences.getPrefUAType(), - preferences.getPrefCustomUA(), - ) - .rateLimitHost(baseUrl.toHttpUrl(), 1, 2, TimeUnit.SECONDS) - .build() - - override fun setupPreferenceScreen(screen: PreferenceScreen) { - addRandomUAPreferenceToScreen(screen) - } - - override fun chapterFromElement(element: Element) = SChapter.create().apply { - name = element.selectFirst("a")!!.ownText() - date_upload = element.selectFirst("a span.date")?.ownText()!!.toDate() - setUrlWithoutDomain(element.selectFirst("a")!!.absUrl("href")) - } - - override fun chapterListSelector() = "div.episodiotitle" - - override fun imageUrlParse(document: Document) = "" - - override fun latestUpdatesFromElement(element: Element) = SManga.create().apply { - title = element.selectFirst("h3 a")!!.ownText() - .replace("Capítulo\\s+([\\d.]+)".toRegex(), "") - .trim() - - thumbnail_url = element.selectFirst("img")?.absUrl("src") - - val mangaUrl = element.selectFirst("h3 a")!!.absUrl("href") - .replace("-capitulo-[\\d-]+".toRegex(), "") - .replace("capitulo", "manga") - - setUrlWithoutDomain(mangaUrl) - } - - override fun latestUpdatesNextPageSelector() = null - - override fun latestUpdatesRequest(page: Int) = GET("$baseUrl/capitulo/page/$page", headers) - - override fun latestUpdatesParse(response: Response): MangasPage { - val mangesPage = super.latestUpdatesParse(response) - - return MangasPage( - mangesPage.mangas.distinctBy { it.title }, - mangesPage.hasNextPage, - ) - } - - override fun latestUpdatesSelector() = popularMangaSelector() - - override fun mangaDetailsParse(document: Document) = SManga.create().apply { - val containerInfo = document.selectFirst("div.content > div.sheader") - title = containerInfo!!.selectFirst("h1")!!.ownText() - thumbnail_url = containerInfo.selectFirst("img")?.absUrl("src") - description = containerInfo.selectFirst("p:last-child")?.ownText() - genre = containerInfo.select("div.sgeneros a") - .map { it.ownText() } - .filter { it.length > 1 } - .joinToString() - } - - override fun pageListParse(document: Document): List { - return document.select("img[loading=lazy]").mapIndexed { i, it -> - Page(i, imageUrl = it.absUrl("src")) - } - } - - override fun popularMangaFromElement(element: Element) = SManga.create().apply { - title = element.selectFirst("h3 a")!!.ownText() - thumbnail_url = element.selectFirst("img")?.absUrl("src") - setUrlWithoutDomain(element.selectFirst("h3 a")!!.absUrl("href")) - } - - override fun popularMangaNextPageSelector() = null - - override fun popularMangaRequest(page: Int): Request = GET("$baseUrl/mais-vistos/", headers) - - override fun popularMangaSelector() = "div.content .item" - - override fun searchMangaFromElement(element: Element) = popularMangaFromElement(element) - - override fun searchMangaNextPageSelector() = ".pagination > .current + a" - - override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { - if (query.isNotBlank()) { - val url = "$baseUrl/search".toHttpUrl().newBuilder() - .addPathSegment(query) - .build() - return GET(url, headers) - } - - val path = when (val genre = (filters.first() as GenreList).selected) { - Genre.GLOBAL -> "$baseUrl/${genre.id}" - else -> "$baseUrl/genero/${genre.id}" - } - - return GET("$path/page/$page", headers) - } - - override fun searchMangaSelector() = popularMangaSelector() - - override fun getFilterList(): FilterList { - CoroutineScope(Dispatchers.IO).launch { - fetchMangaGenre() - } - - genresSet += Genre.GLOBAL - - return FilterList( - GenreList( - title = "Gêneros", - genres = genresSet.toTypedArray(), - ), - ) - } - - private fun fetchMangaGenre() { - try { - val request = client - .newCall(GET("$baseUrl/generos/", headers)) - .execute() - - val document = request.asJsoup() - - genresSet = document.select(".wp-content a").map { element -> - val id = element.absUrl("href") - .split("/") - .last { it.isNotEmpty() } - Genre(element.ownText(), id) - }.toSet() - } catch (e: Exception) { - Log.e("MangaOnline", e.stackTraceToString()) - } - } - - private fun String.toDate() = - try { dateFormat.parse(trim())!!.time } catch (_: Exception) { 0L } - - private val dateFormat = SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR")) -} - -data class Genre(val name: String, val id: String) { - override fun toString() = name - - companion object { - val GLOBAL = Genre("Todos", "manga") - } -} - -class GenreList(title: String, private val genres: Array) : Filter.Select(title, genres) { - val selected get() = genres[state] -} diff --git a/src/pt/nazarickscan/build.gradle b/src/pt/nazarickscan/build.gradle deleted file mode 100644 index 35f7fb2a9..000000000 --- a/src/pt/nazarickscan/build.gradle +++ /dev/null @@ -1,10 +0,0 @@ -ext { - extName = 'Nazarick Scan' - extClass = '.NazarickScan' - themePkg = 'peachscan' - baseUrl = 'https://nazarickscan.com.br' - overrideVersionCode = 0 - isNsfw = false -} - -apply from: "$rootDir/common.gradle" diff --git a/src/pt/nazarickscan/res/mipmap-hdpi/ic_launcher.png b/src/pt/nazarickscan/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index c8f93029b..000000000 Binary files a/src/pt/nazarickscan/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/nazarickscan/res/mipmap-mdpi/ic_launcher.png b/src/pt/nazarickscan/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 7e9be20f7..000000000 Binary files a/src/pt/nazarickscan/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/nazarickscan/res/mipmap-xhdpi/ic_launcher.png b/src/pt/nazarickscan/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 9f9099b70..000000000 Binary files a/src/pt/nazarickscan/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/nazarickscan/res/mipmap-xxhdpi/ic_launcher.png b/src/pt/nazarickscan/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index abd680b44..000000000 Binary files a/src/pt/nazarickscan/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/nazarickscan/res/mipmap-xxxhdpi/ic_launcher.png b/src/pt/nazarickscan/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index c53b4012c..000000000 Binary files a/src/pt/nazarickscan/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/nazarickscan/src/eu/kanade/tachiyomi/extension/pt/nazarickscan/NazarickScan.kt b/src/pt/nazarickscan/src/eu/kanade/tachiyomi/extension/pt/nazarickscan/NazarickScan.kt deleted file mode 100644 index 88551f529..000000000 --- a/src/pt/nazarickscan/src/eu/kanade/tachiyomi/extension/pt/nazarickscan/NazarickScan.kt +++ /dev/null @@ -1,5 +0,0 @@ -package eu.kanade.tachiyomi.extension.pt.nazarickscan - -import eu.kanade.tachiyomi.multisrc.peachscan.PeachScan - -class NazarickScan : PeachScan("Nazarick Scan", "https://nazarickscan.com.br", "pt-BR") diff --git a/src/pt/wintersun/build.gradle b/src/pt/wintersun/build.gradle deleted file mode 100644 index e95359f62..000000000 --- a/src/pt/wintersun/build.gradle +++ /dev/null @@ -1,10 +0,0 @@ -ext { - extName = 'Winter Sun' - extClass = '.WinterSun' - themePkg = 'madara' - baseUrl = 'https://wintersunscan.xyz' - overrideVersionCode = 0 - isNsfw = true -} - -apply from: "$rootDir/common.gradle" diff --git a/src/pt/wintersun/res/mipmap-hdpi/ic_launcher.png b/src/pt/wintersun/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index fff4b7e5e..000000000 Binary files a/src/pt/wintersun/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/wintersun/res/mipmap-mdpi/ic_launcher.png b/src/pt/wintersun/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 0787b331c..000000000 Binary files a/src/pt/wintersun/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/wintersun/res/mipmap-xhdpi/ic_launcher.png b/src/pt/wintersun/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 06163e549..000000000 Binary files a/src/pt/wintersun/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/wintersun/res/mipmap-xxhdpi/ic_launcher.png b/src/pt/wintersun/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index e95a14893..000000000 Binary files a/src/pt/wintersun/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/wintersun/res/mipmap-xxxhdpi/ic_launcher.png b/src/pt/wintersun/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index fbcd53e48..000000000 Binary files a/src/pt/wintersun/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/wintersun/src/eu/kanade/tachiyomi/extension/pt/wintersun/WinterSun.kt b/src/pt/wintersun/src/eu/kanade/tachiyomi/extension/pt/wintersun/WinterSun.kt deleted file mode 100644 index 873300bd4..000000000 --- a/src/pt/wintersun/src/eu/kanade/tachiyomi/extension/pt/wintersun/WinterSun.kt +++ /dev/null @@ -1,14 +0,0 @@ -package eu.kanade.tachiyomi.extension.pt.wintersun - -import eu.kanade.tachiyomi.multisrc.madara.Madara -import java.text.SimpleDateFormat -import java.util.Locale - -class WinterSun : Madara( - "Winter Sun", - "https://wintersunscan.xyz", - "pt-BR", - SimpleDateFormat("dd 'de' MMMMM 'de' yyyy", Locale("pt", "BR")), -) { - override val useNewChapterEndpoint = true -} diff --git a/src/pt/xsscan/build.gradle b/src/pt/xsscan/build.gradle deleted file mode 100644 index d9794dd36..000000000 --- a/src/pt/xsscan/build.gradle +++ /dev/null @@ -1,10 +0,0 @@ -ext { - extName = 'Xs Scan' - extClass = '.XsScan' - themePkg = 'madara' - baseUrl = 'https://xsscan.xyz' - overrideVersionCode = 0 - isNsfw = false -} - -apply from: "$rootDir/common.gradle" diff --git a/src/pt/xsscan/res/mipmap-hdpi/ic_launcher.png b/src/pt/xsscan/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index d02c4640a..000000000 Binary files a/src/pt/xsscan/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/xsscan/res/mipmap-mdpi/ic_launcher.png b/src/pt/xsscan/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 9b2b66b2d..000000000 Binary files a/src/pt/xsscan/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/xsscan/res/mipmap-xhdpi/ic_launcher.png b/src/pt/xsscan/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 9243122ee..000000000 Binary files a/src/pt/xsscan/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/xsscan/res/mipmap-xxhdpi/ic_launcher.png b/src/pt/xsscan/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 7773881f3..000000000 Binary files a/src/pt/xsscan/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/xsscan/res/mipmap-xxxhdpi/ic_launcher.png b/src/pt/xsscan/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index ab62bcba2..000000000 Binary files a/src/pt/xsscan/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/xsscan/src/eu/kanade/tachiyomi/extension/pt/xsscan/XsScan.kt b/src/pt/xsscan/src/eu/kanade/tachiyomi/extension/pt/xsscan/XsScan.kt deleted file mode 100644 index 137ca06da..000000000 --- a/src/pt/xsscan/src/eu/kanade/tachiyomi/extension/pt/xsscan/XsScan.kt +++ /dev/null @@ -1,19 +0,0 @@ -package eu.kanade.tachiyomi.extension.pt.xsscan - -import eu.kanade.tachiyomi.multisrc.madara.Madara -import eu.kanade.tachiyomi.network.interceptor.rateLimit -import java.text.SimpleDateFormat -import java.util.Locale - -class XsScan : Madara( - "Xs Scan", - "https://xsscan.xyz", - "pt-BR", - SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR")), -) { - override val client = super.client.newBuilder() - .rateLimit(3) - .build() - - override val useNewChapterEndpoint = true -} diff --git a/src/pt/yushukemangas/build.gradle b/src/pt/yushukemangas/build.gradle deleted file mode 100644 index 59ecd0676..000000000 --- a/src/pt/yushukemangas/build.gradle +++ /dev/null @@ -1,10 +0,0 @@ -ext { - extName = 'Yushuke Mangas' - extClass = '.YushukeMangas' - themePkg = 'yuyu' - baseUrl = 'https://new.yushukemangas.com' - overrideVersionCode = 7 - isNsfw = false -} - -apply from: "$rootDir/common.gradle" diff --git a/src/pt/yushukemangas/res/mipmap-hdpi/ic_launcher.png b/src/pt/yushukemangas/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index c7cf92e5b..000000000 Binary files a/src/pt/yushukemangas/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/yushukemangas/res/mipmap-mdpi/ic_launcher.png b/src/pt/yushukemangas/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 4c7ede7c8..000000000 Binary files a/src/pt/yushukemangas/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/yushukemangas/res/mipmap-xhdpi/ic_launcher.png b/src/pt/yushukemangas/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 400fa1d4c..000000000 Binary files a/src/pt/yushukemangas/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/yushukemangas/res/mipmap-xxhdpi/ic_launcher.png b/src/pt/yushukemangas/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 086dc4086..000000000 Binary files a/src/pt/yushukemangas/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/yushukemangas/res/mipmap-xxxhdpi/ic_launcher.png b/src/pt/yushukemangas/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 55259aed9..000000000 Binary files a/src/pt/yushukemangas/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/pt/yushukemangas/src/eu/kanade/tachiyomi/extension/pt/yushukemangas/ChapterDto.kt b/src/pt/yushukemangas/src/eu/kanade/tachiyomi/extension/pt/yushukemangas/ChapterDto.kt deleted file mode 100644 index 93bfa0abf..000000000 --- a/src/pt/yushukemangas/src/eu/kanade/tachiyomi/extension/pt/yushukemangas/ChapterDto.kt +++ /dev/null @@ -1,25 +0,0 @@ -package eu.kanade.tachiyomi.extension.pt.yushukemangas - -import eu.kanade.tachiyomi.extension.pt.yushukemangas.YushukeMangas.Companion.dateFormat -import eu.kanade.tachiyomi.source.model.SChapter -import keiyoushi.utils.tryParse -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable - -@Serializable -class ChapterDto( - val id: Int, - @SerialName("numero") - val number: Float, - @SerialName("titulo") - val name: String, - @SerialName("data_publicacao") - val date: String, -) { - fun toSChapter(chapterUrl: String) = SChapter.create().apply { - name = this@ChapterDto.name - chapter_number = number - date_upload = dateFormat.tryParse(date) - url = "$chapterUrl/capitulo/$id" - } -} diff --git a/src/pt/yushukemangas/src/eu/kanade/tachiyomi/extension/pt/yushukemangas/YushukeMangas.kt b/src/pt/yushukemangas/src/eu/kanade/tachiyomi/extension/pt/yushukemangas/YushukeMangas.kt deleted file mode 100644 index 9b1d8f7f2..000000000 --- a/src/pt/yushukemangas/src/eu/kanade/tachiyomi/extension/pt/yushukemangas/YushukeMangas.kt +++ /dev/null @@ -1,87 +0,0 @@ -package eu.kanade.tachiyomi.extension.pt.yushukemangas - -import eu.kanade.tachiyomi.multisrc.yuyu.YuYu -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.network.interceptor.rateLimit -import eu.kanade.tachiyomi.source.model.SChapter -import eu.kanade.tachiyomi.source.model.SManga -import keiyoushi.utils.parseAs -import okhttp3.HttpUrl.Companion.toHttpUrl -import okhttp3.Response -import org.jsoup.nodes.Document -import rx.Observable -import java.text.SimpleDateFormat -import java.util.Locale - -class YushukeMangas : YuYu( - "Yushuke Mangas", - "https://new.yushukemangas.com", - "pt-BR", -) { - - override val client = super.client.newBuilder() - .rateLimit(2) - .build() - - override val versionId = 2 - - override fun mangaDetailsParse(document: Document): SManga { - if (document.location().contains(MANGA_URL_ID_REGEX).not()) { - return super.mangaDetailsParse(document) - } - - return SManga.create().apply { - title = document.selectFirst("h1")!!.text() - thumbnail_url = document.selectFirst(".detalhe-capa-img")?.absUrl("src") - genre = document.select(".detalhe-tags-chips span").joinToString { it.text() } - description = document.selectFirst(".detalhe-sinopse")?.text() - document.selectFirst(".detalhe-chip.status")?.ownText()?.let { - status = it.toStatus() - } - } - } - - override fun getMangaId(manga: SManga): String { - return when { - manga.isOldEntry() -> super.getMangaId(manga) - else -> MANGA_URL_ID_REGEX.find(manga.url)?.groups?.get(1)?.value ?: "" - } - } - - private fun SManga.isOldEntry(): Boolean = MANGA_URL_ID_REGEX.containsMatchIn(url).not() - - override fun fetchChapterList(manga: SManga): Observable> { - if (manga.isOldEntry()) { - return super.fetchChapterList(manga) - } - - val mangaId = getMangaId(manga).takeIf(String::isNotBlank) - ?: throw Exception("Manga ID não encontrado") - - val chapters = mutableListOf() - var page = 1 - val url = manga.url.replace("/$mangaId", "") - do { - val chaptersDto = fetchChapterListPage(mangaId, page++).parseAs>>() - chapters += chaptersDto.chapters.map { it.toSChapter(url) } - } while (chaptersDto.hasNext()) - - return Observable.just(chapters) - } - - private fun fetchChapterListPage(mangaId: String, page: Int): Response { - val url = "$baseUrl/ajax/get_chapters.php".toHttpUrl().newBuilder() - .addQueryParameter("manga_id", mangaId) - .addQueryParameter("page", page.toString()) - .build() - - return client - .newCall(GET(url, headers)) - .execute() - } - - companion object { - val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.ROOT) - private val MANGA_URL_ID_REGEX = """\/obra\/(\d+)\/.+$""".toRegex() - } -}