From 445dd68d7d36381e217df1ea29360816eea73f4b Mon Sep 17 00:00:00 2001 From: Zakhar Timoshenko Date: Thu, 19 May 2022 21:21:36 +0300 Subject: [PATCH] Search --- .../kotatsu/parsers/site/MangaInUaParser.kt | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/MangaInUaParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/MangaInUaParser.kt index 299cf08b..f038962f 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/MangaInUaParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/MangaInUaParser.kt @@ -25,11 +25,17 @@ class MangaInUaParser(override val context: MangaLoaderContext) : MangaParser(Ma sortOrder: SortOrder? ): List { val page = (offset / 24f).toIntUp().inc() + val searchPage = (offset / 10f).toIntUp().inc() val url = when { - !query.isNullOrEmpty() -> parseFailed("Search currently unavailable") // TODO + !query.isNullOrEmpty() -> ("/index.php?do=search" + + "&subaction=search" + + "&search_start=${searchPage}" + + "&full_search=1" + + "&story=${query}" + + "&titleonly=3").withDomain() tags.isNullOrEmpty() -> "/mangas/page/$page".withDomain() tags.size == 1 -> "${tags.first().key}/page/$page" - tags.size > 1 -> throw IllegalArgumentException("Це джерело підтримує вибір тільки одного жанру") + tags.size > 1 -> throw IllegalArgumentException("This source supports only 1 genre") else -> "/mangas/page/${page}".withDomain() } val doc = context.httpGet(url).parseHtml() @@ -37,10 +43,12 @@ class MangaInUaParser(override val context: MangaLoaderContext) : MangaParser(Ma val items = container.select("div.col-6") return items.mapNotNull { item -> val href = item.selectFirst("a")?.attrAsRelativeUrl("href") ?: return@mapNotNull null + val listCover = item.selectFirst("header.card__cover")?.selectFirst("img")?.attrAsAbsoluteUrlOrNull("data-src") + val searchCover = item.selectFirst("header.card__cover")?.selectFirst("img")?.attrAsAbsoluteUrlOrNull("src").orEmpty() Manga( id = generateUid(href), title = item.selectFirst("h3.card__title")?.text() ?: return@mapNotNull null, - coverUrl = item.selectFirst("header.card__cover")?.selectFirst("img")?.attrAsAbsoluteUrl("data-src").orEmpty(), + coverUrl = listCover ?: searchCover, altTitle = null, author = null, rating = runCatching {