From 4856f0b89e79f98ea50d3872df4e3a007fbe798e Mon Sep 17 00:00:00 2001 From: Claudemirovsky <63046606+Claudemirovsky@users.noreply.github.com> Date: Sat, 3 Feb 2024 14:59:16 -0300 Subject: [PATCH] New source: en/Cutie Comics (#948) * feat: Create Cutie Comics base * feat: Implement popular manga page * feat: Implement search manga page * chore: Add isNsfw flag * feat: Implement manga details page * fix: Fix URL intent handler * feat: Implement single-chapter "list" * feat: Parse page list * chore: Add source icon * fix: Fix crash in URL intent handler * refactor: Follow chapter name convention --- src/en/cutiecomics/AndroidManifest.xml | 22 +++ src/en/cutiecomics/build.gradle | 8 + .../res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 5740 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 3155 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 8568 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 16153 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 23537 bytes .../extension/en/cutiecomics/CutieComics.kt | 150 ++++++++++++++++++ .../en/cutiecomics/CutieComicsUrlActivity.kt | 41 +++++ 9 files changed, 221 insertions(+) create mode 100644 src/en/cutiecomics/AndroidManifest.xml create mode 100644 src/en/cutiecomics/build.gradle create mode 100644 src/en/cutiecomics/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/en/cutiecomics/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/en/cutiecomics/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/en/cutiecomics/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/en/cutiecomics/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/en/cutiecomics/src/eu/kanade/tachiyomi/extension/en/cutiecomics/CutieComics.kt create mode 100644 src/en/cutiecomics/src/eu/kanade/tachiyomi/extension/en/cutiecomics/CutieComicsUrlActivity.kt diff --git a/src/en/cutiecomics/AndroidManifest.xml b/src/en/cutiecomics/AndroidManifest.xml new file mode 100644 index 000000000..7d24cef50 --- /dev/null +++ b/src/en/cutiecomics/AndroidManifest.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + diff --git a/src/en/cutiecomics/build.gradle b/src/en/cutiecomics/build.gradle new file mode 100644 index 000000000..b74233118 --- /dev/null +++ b/src/en/cutiecomics/build.gradle @@ -0,0 +1,8 @@ +ext { + extName = 'Cutie Comics' + extClass = '.CutieComics' + extVersionCode = 1 + isNsfw = true +} + +apply from: "$rootDir/common.gradle" diff --git a/src/en/cutiecomics/res/mipmap-hdpi/ic_launcher.png b/src/en/cutiecomics/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..97ade9628f66ac865927832f1e218c38db06e391 GIT binary patch literal 5740 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 literal 0 HcmV?d00001 diff --git a/src/en/cutiecomics/res/mipmap-xhdpi/ic_launcher.png b/src/en/cutiecomics/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..2a5793e6f963262263ceeb146132a6ead30b9a04 GIT binary patch literal 8568 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%0A?tY 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 literal 0 HcmV?d00001 diff --git a/src/en/cutiecomics/res/mipmap-xxxhdpi/ic_launcher.png b/src/en/cutiecomics/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..cd1dafc951520fdfa66ec1d23d6759b6197c166a GIT binary patch literal 23537 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

MG8RnpBo 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 literal 0 HcmV?d00001 diff --git a/src/en/cutiecomics/src/eu/kanade/tachiyomi/extension/en/cutiecomics/CutieComics.kt b/src/en/cutiecomics/src/eu/kanade/tachiyomi/extension/en/cutiecomics/CutieComics.kt new file mode 100644 index 000000000..e55d957d9 --- /dev/null +++ b/src/en/cutiecomics/src/eu/kanade/tachiyomi/extension/en/cutiecomics/CutieComics.kt @@ -0,0 +1,150 @@ +package eu.kanade.tachiyomi.extension.en.cutiecomics + +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.network.POST +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.FormBody +import okhttp3.HttpUrl.Companion.toHttpUrl +import okhttp3.Request +import okhttp3.Response +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element +import rx.Observable + +class CutieComics : ParsedHttpSource() { + + override val name = "Cutie Comics" + + override val baseUrl = "https://cutiecomics.com" + + override val lang = "en" + + override val supportsLatest = false + + override val client = network.client.newBuilder() + .rateLimitHost(baseUrl.toHttpUrl(), 2) + .build() + + // ============================== Popular =============================== + override fun popularMangaRequest(page: Int) = GET("$baseUrl/page/$page", headers) + + override fun popularMangaSelector() = "#dle-content > div.w25" + + override fun popularMangaFromElement(element: Element) = SManga.create().apply { + with(element.selectFirst("strong.field-content > a")!!) { + title = ownText() + setUrlWithoutDomain(attr("href")) + } + thumbnail_url = element.selectFirst("a > img")?.absUrl("src") + } + + override fun popularMangaNextPageSelector() = ".navigation > a > i.fa-angle-right" + + // =============================== Latest =============================== + override fun latestUpdatesRequest(page: Int): Request { + throw UnsupportedOperationException() + } + + override fun latestUpdatesSelector(): String { + throw UnsupportedOperationException() + } + + override fun latestUpdatesFromElement(element: Element): SManga { + throw UnsupportedOperationException() + } + + override fun latestUpdatesNextPageSelector(): String? { + throw UnsupportedOperationException() + } + + // =============================== 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/$id")) + .asObservableSuccess() + .map(::searchMangaByIdParse) + } else { + super.fetchSearchManga(page, query, filters) + } + } + + private fun searchMangaByIdParse(response: Response): MangasPage { + val doc = response.asJsoup() + val details = mangaDetailsParse(doc) + .apply { setUrlWithoutDomain(doc.location()) } + return MangasPage(listOf(details), false) + } + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + require(query.isNotBlank() && query.length >= 4) { "Invalid search! It should have at least 4 non-blank characters." } + val body = FormBody.Builder() + .add("do", "search") + .add("subaction", "search") + .add("full_search", "0") + .add("search_start", "$page") + .add("result_from", "${(page - 1) * 20 + 1}") + .add("story", query) + .build() + return POST("$baseUrl/index.php?do=search", headers, body) + } + + override fun searchMangaSelector() = popularMangaSelector() + + override fun searchMangaFromElement(element: Element) = popularMangaFromElement(element) + + override fun searchMangaNextPageSelector() = popularMangaNextPageSelector() + + // =========================== Manga Details ============================ + override fun mangaDetailsParse(document: Document) = SManga.create().apply { + status = SManga.COMPLETED + update_strategy = UpdateStrategy.ONLY_FETCH_ONCE + + title = document.selectFirst("h1#page-title")!!.text() + thumbnail_url = document.selectFirst("div.galery > img")?.absUrl("src") + genre = document.select("h3.field-label ~ span").joinToString { it.text() } + } + + // ============================== Chapters ============================== + override fun fetchChapterList(manga: SManga): Observable> { + val chapter = SChapter.create().apply { + url = manga.url + chapter_number = 1F + name = "Chapter" + } + + return Observable.just(listOf(chapter)) + } + + override fun chapterListSelector(): String { + throw UnsupportedOperationException() + } + + override fun chapterFromElement(element: Element): SChapter { + throw UnsupportedOperationException() + } + + // =============================== Pages ================================ + override fun pageListParse(document: Document): List { + return document.select("div.galery > img").mapIndexed { index, item -> + Page(index, imageUrl = item.absUrl("src")) + } + } + + override fun imageUrlParse(document: Document): String { + throw UnsupportedOperationException() + } + + companion object { + const val PREFIX_SEARCH = "id:" + } +} diff --git a/src/en/cutiecomics/src/eu/kanade/tachiyomi/extension/en/cutiecomics/CutieComicsUrlActivity.kt b/src/en/cutiecomics/src/eu/kanade/tachiyomi/extension/en/cutiecomics/CutieComicsUrlActivity.kt new file mode 100644 index 000000000..4c19a9a95 --- /dev/null +++ b/src/en/cutiecomics/src/eu/kanade/tachiyomi/extension/en/cutiecomics/CutieComicsUrlActivity.kt @@ -0,0 +1,41 @@ +package eu.kanade.tachiyomi.extension.en.cutiecomics + +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://cutiecomics.com/ intents + * and redirects them to the main Tachiyomi process. + */ +class CutieComicsUrlActivity : Activity() { + + private val tag = javaClass.simpleName + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + val pathSegments = intent?.data?.pathSegments + if (pathSegments != null && pathSegments.isNotEmpty()) { + val item = pathSegments[0] + val mainIntent = Intent().apply { + action = "eu.kanade.tachiyomi.SEARCH" + putExtra("query", "${CutieComics.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) + } +}