diff --git a/src/pt/safirescan/build.gradle b/src/pt/safirescan/build.gradle new file mode 100644 index 000000000..4150f49d7 --- /dev/null +++ b/src/pt/safirescan/build.gradle @@ -0,0 +1,10 @@ +ext { + extName = 'Safire Scan' + extClass = '.SafireScan' + themePkg = 'zeistmanga' + baseUrl = 'https://www.safirescan.xyz' + overrideVersionCode = 0 + isNsfw = true +} + +apply from: "$rootDir/common.gradle" diff --git a/src/pt/safirescan/res/mipmap-hdpi/ic_launcher.png b/src/pt/safirescan/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..d5b8965a8 Binary files /dev/null and b/src/pt/safirescan/res/mipmap-hdpi/ic_launcher.png differ diff --git a/src/pt/safirescan/res/mipmap-mdpi/ic_launcher.png b/src/pt/safirescan/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..7b5de0d3e Binary files /dev/null and b/src/pt/safirescan/res/mipmap-mdpi/ic_launcher.png differ diff --git a/src/pt/safirescan/res/mipmap-xhdpi/ic_launcher.png b/src/pt/safirescan/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..a868c3ebb Binary files /dev/null and b/src/pt/safirescan/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/src/pt/safirescan/res/mipmap-xxhdpi/ic_launcher.png b/src/pt/safirescan/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..f3296fff7 Binary files /dev/null and b/src/pt/safirescan/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/src/pt/safirescan/res/mipmap-xxxhdpi/ic_launcher.png b/src/pt/safirescan/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..7a68b08ee Binary files /dev/null and b/src/pt/safirescan/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/src/pt/safirescan/src/eu/kanade/tachiyomi/extension/pt/safirescan/SafireScan.kt b/src/pt/safirescan/src/eu/kanade/tachiyomi/extension/pt/safirescan/SafireScan.kt new file mode 100644 index 000000000..c258c9cae --- /dev/null +++ b/src/pt/safirescan/src/eu/kanade/tachiyomi/extension/pt/safirescan/SafireScan.kt @@ -0,0 +1,44 @@ +package eu.kanade.tachiyomi.extension.pt.safirescan + +import eu.kanade.tachiyomi.multisrc.zeistmanga.ZeistManga +import eu.kanade.tachiyomi.network.interceptor.rateLimit +import eu.kanade.tachiyomi.source.model.SManga +import eu.kanade.tachiyomi.util.asJsoup +import okhttp3.Response +import java.util.concurrent.TimeUnit + +class SafireScan : ZeistManga( + "Safire Scan", + "https://www.safirescan.xyz", + "pt-BR", +) { + override val client = super.client.newBuilder() + .rateLimit(2, 1, TimeUnit.SECONDS) + .build() + + override val popularMangaSelector = "div.PopularPosts.mt-4 div.grid > article" + override val popularMangaSelectorTitle = "h3 > a" + override val popularMangaSelectorUrl = "div.item-thumbnail > a" + override val mangaDetailsSelector = "div.Blog" + override val mangaDetailsSelectorDescription = "#synopsis > p" + override val mangaDetailsSelectorGenres = "dl.flex:contains(GĂȘnero) > dd > a[rel=tag]" + override val mangaDetailsSelectorAuthor = "#extra-info div:contains(Autor)" + override val mangaDetailsSelectorArtist = "#extra-info div:contains(Artista)" + override val mangaDetailsSelectorInfo = "span.mr-2.rounded" + + override fun mangaDetailsParse(response: Response): SManga { + val document = response.asJsoup() + val blog = document.selectFirst(mangaDetailsSelector)!! + return SManga.create().apply { + thumbnail_url = blog.selectFirst("header div.grid > img")!!.attr("abs:src") + description = blog.selectFirst(mangaDetailsSelectorDescription)!!.text() + genre = blog.select(mangaDetailsSelectorGenres) + .joinToString { it.text() } + author = blog.selectFirst(mangaDetailsSelectorAuthor)?.text() + artist = blog.selectFirst(mangaDetailsSelectorArtist)?.text() + status = parseStatus(blog.selectFirst(mangaDetailsSelectorInfo)!!.text()) + } + } + + override val pageListSelector = "div.separator img" +}