From e210beeca49a12421bf0878bc7dc5e43b3da1a39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moon=20Light=E3=80=8C=E3=81=A4=E3=81=8B=E3=82=8A=E3=80=8D?= <66781351+MoonLGH@users.noreply.github.com> Date: Thu, 11 Nov 2021 00:12:53 +0700 Subject: [PATCH] Doujindesu(ID) added (#9787) * Added Doujindesu(ID) * Fixes some of small typos * Apply suggestions from code review Co-authored-by: Alessandro Jean * Apply private vals for the Data format Co-authored-by: Alessandro Jean --- src/id/doujindesu/AndroidManifest.xml | 2 + src/id/doujindesu/build.gradle | 12 + .../res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 4531 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2593 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 7001 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 13257 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 21420 bytes src/id/doujindesu/res/web_hi_res_192.png | Bin 0 -> 28433 bytes .../extension/id/doujindesu/DoujinDesu.kt | 321 ++++++++++++++++++ 9 files changed, 335 insertions(+) create mode 100644 src/id/doujindesu/AndroidManifest.xml create mode 100644 src/id/doujindesu/build.gradle create mode 100644 src/id/doujindesu/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/id/doujindesu/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/id/doujindesu/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/id/doujindesu/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/id/doujindesu/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/id/doujindesu/res/web_hi_res_192.png create mode 100644 src/id/doujindesu/src/eu/kanade/tachiyomi/extension/id/doujindesu/DoujinDesu.kt diff --git a/src/id/doujindesu/AndroidManifest.xml b/src/id/doujindesu/AndroidManifest.xml new file mode 100644 index 000000000..30deb7f79 --- /dev/null +++ b/src/id/doujindesu/AndroidManifest.xml @@ -0,0 +1,2 @@ + + diff --git a/src/id/doujindesu/build.gradle b/src/id/doujindesu/build.gradle new file mode 100644 index 000000000..bb23b6e7b --- /dev/null +++ b/src/id/doujindesu/build.gradle @@ -0,0 +1,12 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' + +ext { + extName = 'DoujinDesu' + pkgNameSuffix = 'id.doujindesu' + extClass = '.DoujinDesu' + extVersionCode = 1 + isNsfw = true +} + +apply from: "$rootDir/common.gradle" diff --git a/src/id/doujindesu/res/mipmap-hdpi/ic_launcher.png b/src/id/doujindesu/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d38defae280db97506474e53034cd4826858548d GIT binary patch literal 4531 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 literal 0 HcmV?d00001 diff --git a/src/id/doujindesu/res/mipmap-xxhdpi/ic_launcher.png b/src/id/doujindesu/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..309727cb032969080d3df67d5d8f0c4d4993db5c GIT binary patch literal 13257 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

$!{zPR9cm7 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 F{{xAPr_2BV literal 0 HcmV?d00001 diff --git a/src/id/doujindesu/src/eu/kanade/tachiyomi/extension/id/doujindesu/DoujinDesu.kt b/src/id/doujindesu/src/eu/kanade/tachiyomi/extension/id/doujindesu/DoujinDesu.kt new file mode 100644 index 000000000..8ff86d3c2 --- /dev/null +++ b/src/id/doujindesu/src/eu/kanade/tachiyomi/extension/id/doujindesu/DoujinDesu.kt @@ -0,0 +1,321 @@ +package eu.kanade.tachiyomi.extension.id.doujindesu + +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.source.model.Filter +import eu.kanade.tachiyomi.source.model.FilterList +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.toHttpUrlOrNull +import okhttp3.OkHttpClient +import okhttp3.Request +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element +import java.text.SimpleDateFormat +import java.util.Locale + +class DoujinDesu : ParsedHttpSource() { + // Information : DoujinDesu use EastManga WordPress Theme + override val name = "Doujindesu" + override val baseUrl = "https://doujindesu.id" + override val lang = "id" + override val supportsLatest = true + override val client: OkHttpClient = network.cloudflareClient + + // Private stuff + + private val DATE_FORMAT by lazy { + SimpleDateFormat("MMMM d, yyyy", Locale("id")) + } + + private fun parseStatus(status: String) = when { + status.toLowerCase(Locale.US).contains("finished") -> SManga.ONGOING + status.toLowerCase(Locale.US).contains("publishing") -> SManga.COMPLETED + else -> SManga.UNKNOWN + } + + private class Category(title: String, val key: String) : Filter.TriState(title) { + override fun toString(): String { + return name + } + } + + private class Genre(title: String, val key: String) : Filter.TriState(title) { + override fun toString(): String { + return name + } + } + + private class Order(title: String, val key: String) : Filter.TriState(title) { + override fun toString(): String { + return name + } + } + + private class Status(title: String, val key: String) : Filter.TriState(title) { + override fun toString(): String { + return name + } + } + + private val orderBy = arrayOf( + Order("All", ""), + Order("A-Z", "title"), + Order("Z-A", "titlereverse"), + Order("Latest Update", "update"), + Order("Latest Added", "latest"), + Order("Popular", "popular") + ) + + private val statusList = arrayOf( + Status("All", ""), + Status("Publishing", "Publishing"), + Status("Finished", "Finished") + ) + + private val genreList = arrayOf( + Genre("All", ""), + Genre("Age Regression", "age-regression"), + Genre("Ahegao", "ahegao"), + Genre("All The Way Through", "all-the-way-through"), + Genre("Amputee", "amputee"), + Genre("Anal", "anal"), + Genre("Anorexia", "anorexia"), + Genre("Apron", "apron"), + Genre("Artist CG", "artist-cg"), + Genre("Aunt", "aunt"), + Genre("Bald", "bald"), + Genre("Bestiality", "bestiality"), + Genre("Big As", "big-as"), + Genre("Big Ass", "big-ass"), + Genre("Big Breast", "big-breast"), + Genre("Big Penis", "big-penis"), + Genre("Bike Shorts", "bike-shorts"), + Genre("Bikini", "bikini"), + Genre("Birth", "birth"), + Genre("Bisexual", "bisexual"), + Genre("Blackmail", "blackmail"), + Genre("Blindfold", "blindfold"), + Genre("Bloomers", "bloomers"), + Genre("Blowjob", "blowjob"), + Genre("Body Swap", "body-swap"), + Genre("Bodysuit", "bodysuit"), + Genre("Bondage", "bondage"), + Genre("Business Suit", "business-suit"), + Genre("Cheating", "cheating"), + Genre("Collar", "collar"), + Genre("Condom", "condom"), + Genre("Cousin", "cousin"), + Genre("Crossdressing", "crossdressing"), + Genre("Cunnilingus", "cunnilingus"), + Genre("Dark Skin", "dark-skin"), + Genre("Daughter", "daughter"), + Genre("Defloartion", "defloartion"), + Genre("Defloration", "defloration"), + Genre("Demon", "demon"), + Genre("Demon Girl", "demon-girl"), + Genre("Dick Growth", "dick-growth"), + Genre("DILF", "dilf"), + Genre("Double Penetration", "double-penetration"), + Genre("Drugs", "drugs"), + Genre("Drunk", "drunk"), + Genre("Elf", "elf"), + Genre("Emotionless Sex", "emotionless-sex"), + Genre("Exhibitionism", "exhibitionism"), + Genre("Eyepatch", "eyepatch"), + Genre("Fantasy", "fantasy"), + Genre("Females Only", "females-only"), + Genre("Femdom", "femdom"), + Genre("Filming", "filming"), + Genre("Fingering", "fingering"), + Genre("Footjob", "footjob"), + Genre("Full Color", "full-color"), + Genre("Furry", "furry"), + Genre("Futanari", "futanari"), + Genre("Garter Belt", "garter-belt"), + Genre("Gender Bender", "gender-bender"), + Genre("Ghost", "ghost"), + Genre("Glasses", "glasses"), + Genre("Gore", "gore"), + Genre("Group", "group"), + Genre("Guro", "guro"), + Genre("Gyaru", "gyaru"), + Genre("Hairy", "hairy"), + Genre("Handjob", "handjob"), + Genre("Harem", "harem"), + Genre("Horns", "horns"), + Genre("Huge Breast", "huge-breast"), + Genre("Humiliation", "humiliation"), + Genre("Impregnation", "impregnation"), + Genre("Incest", "incest"), + Genre("Inflation", "inflation"), + Genre("Insect", "insect"), + Genre("Inseki", "inseki"), + Genre("Inverted Nipples", "inverted-nipples"), + Genre("Invisible", "invisible"), + Genre("Kemomimi", "kemomimi"), + Genre("Kimono", "kimono"), + Genre("Lactation", "lactation"), + Genre("Leotard", "leotard"), + Genre("Lingerie", "lingerie"), + Genre("Loli", "loli"), + Genre("Lolipai", "lolipai"), + Genre("Maid", "maid"), + Genre("Males Only", "males-only"), + Genre("Masturbation", "masturbation"), + Genre("Miko", "miko"), + Genre("MILF", "milf"), + Genre("Mind Break", "mind-break"), + Genre("Mind Control", "mind-control"), + Genre("Minigirl", "minigirl"), + Genre("Miniguy", "miniguy"), + Genre("Monster", "monster"), + Genre("Monster Girl", "monster-girl"), + Genre("Mother", "mother"), + Genre("Multi-work Series", "multi-work-series"), + Genre("Muscle", "muscle") + ) + + private val categoryNames = arrayOf( + Category("All", ""), + Category("Manga", "Manga"), + Category("Manhua", "Manhua"), + Category("Doujinshi", "Doujinshi"), + Category("Manhwa", "Manhwa") + ) + + private class CategoryNames(categories: Array) : Filter.Select("Category", categories, 0) + private class OrderBy(orders: Array) : Filter.Select("Order", orders, 0) + private class GenreList(genres: Array) : Filter.Select("Genre", genres, 0) + private class StatusList(statuses: Array) : Filter.Select("Status", statuses, 0) + + private fun basicInformationFromElement(element: Element): SManga { + val manga = SManga.create() + + manga.title = element.select("div > div > a").attr("alt") + manga.setUrlWithoutDomain(element.select("div > div > a").attr("href")) + manga.thumbnail_url = element.select("div > div > a > div > img").attr("src") + + return manga + } + + private fun getNumberFromString(epsStr: String): String { + return epsStr.filter { it.isDigit() } + } + + private fun reconstructDate(dateStr: String): Long { + return runCatching { DATE_FORMAT.parse(dateStr)?.time } + .getOrNull() ?: 0L + } + + private fun getImage(element: Element): Page { + return Page(getNumberFromString(element.attr("img-id")).toInt(), "", element.attr("src")) + } + + // Popular + + override fun popularMangaFromElement(element: Element): SManga = basicInformationFromElement(element) + + override fun popularMangaRequest(page: Int): Request { + return GET("$baseUrl/komik-list/page/$page/?&order=popular") + } + + // Latest + + override fun latestUpdatesFromElement(element: Element): SManga = basicInformationFromElement(element) + + override fun latestUpdatesRequest(page: Int): Request { + return GET("$baseUrl/komik-list/page/$page/?order=update") + } + + // Element Selectors + + override fun latestUpdatesSelector(): String = "#main > div.relat > article" + override fun popularMangaSelector(): String = "#main > div.relat > article" + override fun searchMangaSelector(): String = "#main > div.relat > article" + + override fun popularMangaNextPageSelector(): String = "#nextpagination" + override fun latestUpdatesNextPageSelector() = popularMangaNextPageSelector() + override fun searchMangaNextPageSelector() = popularMangaNextPageSelector() + + // Search & FIlter + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + var url = "$baseUrl/komik-list/page/$page/".toHttpUrlOrNull()?.newBuilder()!!.addQueryParameter("title", query) + (if (filters.isEmpty()) getFilterList() else filters).forEach { filter -> + when (filter) { + is CategoryNames -> { + val category = filter.values[filter.state] + url.addQueryParameter("type", category.key) + } + is OrderBy -> { + val order = filter.values[filter.state] + url.addQueryParameter("order", order.key) + } + is GenreList -> { + val genre = filter.values[filter.state] + url.addQueryParameter("genre", genre.key) + } + is StatusList -> { + val status = filter.values[filter.state] + url.addQueryParameter("status", status.key) + } + } + } + return GET(url.toString(), headers) + } + + override fun searchMangaFromElement(element: Element): SManga = basicInformationFromElement(element) + + override fun getFilterList() = FilterList( + CategoryNames(categoryNames), + OrderBy(orderBy), + GenreList(genreList), + StatusList(statusList) + ) + + // Detail Parse + + override fun mangaDetailsParse(document: Document): SManga { + val manga = SManga.create() + manga.description = when { + document.select("div.infox > div.entry-content.entry-content-single > p").isEmpty() -> "No description specified" + else -> document.select("div.infox > div.entry-content.entry-content-single > p").first().text() + } + manga.author = document.select("div.infox > div.spe > span:nth-child(5)").text() + manga.genre = document.select("div.genre-info > a[itemprop=genre]").joinToString { it.text() } + manga.status = parseStatus(document.select("div.infox > div.spe > span:nth-child(1)").text()) + manga.thumbnail_url = document.select("div.thumb > img").attr("src") + manga.artist = document.select("div.infox > div.spe > span:nth-child(6)").text() + + return manga + } + + // Chapter Stuff + + override fun chapterFromElement(element: Element): SChapter { + val chapter = SChapter.create() + val number = getNumberFromString(element.select("div.epsright > span > a > chapter").text()) + chapter.chapter_number = when { + (number.isNotEmpty()) -> number.toFloat() + else -> 1F + } + chapter.date_upload = reconstructDate(element.select("div.epsleft > span.date").text()) + chapter.name = element.select("div.epsleft > span.lchx > a").text() + chapter.setUrlWithoutDomain(element.select("div.epsleft > span.lchx > a").attr("href")) + + return chapter + } + + override fun chapterListSelector(): String = "#chapter_list li" + + // More parser stuff + override fun imageUrlParse(document: Document): String = throw UnsupportedOperationException("Not Used") + + override fun pageListParse(document: Document): List { + return document.select("div.reader-area > img").mapIndexed { i, element -> + Page(i, "", element.attr("src")) + } + } +}