From 4d6ffb24c86990817c8266ef6e4633015b7e4c72 Mon Sep 17 00:00:00 2001 From: Ken Swenson Date: Wed, 26 Dec 2018 09:19:06 -0500 Subject: [PATCH] [mangadex] Consider chapters with empty titles as Oneshots (#684) [mangadex] Consider chapters with empty titles as Oneshots --- src/all/mangadex/build.gradle | 2 +- .../tachiyomi/extension/all/mangadex/Mangadex.kt | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/all/mangadex/build.gradle b/src/all/mangadex/build.gradle index a18fa5ce7..3ab2c90b4 100644 --- a/src/all/mangadex/build.gradle +++ b/src/all/mangadex/build.gradle @@ -5,7 +5,7 @@ ext { appName = 'Tachiyomi: MangaDex' pkgNameSuffix = 'all.mangadex' extClass = '.MangadexFactory' - extVersionCode = 42 + extVersionCode = 43 libVersion = '1.2' } diff --git a/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/Mangadex.kt b/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/Mangadex.kt index 65fc71c47..3903252a4 100644 --- a/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/Mangadex.kt +++ b/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/Mangadex.kt @@ -278,7 +278,7 @@ open class Mangadex(override val lang: String, private val internalLang: String, val finalChapterNumber = getFinalChapter(mangaJson) if ((status == 2 || status == 3) && chapterJson != null && isMangaCompleted(finalChapterNumber, chapterJson)) { manga.status = SManga.COMPLETED - } else if (status == 2 && chapterJson.takeIf { it.size() > 0 }?.get(chapterJson.keys().elementAt(0))?.obj?.get("title")?.string?.trim() == "Oneshot"){ + } else if (status == 2 && isOneshot(chapterJson)){ manga.status = SManga.COMPLETED } else { manga.status = parseStatus(status) @@ -319,6 +319,15 @@ open class Mangadex(override val lang: String, private val internalLang: String, private fun getFinalChapter(jsonObj: JsonObject): String = jsonObj.get("last_chapter").string.trim() + private fun isOneshot(chapterJson: JsonObject): Boolean { + val chapter = chapterJson.takeIf { it.size() > 0 }?.get(chapterJson.keys().elementAt(0))?.obj?.get("title")?.string + return if (chapter != null) { + chapter == "Oneshot" || chapter.isEmpty() + } else { + false + } + } + private fun isMangaCompleted(finalChapterNumber: String, chapterJson: JsonObject): Boolean { val count = chapterJson.entrySet() .filter { it -> it.value.asJsonObject.get("lang_code").string == internalLang }