From 14ce7017e8ff43af43bb2235a1e70ffa1396aa30 Mon Sep 17 00:00:00 2001 From: Mike <51273546+SnakeDoc83@users.noreply.github.com> Date: Sun, 26 Jul 2020 21:32:19 -0400 Subject: [PATCH] NHentai - fix shortened titles (#3918) --- src/all/nhentai/build.gradle | 2 +- .../extension/all/nhentai/NHentai.kt | 21 +++++++++++-------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/all/nhentai/build.gradle b/src/all/nhentai/build.gradle index 3faea6232..16a4545f7 100644 --- a/src/all/nhentai/build.gradle +++ b/src/all/nhentai/build.gradle @@ -5,7 +5,7 @@ ext { extName = 'NHentai' pkgNameSuffix = 'all.nhentai' extClass = '.NHFactory' - extVersionCode = 26 + extVersionCode = 27 libVersion = '1.2' } diff --git a/src/all/nhentai/src/eu/kanade/tachiyomi/extension/all/nhentai/NHentai.kt b/src/all/nhentai/src/eu/kanade/tachiyomi/extension/all/nhentai/NHentai.kt index cf39d840f..bc06b5c93 100644 --- a/src/all/nhentai/src/eu/kanade/tachiyomi/extension/all/nhentai/NHentai.kt +++ b/src/all/nhentai/src/eu/kanade/tachiyomi/extension/all/nhentai/NHentai.kt @@ -57,6 +57,9 @@ open class NHentai( else -> false } + private val shortenTitleRegex = Regex("""(\[[^]]*]|[({][^)}]*[)}])""") + private fun String.shortenTitle() = this.replace(shortenTitleRegex, "").trim() + override fun setupPreferenceScreen(screen: androidx.preference.PreferenceScreen) { val serverPref = androidx.preference.ListPreference(screen.context).apply { key = TITLE_PREF @@ -110,7 +113,7 @@ open class NHentai( override fun latestUpdatesFromElement(element: Element) = SManga.create().apply { setUrlWithoutDomain(element.select("a").attr("href")) title = element.select("a > div").text().replace("\"", "").let { - if (displayFullTitle) it.trim() else it.substringAfter("]").substringBefore("[").trim() + if (displayFullTitle) it.trim() else it.shortenTitle() } thumbnail_url = element.select(".cover img").first().let { img -> if (img.hasAttr("data-src")) img.attr("abs:data-src") else img.attr("abs:src") @@ -151,12 +154,12 @@ open class NHentai( } override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { - val filters = if (filters.isEmpty()) getFilterList() else filters - val advQuery = combineQuery(filters) - val favoriteFilter = filters.findInstance() - val uploadedFilter = filters.findInstance() + val filterList = if (filters.isEmpty()) getFilterList() else filters + val advQuery = combineQuery(filterList) + val favoriteFilter = filterList.findInstance() + val isOkayToSort = filterList.findInstance()?.state?.isBlank() ?: true - if (favoriteFilter != null && favoriteFilter.state) { + if (favoriteFilter?.state == true) { val url = HttpUrl.parse("$baseUrl/favorites")!!.newBuilder() .addQueryParameter("q", "$query $advQuery") .addQueryParameter("page", page.toString()) @@ -167,8 +170,8 @@ open class NHentai( .addQueryParameter("q", "$query +$nhLang $advQuery") .addQueryParameter("page", page.toString()) - if (uploadedFilter?.state?.isBlank() == true) { - filters.findInstance()?.let { f -> + if (isOkayToSort) { + filterList.findInstance()?.let { f -> url.addQueryParameter("sort", f.toUriPart()) } } @@ -227,7 +230,7 @@ open class NHentai( val fullTitle = document.select("#info > h1").text().replace("\"", "").trim() return SManga.create().apply { - title = if (displayFullTitle) fullTitle else fullTitle.substringAfter("]").substringBefore("[").trim() + title = if (displayFullTitle) fullTitle else fullTitle.shortenTitle() thumbnail_url = document.select("#cover > a > img").attr("data-src") status = SManga.COMPLETED artist = getArtists(document)