From 6cf71d6490bae5266d4f177385ea50bda566f532 Mon Sep 17 00:00:00 2001 From: KenjieDec <65448230+KenjieDec@users.noreply.github.com> Date: Tue, 4 Jun 2024 12:23:41 +0700 Subject: [PATCH] Add HentaiEra (#3382) * Add HentaiEra * typo fix --- src/all/hentaiera/build.gradle | 10 ++ .../hentaiera/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3526 bytes .../hentaiera/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1890 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4834 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 9488 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 13684 bytes .../extension/all/hentaiera/HentaiEra.kt | 104 ++++++++++++++++++ .../all/hentaiera/HentaiEraFactory.kt | 19 ++++ 8 files changed, 133 insertions(+) create mode 100644 src/all/hentaiera/build.gradle create mode 100644 src/all/hentaiera/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/all/hentaiera/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/all/hentaiera/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/all/hentaiera/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/all/hentaiera/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/all/hentaiera/src/eu/kanade/tachiyomi/extension/all/hentaiera/HentaiEra.kt create mode 100644 src/all/hentaiera/src/eu/kanade/tachiyomi/extension/all/hentaiera/HentaiEraFactory.kt diff --git a/src/all/hentaiera/build.gradle b/src/all/hentaiera/build.gradle new file mode 100644 index 000000000..ea9c400d2 --- /dev/null +++ b/src/all/hentaiera/build.gradle @@ -0,0 +1,10 @@ +ext { + extName = 'HentaiEra' + extClass = '.HentaiEraFactory' + themePkg = 'galleryadults' + baseUrl = 'https://hentaiera.com' + overrideVersionCode = 0 + isNsfw = true +} + +apply from: "$rootDir/common.gradle" diff --git a/src/all/hentaiera/res/mipmap-hdpi/ic_launcher.png b/src/all/hentaiera/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..ae8d9987681f2c81fcf53041d13e6011709b9ec7 GIT binary patch literal 3526 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 Ay#N3J literal 0 HcmV?d00001 diff --git a/src/all/hentaiera/res/mipmap-mdpi/ic_launcher.png b/src/all/hentaiera/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..f7de7c44aa6568817f6d2b5d6cc8ad8d384e862e GIT binary patch literal 1890 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 Zp778c^~sM4FElFPos6<{>09H#{{!-JS;hbW literal 0 HcmV?d00001 diff --git a/src/all/hentaiera/src/eu/kanade/tachiyomi/extension/all/hentaiera/HentaiEra.kt b/src/all/hentaiera/src/eu/kanade/tachiyomi/extension/all/hentaiera/HentaiEra.kt new file mode 100644 index 000000000..a4f53302f --- /dev/null +++ b/src/all/hentaiera/src/eu/kanade/tachiyomi/extension/all/hentaiera/HentaiEra.kt @@ -0,0 +1,104 @@ +package eu.kanade.tachiyomi.extension.all.hentaiera + +import eu.kanade.tachiyomi.multisrc.galleryadults.GalleryAdults +import eu.kanade.tachiyomi.multisrc.galleryadults.Genre +import eu.kanade.tachiyomi.multisrc.galleryadults.SearchFlagFilter +import eu.kanade.tachiyomi.multisrc.galleryadults.imgAttr +import eu.kanade.tachiyomi.multisrc.galleryadults.toBinary +import eu.kanade.tachiyomi.network.GET +import okhttp3.HttpUrl.Companion.toHttpUrl +import okhttp3.Request +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element + +class HentaiEra( + lang: String = "all", + override val mangaLang: String = LANGUAGE_MULTI, +) : GalleryAdults( + "HentaiEra", + "https://hentaiera.com", + lang = lang, +) { + override val supportsLatest = true + override val useIntermediateSearch: Boolean = true + override val supportSpeechless: Boolean = true + + override fun Element.mangaTitle(selector: String): String? = + mangaFullTitle(selector.replace("caption", "gallery_title")).let { + if (preferences.shortTitle) it?.shortenTitle() else it + } + + override fun Element.mangaLang() = + select("a:has(.g_flag)").attr("href") + .removeSuffix("/").substringAfterLast("/") + .let { + // Include Speechless in search results + if (it == LANGUAGE_SPEECHLESS) mangaLang else it + } + + override fun popularMangaRequest(page: Int): Request { + // Only for query string or multiple tags + val url = "$baseUrl/search".toHttpUrl().newBuilder().apply { + addQueryParameter("pp", "1") + + getLanguageURIs().forEach { pair -> + addQueryParameter( + pair.second, + toBinary(mangaLang == pair.first || mangaLang == LANGUAGE_MULTI), + ) + } + + addPageUri(page) + } + return GET(url.build()) + } + + /* Details */ + override fun Element.getInfo(tag: String): String { + return select("li:has(.tags_text:contains($tag)) .tag .item_name") + .joinToString { + val name = it.ownText() + if (tag.contains(regexTag)) { + genres[name] = it.parent()!!.attr("href") + .removeSuffix("/").substringAfterLast('/') + } + listOf( + name, + it.select(".split_tag").text() + .trim() + .removePrefix("| "), + ) + .filter { s -> s.isNotBlank() } + .joinToString() + } + } + + override fun Element.getCover() = + selectFirst(".left_cover img")?.imgAttr() + + override fun tagsParser(document: Document): List { + return document.select("h2.gallery_title a") + .mapNotNull { + Genre( + it.text(), + it.attr("href") + .removeSuffix("/").substringAfterLast('/'), + ) + } + } + + override val mangaDetailInfoSelector = ".gallery_first" + + /* Pages */ + override val thumbnailSelector = ".gthumb" + override val pageUri = "view" + + override fun getCategoryURIs() = listOf( + SearchFlagFilter("Manga", "mg"), + SearchFlagFilter("Doujinshi", "dj"), + SearchFlagFilter("Western", "ws"), + SearchFlagFilter("Image Set", "is"), + SearchFlagFilter("Artist CG", "ac"), + SearchFlagFilter("Game CG", "gc"), + ) +} diff --git a/src/all/hentaiera/src/eu/kanade/tachiyomi/extension/all/hentaiera/HentaiEraFactory.kt b/src/all/hentaiera/src/eu/kanade/tachiyomi/extension/all/hentaiera/HentaiEraFactory.kt new file mode 100644 index 000000000..332b271a2 --- /dev/null +++ b/src/all/hentaiera/src/eu/kanade/tachiyomi/extension/all/hentaiera/HentaiEraFactory.kt @@ -0,0 +1,19 @@ +package eu.kanade.tachiyomi.extension.all.hentaiera + +import eu.kanade.tachiyomi.multisrc.galleryadults.GalleryAdults +import eu.kanade.tachiyomi.source.Source +import eu.kanade.tachiyomi.source.SourceFactory + +class HentaiEraFactory : SourceFactory { + + override fun createSources(): List = listOf( + HentaiEra("en", GalleryAdults.LANGUAGE_ENGLISH), + HentaiEra("ja", GalleryAdults.LANGUAGE_JAPANESE), + HentaiEra("es", GalleryAdults.LANGUAGE_SPANISH), + HentaiEra("fr", GalleryAdults.LANGUAGE_FRENCH), + HentaiEra("ko", GalleryAdults.LANGUAGE_KOREAN), + HentaiEra("de", GalleryAdults.LANGUAGE_GERMAN), + HentaiEra("ru", GalleryAdults.LANGUAGE_RUSSIAN), + HentaiEra("all", GalleryAdults.LANGUAGE_MULTI), + ) +}