diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/nepnep/NepnepParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/nepnep/NepnepParser.kt index 11f520c48..dbecf159d 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/nepnep/NepnepParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/nepnep/NepnepParser.kt @@ -25,7 +25,6 @@ internal abstract class NepnepParser( override val sortOrders: Set = EnumSet.of(SortOrder.ALPHABETICAL) - override val headers: Headers = Headers.Builder() .add("User-Agent", UserAgents.CHROME_DESKTOP) .build() @@ -37,7 +36,9 @@ internal abstract class NepnepParser( val doc = webClient.httpGet("https://$domain/search/").parseHtml() val json = JSONArray( doc.selectFirstOrThrow("script:containsData(MainFunction)").data() - .substringAfter("vm.Directory = ").substringBefore("vm.GetIntValue").trim() + .substringAfter("vm.Directory = ") + .substringBefore("vm.GetIntValue") + .trim() .replace(';', ' '), ) @@ -48,36 +49,58 @@ internal abstract class NepnepParser( val m = json.getJSONObject(i) val href = "/manga/" + m.getString("i") val imgUrl = "https://temp.compsci88.com/cover/" + m.getString("i") + ".jpg" - if (!query.isNullOrEmpty()) { - if (m.getString("i").contains(query.urlEncoded(), ignoreCase = true)) { - manga.add( - Manga( - id = generateUid(href), - title = m.getString("i").replace('-', ' '), - altTitle = null, - url = href, - publicUrl = href.toAbsoluteUrl(domain), - rating = RATING_UNKNOWN, - isNsfw = false, - coverUrl = imgUrl, - tags = emptySet(), - state = null, - author = null, - source = source, - ), - ) - } + when { + !query.isNullOrEmpty() -> { + if (m.getString("i").contains(query.urlEncoded(), ignoreCase = true)) { + manga.add( + Manga( + id = generateUid(href), + title = m.getString("i").replace('-', ' '), + altTitle = null, + url = href, + publicUrl = href.toAbsoluteUrl(domain), + rating = RATING_UNKNOWN, + isNsfw = false, + coverUrl = imgUrl, + tags = emptySet(), + state = null, + author = null, + source = source, + ), + ) + } - } else if (!tags.isNullOrEmpty()) { + } - val a = m.getJSONArray("g").toString() - var found = true - tags.forEach { - if (!a.contains(it.key, ignoreCase = true)) { - found = false + !tags.isNullOrEmpty() -> { + val a = m.getJSONArray("g").toString() + var found = true + tags.forEach { + if (!a.contains(it.key, ignoreCase = true)) { + found = false + } + } + if (found) { + manga.add( + Manga( + id = generateUid(href), + title = m.getString("i").replace('-', ' '), + altTitle = null, + url = href, + publicUrl = href.toAbsoluteUrl(domain), + rating = RATING_UNKNOWN, + isNsfw = false, + coverUrl = imgUrl, + tags = emptySet(), + state = null, + author = null, + source = source, + ), + ) } } - if (found) { + + else -> { manga.add( Manga( id = generateUid(href), @@ -95,23 +118,6 @@ internal abstract class NepnepParser( ), ) } - } else { - manga.add( - Manga( - id = generateUid(href), - title = m.getString("i").replace('-', ' '), - altTitle = null, - url = href, - publicUrl = href.toAbsoluteUrl(domain), - rating = RATING_UNKNOWN, - isNsfw = false, - coverUrl = imgUrl, - tags = emptySet(), - state = null, - author = null, - source = source, - ), - ) } @@ -123,7 +129,8 @@ internal abstract class NepnepParser( override suspend fun getTags(): Set { val doc = webClient.httpGet("https://$domain/search/").parseHtml() val tags = doc.selectFirstOrThrow("script:containsData(vm.AvailableFilters)").data() - .substringAfter("\"Genre\" \t\t: [") + .substringAfter("\"Genre\"") + .substringAfter('[') .substringBefore(']') .replace("'", "") .split(',') @@ -143,7 +150,8 @@ internal abstract class NepnepParser( val chapter = JSONArray( JSONArray( doc.selectFirstOrThrow("script:containsData(MainFunction)").data() - .substringAfter("vm.Chapters = ").substringBefore(';'), + .substringAfter("vm.Chapters = ") + .substringBefore(';'), ).toJSONList().reversed(), ) @@ -243,18 +251,14 @@ internal abstract class NepnepParser( .substringBefore(';'), ) val pageTotal = curChapter.getString("Page")!!.toInt() - val host = "https://" + - script - .substringAfter("vm.CurPathName = \"", "") - .substringBefore('"') - .also { - if (it.isEmpty()) { - throw Exception("Manga4Life is overloaded and blocking kotatsu right now. Wait for unblock.") - } - } + val host = "https://" + script + .substringAfter("vm.CurPathName = \"", "") + .substringBefore('"') + check(host.isNotEmpty()) { + "Manga4Life is overloaded and blocking Kotatsu right now. Wait for unblock." + } val titleURI = script.substringAfter("vm.IndexName = \"").substringBefore("\"") - val seasonURI = curChapter.getString("Directory")!! - .let { if (it.isEmpty()) "" else "$it/" } + val seasonURI = curChapter.getString("Directory")!!.let { if (it.isEmpty()) "" else "$it/" } val path = "$host/manga/$titleURI/$seasonURI" val chNum = chapterImage(curChapter.getString("Chapter")!!)