E9yRt2#r>&KP-;{=ZT^Ppo5l03Ycu={sU{m!Ww{fCwBjUspmq%m+Pf+LZeu
zS^kwl8RJl~>KJ(LImz7TB;`QFaI%06=p1A*A90JF*w{hKHRdG&ZD^s^5v};EK!C|p
zF(AsWd{jRZf$puO5xgo>-$+0s0aZqz
l%FQ=wKqCQFMxe^g|36<|TSCt3+Iau~002ovPDHLkV1oLID(?UQ
literal 0
HcmV?d00001
diff --git a/src/pt/bakai/res/mipmap-xxhdpi/ic_launcher.png b/src/pt/bakai/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..475f77355b2727ca40252bd90d3220ec0e9318e6
GIT binary patch
literal 8115
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
N002ovPDHLkV1lcDIh6na
literal 0
HcmV?d00001
diff --git a/src/pt/bakai/res/mipmap-xxxhdpi/ic_launcher.png b/src/pt/bakai/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..533a6e19a27dfbb7060d4b45d229ceee011ad808
GIT binary patch
literal 10538
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
b`iQ5OzT6h9EEtL0fdmxas>+s18-4wM*t>>v
literal 0
HcmV?d00001
diff --git a/src/pt/bakai/src/eu/kanade/tachiyomi/extension/pt/bakai/Bakai.kt b/src/pt/bakai/src/eu/kanade/tachiyomi/extension/pt/bakai/Bakai.kt
new file mode 100644
index 000000000..b37ed49a1
--- /dev/null
+++ b/src/pt/bakai/src/eu/kanade/tachiyomi/extension/pt/bakai/Bakai.kt
@@ -0,0 +1,160 @@
+package eu.kanade.tachiyomi.extension.pt.bakai
+
+import eu.kanade.tachiyomi.network.GET
+import eu.kanade.tachiyomi.network.asObservableSuccess
+import eu.kanade.tachiyomi.network.interceptor.rateLimitHost
+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.model.UpdateStrategy
+import eu.kanade.tachiyomi.source.online.ParsedHttpSource
+import eu.kanade.tachiyomi.util.asJsoup
+import okhttp3.HttpUrl.Companion.toHttpUrl
+import okhttp3.Request
+import okhttp3.Response
+import org.jsoup.nodes.Document
+import org.jsoup.nodes.Element
+import rx.Observable
+import java.util.concurrent.TimeUnit
+
+class Bakai : ParsedHttpSource() {
+
+ override val name = "Bakai"
+
+ override val baseUrl = "https://bakai.org"
+
+ override val lang = "pt-BR"
+
+ override val supportsLatest = false
+
+ override val client by lazy {
+ network.client.newBuilder()
+ .rateLimitHost(baseUrl.toHttpUrl(), 1, 2, TimeUnit.SECONDS)
+ .build()
+ }
+
+ // ============================== Popular ===============================
+ override fun popularMangaRequest(page: Int) = GET("$baseUrl/home1/page/$page/")
+
+ override fun popularMangaSelector() = "#elCmsPageWrap ul > li > article"
+
+ override fun popularMangaFromElement(element: Element) = SManga.create().apply {
+ thumbnail_url = element.selectFirst("img")?.absUrl("src")
+ with(element.selectFirst("h2.ipsType_pageTitle a")!!) {
+ title = text()
+ setUrlWithoutDomain(attr("href"))
+ }
+ }
+
+ override fun popularMangaNextPageSelector() = "li.ipsPagination_next:not(.ipsPagination_inactive) > a[rel=next]"
+
+ // =============================== Latest ===============================
+ override fun latestUpdatesRequest(page: Int): Request {
+ throw UnsupportedOperationException("Not used.")
+ }
+
+ override fun latestUpdatesSelector(): String {
+ throw UnsupportedOperationException("Not used.")
+ }
+
+ override fun latestUpdatesFromElement(element: Element): SManga {
+ throw UnsupportedOperationException("Not used.")
+ }
+
+ override fun latestUpdatesNextPageSelector(): String? {
+ throw UnsupportedOperationException("Not used.")
+ }
+
+ // =============================== Search ===============================
+ override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable {
+ return if (query.startsWith(PREFIX_SEARCH)) { // URL intent handler
+ val id = query.removePrefix(PREFIX_SEARCH)
+ client.newCall(GET("$baseUrl/hentai/$id"))
+ .asObservableSuccess()
+ .map(::searchMangaByIdParse)
+ } else {
+ super.fetchSearchManga(page, query, filters)
+ }
+ }
+
+ private fun searchMangaByIdParse(response: Response): MangasPage {
+ val details = mangaDetailsParse(response.use { it.asJsoup() })
+ return MangasPage(listOf(details), false)
+ }
+
+ override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
+ val url = "$baseUrl/search1/".toHttpUrl().newBuilder()
+ .addQueryParameter("q", query)
+ .addQueryParameter("type", "cms_records1")
+ .addQueryParameter("page", page.toString())
+ .addQueryParameter("sortby", "relevancy")
+ .addQueryParameter("search_and_or", "or")
+ .build()
+
+ return GET(url, headers)
+ }
+
+ override fun searchMangaSelector() = "ol > li > div"
+
+ override fun searchMangaFromElement(element: Element) = SManga.create().apply {
+ thumbnail_url = element.selectFirst(".ipsThumb img")?.absUrl("src")
+
+ with(element.selectFirst("h2.ipsStreamItem_title a")!!) {
+ title = text()
+ setUrlWithoutDomain(attr("href"))
+ }
+ }
+
+ override fun searchMangaNextPageSelector() = popularMangaNextPageSelector()
+
+ // =========================== Manga Details ============================
+ override fun mangaDetailsParse(document: Document) = SManga.create().apply {
+ title = document.selectFirst("h1.ipsType_pageTitle")?.text() ?: "Hentai"
+ thumbnail_url = document.selectFirst("div.cCmsRecord_image img")?.absUrl("src")
+ artist = document.selectFirst("span.mangaInfo:contains(Artist:) + a")?.text()
+ genre = document.selectFirst("span.mangaInfo:contains(Tags:) + span")?.text()
+ description = document.selectFirst("h2.ipsFieldRow_desc")?.let {
+ // Alternative titles
+ "TÃtulos alternativos: ${it.text()}"
+ }
+ status = SManga.COMPLETED
+ update_strategy = UpdateStrategy.ONLY_FETCH_ONCE
+ }
+
+ // ============================== Chapters ==============================
+ override fun fetchChapterList(manga: SManga): Observable> {
+ val chapter = SChapter.create().apply {
+ name = "Hentai"
+ chapter_number = 1F
+ url = manga.url
+ }
+
+ return Observable.just(listOf(chapter))
+ }
+
+ override fun chapterListSelector(): String {
+ throw UnsupportedOperationException("Not used.")
+ }
+
+ override fun chapterFromElement(element: Element): SChapter {
+ throw UnsupportedOperationException("Not used.")
+ }
+
+ // =============================== Pages ================================
+ override fun pageListParse(document: Document): List {
+ return document.select("div.ipsGrid div.ipsType_center > img")
+ .mapIndexed { index, item ->
+ Page(index, "", item.absUrl("data-src"))
+ }
+ }
+
+ override fun imageUrlParse(document: Document): String {
+ throw UnsupportedOperationException("Not used.")
+ }
+
+ companion object {
+ const val PREFIX_SEARCH = "id:"
+ }
+}
diff --git a/src/pt/bakai/src/eu/kanade/tachiyomi/extension/pt/bakai/BakaiUrlActivity.kt b/src/pt/bakai/src/eu/kanade/tachiyomi/extension/pt/bakai/BakaiUrlActivity.kt
new file mode 100644
index 000000000..c83529341
--- /dev/null
+++ b/src/pt/bakai/src/eu/kanade/tachiyomi/extension/pt/bakai/BakaiUrlActivity.kt
@@ -0,0 +1,41 @@
+package eu.kanade.tachiyomi.extension.pt.bakai
+
+import android.app.Activity
+import android.content.ActivityNotFoundException
+import android.content.Intent
+import android.os.Bundle
+import android.util.Log
+import kotlin.system.exitProcess
+
+/**
+ * Springboard that accepts https://bakai.org/hentai/- intents
+ * and redirects them to the main Tachiyomi process.
+ */
+class BakaiUrlActivity : Activity() {
+
+ private val tag = javaClass.simpleName
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ val pathSegments = intent?.data?.pathSegments
+ if (pathSegments != null && pathSegments.size > 1) {
+ val item = pathSegments[1]
+ val mainIntent = Intent().apply {
+ action = "eu.kanade.tachiyomi.SEARCH"
+ putExtra("query", "${Bakai.PREFIX_SEARCH}$item")
+ putExtra("filter", packageName)
+ }
+
+ try {
+ startActivity(mainIntent)
+ } catch (e: ActivityNotFoundException) {
+ Log.e(tag, e.toString())
+ }
+ } else {
+ Log.e(tag, "could not parse uri from intent $intent")
+ }
+
+ finish()
+ exitProcess(0)
+ }
+}