diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/GroupleRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/GroupleRepository.kt index b80510409..169cd12e3 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/GroupleRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/GroupleRepository.kt @@ -6,7 +6,7 @@ import org.koitharu.kotatsu.core.model.* import org.koitharu.kotatsu.core.parser.RemoteMangaRepository import org.koitharu.kotatsu.utils.ext.* -abstract class GroupleRepository : RemoteMangaRepository() { +abstract class GroupleRepository : RemoteMangaRepository() { protected abstract val defaultDomain: String @@ -20,7 +20,7 @@ abstract class GroupleRepository : RemoteMangaRepository() { offset: Int, query: String?, sortOrder: SortOrder?, - tag: MangaTag? + tag: MangaTag?, ): List { val domain = conf.getDomain(defaultDomain) val doc = when { @@ -28,7 +28,8 @@ abstract class GroupleRepository : RemoteMangaRepository() { "https://$domain/search", mapOf("q" to query, "offset" to offset.toString()) ) - tag == null -> loaderContext.httpGet("https://$domain/list?sortType=${getSortKey(sortOrder)}&offset=$offset") + tag == null -> loaderContext.httpGet("https://$domain/list?sortType=${getSortKey( + sortOrder)}&offset=$offset") else -> loaderContext.httpGet( "https://$domain/list/genre/${tag.key}?sortType=${getSortKey( sortOrder @@ -85,12 +86,22 @@ abstract class GroupleRepository : RemoteMangaRepository() { override suspend fun getDetails(manga: Manga): Manga { val domain = conf.getDomain(defaultDomain) val doc = loaderContext.httpGet(manga.url).parseHtml() - val root = doc.body().getElementById("mangaBox") ?: throw ParseException("Cannot find root") + val root = doc.body().getElementById("mangaBox")?.selectFirst("div.leftContent") + ?: throw ParseException("Cannot find root") return manga.copy( description = root.selectFirst("div.manga-description")?.html(), largeCoverUrl = root.selectFirst("div.subject-cower")?.selectFirst("img")?.attr( "data-full" ), + tags = manga.tags + root.select("div.subject-meta").select("span.elem_genre ") + .mapNotNull { + val a = it.selectFirst("a.element-link") ?: return@mapNotNull null + MangaTag( + title = a.text(), + key = a.attr("href").substringAfterLast('/'), + source = source + ) + }, chapters = root.selectFirst("div.chapters-link")?.selectFirst("table") ?.select("a")?.asReversed()?.mapIndexedNotNull { i, a -> val href =