diff --git a/multisrc/overrides/wpmangareader/default/additional.gradle.kts b/multisrc/overrides/wpmangareader/default/additional.gradle.kts new file mode 100644 index 000000000..10beb8157 --- /dev/null +++ b/multisrc/overrides/wpmangareader/default/additional.gradle.kts @@ -0,0 +1,4 @@ + +dependencies { + implementation project(':lib-ratelimit') +} diff --git a/multisrc/overrides/wpmangareader/silencescan/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/wpmangareader/silencescan/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..f70533a11 Binary files /dev/null and b/multisrc/overrides/wpmangareader/silencescan/res/mipmap-hdpi/ic_launcher.png differ diff --git a/multisrc/overrides/wpmangareader/silencescan/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/wpmangareader/silencescan/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..585966eaf Binary files /dev/null and b/multisrc/overrides/wpmangareader/silencescan/res/mipmap-mdpi/ic_launcher.png differ diff --git a/multisrc/overrides/wpmangareader/silencescan/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/wpmangareader/silencescan/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..c6f5192ee Binary files /dev/null and b/multisrc/overrides/wpmangareader/silencescan/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/wpmangareader/silencescan/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/wpmangareader/silencescan/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..75a095e4f Binary files /dev/null and b/multisrc/overrides/wpmangareader/silencescan/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/wpmangareader/silencescan/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/wpmangareader/silencescan/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..4d5cf0f77 Binary files /dev/null and b/multisrc/overrides/wpmangareader/silencescan/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/wpmangareader/silencescan/res/web_hi_res_512.png b/multisrc/overrides/wpmangareader/silencescan/res/web_hi_res_512.png new file mode 100644 index 000000000..a8189e405 Binary files /dev/null and b/multisrc/overrides/wpmangareader/silencescan/res/web_hi_res_512.png differ diff --git a/multisrc/overrides/wpmangareader/silencescan/src/SilenceScan.kt b/multisrc/overrides/wpmangareader/silencescan/src/SilenceScan.kt new file mode 100644 index 000000000..2c31e1385 --- /dev/null +++ b/multisrc/overrides/wpmangareader/silencescan/src/SilenceScan.kt @@ -0,0 +1,35 @@ +package eu.kanade.tachiyomi.extension.pt.silencescan + +import eu.kanade.tachiyomi.annotations.Nsfw +import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor +import eu.kanade.tachiyomi.multisrc.wpmangareader.WPMangaReader +import eu.kanade.tachiyomi.source.model.SManga +import okhttp3.OkHttpClient +import java.text.SimpleDateFormat +import java.util.Locale +import java.util.concurrent.TimeUnit + +@Nsfw +class SilenceScan : WPMangaReader( + "Silence Scan", + "https://silencescan.com.br", + "pt-BR", + dateFormat = SimpleDateFormat("MMMMM dd, yyyy", Locale("pt", "BR")) +) { + + override val versionId: Int = 2 + + override val client: OkHttpClient = network.cloudflareClient.newBuilder() + .connectTimeout(10, TimeUnit.SECONDS) + .readTimeout(30, TimeUnit.SECONDS) + .addNetworkInterceptor(RateLimitInterceptor(1, 2, TimeUnit.SECONDS)) + .build() + + override val altName = "Nome alternativo: " + + override fun parseStatus(status: String) = when { + status.contains("Em Andamento") -> SManga.ONGOING + status.contains("Completo") -> SManga.COMPLETED + else -> SManga.UNKNOWN + } +} diff --git a/multisrc/overrides/wpmangastream/silencescan/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/wpmangastream/silencescan/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 93f01396c..000000000 Binary files a/multisrc/overrides/wpmangastream/silencescan/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/wpmangastream/silencescan/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/wpmangastream/silencescan/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index c4431156b..000000000 Binary files a/multisrc/overrides/wpmangastream/silencescan/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/wpmangastream/silencescan/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/wpmangastream/silencescan/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 49c725229..000000000 Binary files a/multisrc/overrides/wpmangastream/silencescan/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/wpmangastream/silencescan/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/wpmangastream/silencescan/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 8a7557144..000000000 Binary files a/multisrc/overrides/wpmangastream/silencescan/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/wpmangastream/silencescan/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/wpmangastream/silencescan/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index e263f177c..000000000 Binary files a/multisrc/overrides/wpmangastream/silencescan/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/wpmangastream/silencescan/res/web_hi_res_512.png b/multisrc/overrides/wpmangastream/silencescan/res/web_hi_res_512.png deleted file mode 100644 index b888ac94f..000000000 Binary files a/multisrc/overrides/wpmangastream/silencescan/res/web_hi_res_512.png and /dev/null differ diff --git a/multisrc/overrides/wpmangastream/silencescan/src/SilenceScan.kt b/multisrc/overrides/wpmangastream/silencescan/src/SilenceScan.kt deleted file mode 100644 index adbabe3e9..000000000 --- a/multisrc/overrides/wpmangastream/silencescan/src/SilenceScan.kt +++ /dev/null @@ -1,121 +0,0 @@ -package eu.kanade.tachiyomi.extension.pt.silencescan - -import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor -import eu.kanade.tachiyomi.multisrc.wpmangastream.WPMangaStream -import eu.kanade.tachiyomi.source.model.SChapter -import eu.kanade.tachiyomi.source.model.SManga -import kotlinx.serialization.json.Json -import okhttp3.OkHttpClient -import org.jsoup.nodes.Document -import org.jsoup.nodes.Element -import uy.kohesive.injekt.injectLazy -import java.text.SimpleDateFormat -import java.util.Locale -import java.util.concurrent.TimeUnit - -class SilenceScan : WPMangaStream( - "Silence Scan", - "https://silencescan.net", - "pt-BR", - SimpleDateFormat("MMMM dd, yyyy", Locale("pt", "BR")) -) { - - override val client: OkHttpClient = network.cloudflareClient.newBuilder() - .connectTimeout(10, TimeUnit.SECONDS) - .readTimeout(30, TimeUnit.SECONDS) - .addNetworkInterceptor(RateLimitInterceptor(1, 2, TimeUnit.SECONDS)) - .build() - - private val json: Json by injectLazy() - - override fun mangaDetailsParse(document: Document): SManga = SManga.create().apply { - val infoEl = document.select("div.bigcontent, div.animefull, div.main-info").first() - - author = infoEl.select("div.imptdt:contains(Autor) i").text() - artist = infoEl.select("div.imptdt:contains(Artista) + i").text() - status = parseStatus(infoEl.select("div.imptdt:contains(Status) i").text()) - description = infoEl.select("h2:contains(Sinopse) + div p:not([class])").joinToString("\n") { it.text() } - thumbnail_url = infoEl.select("div.thumb img").imgAttr() - - val genres = infoEl.select("span.mgen a[rel]") - .map { element -> element.text() } - .toMutableSet() - - // add series type(manga/manhwa/manhua/other) thinggy to genre - document.select(seriesTypeSelector).firstOrNull()?.ownText()?.let { - if (it.isEmpty().not() && genres.contains(it).not()) { - genres.add(it) - } - } - - genre = genres.toList().joinToString() - - // add alternative name to manga description - document.select(altNameSelector).firstOrNull()?.ownText()?.let { - if (it.isEmpty().not() && it != "N/A" && it != "-") { - description += when { - description!!.isEmpty() -> altName + it - else -> "\n\n$altName" + it - } - } - } - } - - override val seriesTypeSelector = ".imptdt:contains(Tipo) a, a[href*=type\\=]" - override val altName: String = "Nome alternativo: " - - override fun parseStatus(element: String?): Int = when { - element == null -> SManga.UNKNOWN - element.contains("em andamento", true) -> SManga.ONGOING - element.contains("completo", true) -> SManga.COMPLETED - else -> SManga.UNKNOWN - } - - override fun chapterFromElement(element: Element): SChapter = SChapter.create().apply { - name = element.select("span.chapternum").text() - scanlator = this@SilenceScan.name - date_upload = element.select("span.chapterdate").firstOrNull()?.text() - ?.let { parseChapterDate(it) } ?: 0 - setUrlWithoutDomain(element.select("div.eph-num > a").attr("href")) - } - - override fun getGenreList(): List = listOf( - Genre("4-koma", "4-koma"), - Genre("Ação", "acao"), - Genre("Adulto", "adulto"), - Genre("Artes marciais", "artes-marciais"), - Genre("Comédia", "comedia"), - Genre("Comedy", "comedy"), - Genre("Culinária", "culinaria"), - Genre("Drama", "drama"), - Genre("Ecchi", "ecchi"), - Genre("Esporte", "esporte"), - Genre("Fantasia", "fantasia"), - Genre("Gore", "gore"), - Genre("Harém", "harem"), - Genre("Horror", "horror"), - Genre("Isekai", "isekai"), - Genre("Militar", "militar"), - Genre("Mistério", "misterio"), - Genre("Oneshot", "oneshot"), - Genre("Parcialmente Dropado", "parcialmente-dropado"), - Genre("Psicológico", "psicologico"), - Genre("Romance", "romance"), - Genre("School Life", "school-life"), - Genre("Sci-fi", "sci-fi"), - Genre("Seinen", "seinen"), - Genre("Shoujo Ai", "shoujo-ai"), - Genre("Shounen", "shounen"), - Genre("Slice of life", "slice-of-life"), - Genre("Sobrenatural", "sobrenatural"), - Genre("Supernatural", "supernatural"), - Genre("Tragédia", "tragedia"), - Genre("Vida Escolar", "vida-escolar"), - Genre("Violência sexual", "violencia-sexual"), - Genre("Yuri", "yuri") - ) - - companion object { - private val PORTUGUESE_LOCALE = Locale("pt", "BR") - } -} diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangareader/WPMangaReaderGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangareader/WPMangaReaderGenerator.kt index eb7013717..d2b78dbaf 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangareader/WPMangaReaderGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangareader/WPMangaReaderGenerator.kt @@ -34,6 +34,7 @@ class WPMangaReaderGenerator : ThemeSourceGenerator { SingleLang("Patatescans", "https://patatescans.com", "fr", isNsfw = true, overrideVersionCode = 1), SingleLang("Fusion Scanlation", "https://fusionscanlation.com", "es", className = "FusionScanlation", overrideVersionCode = 1), SingleLang("Ace Scans", "https://acescans.xyz", "en", isNsfw = true, overrideVersionCode = 1), + SingleLang("Silence Scan", "https://silencescan.com.br", "pt-BR", isNsfw = true, overrideVersionCode = 5), ) companion object { diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangastream/WPMangaStreamGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangastream/WPMangaStreamGenerator.kt index 7ce40cd57..be4ebce69 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangastream/WPMangaStreamGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangastream/WPMangaStreamGenerator.kt @@ -36,7 +36,6 @@ class WPMangaStreamGenerator : ThemeSourceGenerator { SingleLang("Manga Raw.org", "https://mangaraw.org", "ja", className = "MangaRawOrg", overrideVersionCode = 1), SingleLang("Manga Pro Z", "https://mangaproz.com", "ar"), SingleLang("Mihentai", "https://mihentai.com", "en", isNsfw = true), - SingleLang("Silence Scan", "https://silencescan.net", "pt-BR", overrideVersionCode = 3), SingleLang("Kuma Scans (Kuma Translation)", "https://kumascans.com", "en", className = "KumaScans", overrideVersionCode = 1), SingleLang("Tempest Manga", "https://manga.tempestfansub.com", "tr"), SingleLang("xCaliBR Scans", "https://xcalibrscans.com", "en", overrideVersionCode = 2),