diff --git a/src/id/komikindo/build.gradle b/src/id/komikindo/build.gradle new file mode 100644 index 000000000..bb5016b52 --- /dev/null +++ b/src/id/komikindo/build.gradle @@ -0,0 +1,10 @@ +ext { + extName = 'Komikindo' + extClass = '.Komikindo' + themePkg = 'mangathemesia' + baseUrl = 'https://komikindo.sbs' + overrideVersionCode = 0 + isNsfw = true +} + +apply from: "$rootDir/common.gradle" diff --git a/src/id/komikindo/res/mipmap-hdpi/ic_launcher.png b/src/id/komikindo/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..4802d1b77 Binary files /dev/null and b/src/id/komikindo/res/mipmap-hdpi/ic_launcher.png differ diff --git a/src/id/komikindo/res/mipmap-mdpi/ic_launcher.png b/src/id/komikindo/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..cc7491050 Binary files /dev/null and b/src/id/komikindo/res/mipmap-mdpi/ic_launcher.png differ diff --git a/src/id/komikindo/res/mipmap-xhdpi/ic_launcher.png b/src/id/komikindo/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..ee2e51cea Binary files /dev/null and b/src/id/komikindo/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/src/id/komikindo/res/mipmap-xxhdpi/ic_launcher.png b/src/id/komikindo/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..834b7317a Binary files /dev/null and b/src/id/komikindo/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/src/id/komikindo/res/mipmap-xxxhdpi/ic_launcher.png b/src/id/komikindo/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..dd43a73b6 Binary files /dev/null and b/src/id/komikindo/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/src/id/komikindo/src/eu/kanade/tachiyomi/extension/id/komikindo/Komikindo.kt b/src/id/komikindo/src/eu/kanade/tachiyomi/extension/id/komikindo/Komikindo.kt new file mode 100644 index 000000000..19b289977 --- /dev/null +++ b/src/id/komikindo/src/eu/kanade/tachiyomi/extension/id/komikindo/Komikindo.kt @@ -0,0 +1,43 @@ +package eu.kanade.tachiyomi.extension.id.komikindo + +import eu.kanade.tachiyomi.multisrc.mangathemesia.MangaThemesia +import eu.kanade.tachiyomi.source.model.Page +import eu.kanade.tachiyomi.source.model.SManga +import okhttp3.HttpUrl.Companion.toHttpUrlOrNull +import org.jsoup.nodes.Document + +class Komikindo : MangaThemesia( + "Komikindo", + "https://komikindo.sbs", + "id", +) { + // Some covers fail to load with no Accept header + no resize parameter. + // Hence the workarounds: + + private val cdnHeaders = imageRequest(Page(0, "$baseUrl/", baseUrl)).headers + + override val client = super.client.newBuilder() + .addInterceptor { chain -> + val request = chain.request() + val url = request.url.toString() + if (url.contains("/wp-content/uploads/")) { + return@addInterceptor chain.proceed(request.newBuilder().headers(cdnHeaders).build()) + } + chain.proceed(request) + } + .build() + + override fun mangaDetailsParse(document: Document): SManga { + return super.mangaDetailsParse(document).apply { + thumbnail_url = thumbnail_url + ?.toHttpUrlOrNull() + ?.takeIf { it.queryParameter("resize") == null } + ?.newBuilder() + ?.setEncodedQueryParameter("resize", "165,225") + ?.build() + ?.toString() + } + } + + override val hasProjectPage = true +}