From 3db5f6edc2098934c3acd9fe78164433cd0f1a00 Mon Sep 17 00:00:00 2001 From: beerpsi <92439990+beerpiss@users.noreply.github.com> Date: Fri, 9 Feb 2024 05:36:39 +0700 Subject: [PATCH] Add Truyen Hentai 18+ (#1148) * Add Truyen Hentai 18+ * fix search --- src/vi/truyenhentai18/AndroidManifest.xml | 21 +++ src/vi/truyenhentai18/build.gradle | 8 + .../res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 5493 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2722 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 8940 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 17461 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 28346 bytes .../vi/truyenhentai18/TruyenHentai18.kt | 150 ++++++++++++++++++ .../TruyenHentai18UrlActivity.kt | 35 ++++ 9 files changed, 214 insertions(+) create mode 100644 src/vi/truyenhentai18/AndroidManifest.xml create mode 100644 src/vi/truyenhentai18/build.gradle create mode 100644 src/vi/truyenhentai18/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/vi/truyenhentai18/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/vi/truyenhentai18/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/vi/truyenhentai18/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/vi/truyenhentai18/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/vi/truyenhentai18/src/eu/kanade/tachiyomi/extension/vi/truyenhentai18/TruyenHentai18.kt create mode 100644 src/vi/truyenhentai18/src/eu/kanade/tachiyomi/extension/vi/truyenhentai18/TruyenHentai18UrlActivity.kt diff --git a/src/vi/truyenhentai18/AndroidManifest.xml b/src/vi/truyenhentai18/AndroidManifest.xml new file mode 100644 index 000000000..d432c95fb --- /dev/null +++ b/src/vi/truyenhentai18/AndroidManifest.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + diff --git a/src/vi/truyenhentai18/build.gradle b/src/vi/truyenhentai18/build.gradle new file mode 100644 index 000000000..82d8540f1 --- /dev/null +++ b/src/vi/truyenhentai18/build.gradle @@ -0,0 +1,8 @@ +ext { + extName = "Truyen Hentai 18+" + extClass = ".TruyenHentai18" + extVersionCode = 1 + isNsfw = true +} + +apply from: "$rootDir/common.gradle" diff --git a/src/vi/truyenhentai18/res/mipmap-hdpi/ic_launcher.png b/src/vi/truyenhentai18/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..f2c7bd873cb67eb0dd2e6cebc24bbd161f5b23fe GIT binary patch literal 5493 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 literal 0 HcmV?d00001 diff --git a/src/vi/truyenhentai18/res/mipmap-mdpi/ic_launcher.png b/src/vi/truyenhentai18/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..182d4a5d9008d2b127b0923ee2f57958b9356d76 GIT binary patch literal 2722 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

@vEJulnk$YJp`Q?vemh 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 literal 0 HcmV?d00001 diff --git a/src/vi/truyenhentai18/src/eu/kanade/tachiyomi/extension/vi/truyenhentai18/TruyenHentai18.kt b/src/vi/truyenhentai18/src/eu/kanade/tachiyomi/extension/vi/truyenhentai18/TruyenHentai18.kt new file mode 100644 index 000000000..08f6aff67 --- /dev/null +++ b/src/vi/truyenhentai18/src/eu/kanade/tachiyomi/extension/vi/truyenhentai18/TruyenHentai18.kt @@ -0,0 +1,150 @@ +package eu.kanade.tachiyomi.extension.vi.truyenhentai18 + +import eu.kanade.tachiyomi.network.GET +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.online.ParsedHttpSource +import okhttp3.HttpUrl.Companion.toHttpUrl +import okhttp3.Request +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element +import rx.Observable +import java.util.Calendar + +class TruyenHentai18 : ParsedHttpSource() { + + override val name = "Truyện Hentai 18+" + + override val baseUrl = "https://truyenhentai18.net" + + override val lang = "vi" + + override val supportsLatest = true + + override val client = network.cloudflareClient + + override fun headersBuilder() = super.headersBuilder() + .add("Referer", "$baseUrl/") + + override fun popularMangaRequest(page: Int) = + GET("$baseUrl/truyen-de-xuat" + if (page > 1) "/page/$page" else "", headers) + + override fun popularMangaSelector() = "div.row > div[class^=item-] > div.card" + + override fun popularMangaFromElement(element: Element) = SManga.create().apply { + element.selectFirst("a.item-title")!!.let { + setUrlWithoutDomain(it.attr("href")) + title = it.text() + } + + thumbnail_url = element.selectFirst("a.item-cover img")?.absUrl("data-src") + } + + override fun popularMangaNextPageSelector() = "ul.pagination li.page-item.active:not(:last-child)" + + override fun latestUpdatesRequest(page: Int) = + GET("$baseUrl/truyen-moi" + if (page > 1) "/page/$page" else "", headers) + + override fun latestUpdatesSelector() = popularMangaSelector() + + override fun latestUpdatesFromElement(element: Element) = popularMangaFromElement(element) + + override fun latestUpdatesNextPageSelector() = popularMangaNextPageSelector() + + override fun fetchSearchManga( + page: Int, + query: String, + filters: FilterList, + ): Observable { + return if (query.startsWith(PREFIX_SLUG_SEARCH)) { + val slug = query.removePrefix(PREFIX_SLUG_SEARCH) + val url = "/$slug" + + fetchMangaDetails(SManga.create().apply { this.url = url }) + .map { MangasPage(listOf(it.apply { this.url = url }), false) } + } else { + super.fetchSearchManga(page, query, filters) + } + } + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + val url = baseUrl.toHttpUrl().newBuilder().apply { + if (page > 1) { + addPathSegment("page") + addPathSegment(page.toString()) + } + + addQueryParameter("s", query) + }.build() + + return GET(url, headers) + } + + override fun searchMangaSelector() = "div[data-id] > div.card" + + override fun searchMangaFromElement(element: Element) = popularMangaFromElement(element) + + override fun searchMangaNextPageSelector() = popularMangaNextPageSelector() + + override fun mangaDetailsParse(document: Document) = SManga.create().apply { + val statusClassName = document.selectFirst("em.eflag.item-flag")!!.className() + + title = document.selectFirst("span[itemprop=name]")!!.text() + author = document.select("div.attr-item b:contains(Tác giả) ~ span a, span[itemprop=author]").joinToString { it.text() } + description = document.selectFirst("div[itemprop=about]")?.text() + genre = document.select("ul.post-categories li a").joinToString { it.text() } + thumbnail_url = document.selectFirst("div.attr-cover img")?.absUrl("src") + status = when { + statusClassName.contains("flag-completed") -> SManga.COMPLETED + statusClassName.contains("flag-ongoing") -> SManga.ONGOING + else -> SManga.UNKNOWN + } + } + + override fun chapterListSelector() = "#chaptersbox > div" + + override fun chapterFromElement(element: Element) = SChapter.create().apply { + element.selectFirst("a")!!.let { + setUrlWithoutDomain(it.attr("href")) + name = it.selectFirst("b")!!.text() + } + + date_upload = element.selectFirst("div.extra > i.ps-3") + ?.text() + ?.let { parseRelativeDate(it) } + ?: 0L + } + + override fun pageListParse(document: Document) = + document.select("#viewer img").mapIndexed { i, it -> + Page(i, imageUrl = it.absUrl("src")) + } + + override fun imageUrlParse(document: Document) = throw UnsupportedOperationException() + + private fun parseRelativeDate(date: String): Long { + val (valueString, unit) = date.substringBefore(" trước").split(" ") + val value = valueString.toInt() + + val calendar = Calendar.getInstance().apply { + when (unit) { + "giây" -> add(Calendar.SECOND, -value) + "phút" -> add(Calendar.MINUTE, -value) + "giờ" -> add(Calendar.HOUR_OF_DAY, -value) + "ngày" -> add(Calendar.DAY_OF_MONTH, -value) + "tuần" -> add(Calendar.WEEK_OF_MONTH, -value) + "tháng" -> add(Calendar.MONTH, -value) + "năm" -> add(Calendar.YEAR, -value) + } + } + + return calendar.timeInMillis + } + + companion object { + internal const val PREFIX_SLUG_SEARCH = "slug:" + } +} diff --git a/src/vi/truyenhentai18/src/eu/kanade/tachiyomi/extension/vi/truyenhentai18/TruyenHentai18UrlActivity.kt b/src/vi/truyenhentai18/src/eu/kanade/tachiyomi/extension/vi/truyenhentai18/TruyenHentai18UrlActivity.kt new file mode 100644 index 000000000..91a3fe261 --- /dev/null +++ b/src/vi/truyenhentai18/src/eu/kanade/tachiyomi/extension/vi/truyenhentai18/TruyenHentai18UrlActivity.kt @@ -0,0 +1,35 @@ +package eu.kanade.tachiyomi.extension.vi.truyenhentai18 + +import android.app.Activity +import android.content.ActivityNotFoundException +import android.content.Intent +import android.os.Bundle +import android.util.Log +import kotlin.system.exitProcess + +class TruyenHentai18UrlActivity : Activity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + val pathSegments = intent?.data?.pathSegments + + if (pathSegments != null && pathSegments.size > 0) { + val intent = Intent().apply { + action = "eu.kanade.tachiyomi.SEARCH" + putExtra("query", "${TruyenHentai18.PREFIX_SLUG_SEARCH}${pathSegments[0]}") + putExtra("filter", packageName) + } + + try { + startActivity(intent) + } catch (e: ActivityNotFoundException) { + Log.e("TruyenHentaiUrlActivity", "Could not start activity", e) + } + } else { + Log.e("TruyenHentaiUrlActivity", "Could not parse URI from intent $intent") + } + + finish() + exitProcess(0) + } +}