diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/es/TuMangaOnlineParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/es/TuMangaOnlineParser.kt index ba4329b0..00b63e47 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/es/TuMangaOnlineParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/es/TuMangaOnlineParser.kt @@ -20,7 +20,7 @@ class TuMangaOnlineParser(context: MangaLoaderContext) : PagedMangaParser( pageSize = 24, ) { - override val configKeyDomain = ConfigKey.Domain("lectortmo.com") + override val configKeyDomain = ConfigKey.Domain("visortmo.com") private val chapterDateFormat = SimpleDateFormat("yyyy-MM-dd", sourceLocale) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/FlameScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/FlameScans.kt deleted file mode 100644 index 19b7e13f..00000000 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/FlameScans.kt +++ /dev/null @@ -1,13 +0,0 @@ -package org.koitharu.kotatsu.parsers.site.mangareader.en - -import org.koitharu.kotatsu.parsers.MangaLoaderContext -import org.koitharu.kotatsu.parsers.MangaSourceParser -import org.koitharu.kotatsu.parsers.model.MangaSource -import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser - -@MangaSourceParser("FLAMESCANS", "FlameScans", "en") -internal class FlameScans(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.FLAMESCANS, "flamescans.org", pageSize = 20, searchPageSize = 20) { - override val listUrl = "/series" - override val datePattern = "MMM d, yyyy" -} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/RealmScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/RealmScans.kt deleted file mode 100644 index 22513d2a..00000000 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/RealmScans.kt +++ /dev/null @@ -1,93 +0,0 @@ -package org.koitharu.kotatsu.parsers.site.mangareader.en - -import org.jsoup.nodes.Document -import org.koitharu.kotatsu.parsers.MangaLoaderContext -import org.koitharu.kotatsu.parsers.MangaSourceParser -import org.koitharu.kotatsu.parsers.model.Manga -import org.koitharu.kotatsu.parsers.model.MangaChapter -import org.koitharu.kotatsu.parsers.model.MangaSource -import org.koitharu.kotatsu.parsers.model.MangaState -import org.koitharu.kotatsu.parsers.model.MangaTag -import org.koitharu.kotatsu.parsers.model.SortOrder -import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser -import org.koitharu.kotatsu.parsers.util.domain -import org.koitharu.kotatsu.parsers.util.mapNotNullToSet -import org.koitharu.kotatsu.parsers.util.oneOrThrowIfMany -import org.koitharu.kotatsu.parsers.util.parseHtml -import java.util.EnumSet - -@MangaSourceParser("REALMSCANS", "RealmScans", "en") -internal class RealmScans(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.REALMSCANS, "realmscans.to", pageSize = 52, searchPageSize = 50) { - - override val listUrl = "/series" - override val datePattern = "dd MMM yyyy" - - override val sortOrders: Set - get() = EnumSet.of(SortOrder.NEWEST) - - override suspend fun getListPage( - page: Int, - query: String?, - tags: Set?, - sortOrder: SortOrder, - ): List { - if (!query.isNullOrEmpty()) { - return emptyList() // to do - } - - if (!tags.isNullOrEmpty()) { - if (page > 1) { - return emptyList() - } - val tag = tags.oneOrThrowIfMany() - val url = buildString { - append("https://") - append(domain) - append("genre/") - append(tag?.key.orEmpty()) - } - return parseMangaList(webClient.httpGet(url).parseHtml()) - } - - if (page > 1) { - return emptyList() - } - val url = buildString { - append("https://") - append(domain) - append(listUrl) - } - - return parseMangaList(webClient.httpGet(url).parseHtml()) - } - - override suspend fun parseInfo(docs: Document, manga: Manga, chapters: List): Manga { - val tagMap = getOrCreateTagMap() - val selectTag = docs.select(".wd-full .mgen > a") - val tags = selectTag.mapNotNullToSet { tagMap[it.text()] } - val mangaState = docs.selectFirst(".bs-status")?.let { - when (it.text().lowercase()) { - "ongoing" -> MangaState.ONGOING - "completed" -> MangaState.FINISHED - else -> null - } - } - val author = docs.selectFirst(".tsinfo div:contains(Author)")?.lastElementChild()?.text() - val nsfw = docs.selectFirst(".restrictcontainer") != null - || docs.selectFirst(".info-right .alr") != null - || docs.selectFirst(".postbody .alr") != null - - // Description in markdown renders it unattractive and unclear on the synopsis - // val desc = docs.selectFirstOrThrow("script:containsData(var description)").data().substringAfter("var description = \"").substringBefore("\";") - - return manga.copy( - description = null, - state = mangaState, - author = author, - isNsfw = manga.isNsfw || nsfw, - tags = tags, - chapters = chapters, - ) - } -}