FreakComic: update selectors
parent
cd0b3cd1dc
commit
fb387dbcd9
@ -1,12 +1,45 @@
|
|||||||
package org.koitharu.kotatsu.parsers.site.mangareader.en
|
package org.koitharu.kotatsu.parsers.site.mangareader.en
|
||||||
|
|
||||||
|
import androidx.collection.ArrayMap
|
||||||
|
import kotlinx.coroutines.sync.withLock
|
||||||
|
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
|
||||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaSource
|
import org.koitharu.kotatsu.parsers.model.MangaSource
|
||||||
|
import org.koitharu.kotatsu.parsers.model.MangaTag
|
||||||
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
|
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
|
||||||
|
import org.koitharu.kotatsu.parsers.util.attrAsAbsoluteUrl
|
||||||
|
import org.koitharu.kotatsu.parsers.util.domain
|
||||||
|
import org.koitharu.kotatsu.parsers.util.parseHtml
|
||||||
|
import org.koitharu.kotatsu.parsers.util.toTitleCase
|
||||||
|
|
||||||
@MangaSourceParser("FREAKCOMIC", "FreakComic", "en")
|
@MangaSourceParser("FREAKCOMIC", "FreakComic", "en")
|
||||||
internal class FreakComic(context: MangaLoaderContext) :
|
internal class FreakComic(context: MangaLoaderContext) :
|
||||||
MangaReaderParser(context, MangaSource.FREAKCOMIC, "freakcomic.com", pageSize = 20, searchPageSize = 10) {
|
MangaReaderParser(context, MangaSource.FREAKCOMIC, "freakcomic.com", pageSize = 20, searchPageSize = 10) {
|
||||||
override val isTagsExclusionSupported = false
|
override val isTagsExclusionSupported = false
|
||||||
|
override val selectMangaList = ".listupd .lastest-serie"
|
||||||
|
override val selectMangaListImg = "img"
|
||||||
|
override val selectChapter = ".chapter-li a:not(:has(svg))"
|
||||||
|
override val detailsDescriptionSelector = "#summary"
|
||||||
|
|
||||||
|
override suspend fun getOrCreateTagMap(): Map<String, MangaTag> = mutex.withLock {
|
||||||
|
tagCache?.let { return@withLock it }
|
||||||
|
val tagMap = ArrayMap<String, MangaTag>()
|
||||||
|
val url = "https://$domain/genres/"
|
||||||
|
val tagElements = webClient.httpGet(url).parseHtml().select("ul.genre-list > li.genre-item > a")
|
||||||
|
for (el in tagElements) {
|
||||||
|
if (el.text().isEmpty()) continue
|
||||||
|
tagMap[el.text()] = MangaTag(
|
||||||
|
title = el.text().toTitleCase(),
|
||||||
|
key = el.attrAsAbsoluteUrl("href")
|
||||||
|
.toHttpUrlOrNull()
|
||||||
|
?.queryParameter("genre")
|
||||||
|
?.takeUnless { it.isEmpty() }
|
||||||
|
?: continue,
|
||||||
|
source = source,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
tagCache = tagMap
|
||||||
|
return@withLock tagMap
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue