add change requested and fix url

pull/283/head
devi 3 years ago
parent 4120514256
commit b10fa0fd10

@ -28,7 +28,8 @@ internal class HentaiFox(context: MangaLoaderContext) : PagedMangaParser(context
val tag = tags.oneOrThrowIfMany()
val url = buildString {
append("https://$domain")
append("https://")
append(domain)
if (!tags.isNullOrEmpty()) {
append("/tag/")
append(tag?.key.orEmpty())
@ -173,6 +174,6 @@ internal class HentaiFox(context: MangaLoaderContext) : PagedMangaParser(context
override suspend fun getPageUrl(page: MangaPage): String {
val doc = webClient.httpGet(page.url.toAbsoluteUrl(domain)).parseHtml()
val root = doc.body()
return root.requireElementById("gimg").attr("data-src") ?: doc.parseFailed("Page image not found")
return root.requireElementById("gimg").attrAsAbsoluteUrl("data-src")
}
}

@ -132,7 +132,7 @@ internal class FlixScans(context: MangaLoaderContext) : PagedMangaParser(context
MangaChapter(
id = generateUid(url),
url = url,
name = j.getString("slug").replace("-", " "),
name = j.getString("slug").replace('-', ' '),
number = i + 1,
branch = null,
uploadDate = dateFormat.tryParse(date),

@ -26,9 +26,9 @@ internal class TeamXNovel(context: MangaLoaderContext) : PagedMangaParser(contex
sortOrder: SortOrder,
): List<Manga> {
val tag = tags.oneOrThrowIfMany()
val url = buildString {
append("https://$domain")
append("https://")
append(domain)
if (!tags.isNullOrEmpty()) {
append("/series?genre=")
append(tag?.key.orEmpty())
@ -57,7 +57,6 @@ internal class TeamXNovel(context: MangaLoaderContext) : PagedMangaParser(contex
}
val doc = webClient.httpGet(url).parseHtml()
return doc.select("div.listupd .bs .bsx").ifEmpty {
doc.select("div.post-body .box")
}.map { div ->
@ -97,7 +96,6 @@ internal class TeamXNovel(context: MangaLoaderContext) : PagedMangaParser(contex
override suspend fun getDetails(manga: Manga): Manga {
val doc = webClient.httpGet(manga.url.toAbsoluteUrl(domain)).parseHtml()
val mangaUrl = manga.url.toAbsoluteUrl(domain)
val maxPageChapterSelect = doc.select(".pagination .page-item a")
var maxPageChapter = 1
if (!maxPageChapterSelect.isNullOrEmpty()) {
@ -108,7 +106,6 @@ internal class TeamXNovel(context: MangaLoaderContext) : PagedMangaParser(contex
}
}
}
return manga.copy(
altTitle = null,
state = when (doc.selectFirstOrThrow(".full-list-info:contains(الحالة:) a").text()) {

@ -9,6 +9,7 @@ import org.koitharu.kotatsu.parsers.model.*
import org.koitharu.kotatsu.parsers.network.UserAgents
import org.koitharu.kotatsu.parsers.util.*
import org.koitharu.kotatsu.parsers.util.json.mapJSON
import java.lang.IllegalArgumentException
import java.text.SimpleDateFormat
import java.util.*
@ -48,24 +49,19 @@ internal class LugnicaScans(context: MangaLoaderContext) : PagedMangaParser(cont
tags: Set<MangaTag>?,
sortOrder: SortOrder,
): List<Manga> {
if (!query.isNullOrEmpty()) {
return emptyList()
throw IllegalArgumentException("Search is not supported by this source")
}
if (sortOrder == SortOrder.ALPHABETICAL) {
if (page > 1) {
return emptyList()
}
val url = buildString {
append("https://")
append(domain)
append("/api/get/catalog?page=0&filter=all")
}
val json = webClient.httpGet(url).parseJsonArray()
return json.mapJSON { j ->
val urlManga = "https://$domain/api/get/card/${j.getString("slug")}"
val img = "https://$domain/upload/min_cover/${j.getString("image")}"
@ -123,10 +119,8 @@ internal class LugnicaScans(context: MangaLoaderContext) : PagedMangaParser(cont
override suspend fun getDetails(manga: Manga): Manga {
val json = webClient.httpGet(manga.url.toAbsoluteUrl(domain)).parseJson()
val jsonManga = json.getJSONObject("manga")
val chapters = json.getJSONObject("chapters").toString().split("{\"id\":").drop(1) // Possible improvement here
val slug = manga.url.substringAfterLast("/")
val dateFormat = SimpleDateFormat("dd-MM-yyyy", Locale.FRANCE)
return manga.copy(
@ -163,18 +157,14 @@ internal class LugnicaScans(context: MangaLoaderContext) : PagedMangaParser(cont
private val simpleDateFormat = SimpleDateFormat("dd-MM-yyyy", Locale.FRANCE)
private fun getDateString(time: Long): String = simpleDateFormat.format(time * 1000L)
override suspend fun getPages(chapter: MangaChapter): List<MangaPage> {
val fullUrl = chapter.url.toAbsoluteUrl(domain)
val jsonPage = webClient.httpGet(fullUrl).parseJson()
val idManga = jsonPage.getJSONObject("manga").getString("id")
val slugChapter = chapter.url.substringAfterLast("/")
val pages = jsonPage.getJSONObject("chapter").getJSONArray("files").toString()
.replace("[", "").replace("]", "").replace("\"", "")
.split(",") // Possible improvement here
return pages.map { img ->
val url = "https://$domain/upload/chapitre/$idManga/$slugChapter/$img"
MangaPage(

@ -31,7 +31,8 @@ internal class TmoManga(context: MangaLoaderContext) :
): List<Manga> {
val tag = tags.oneOrThrowIfMany()
val url = buildString {
append("https://$domain")
append("https://")
append(domain)
when {
!query.isNullOrEmpty() -> {
append("/$listUrl")

@ -7,4 +7,4 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@MangaSourceParser("BEASTSCANS", "Beast Scans", "ar")
internal class BeastScans(context: MangaLoaderContext) :
MangaReaderParser(context, MangaSource.BEASTSCANS, "beast-scans.com", pageSize = 20, searchPageSize = 10)
MangaReaderParser(context, MangaSource.BEASTSCANS, "beastscans.net", pageSize = 20, searchPageSize = 10)

@ -7,6 +7,7 @@ import org.koitharu.kotatsu.parsers.PagedMangaParser
import org.koitharu.kotatsu.parsers.config.ConfigKey
import org.koitharu.kotatsu.parsers.model.*
import org.koitharu.kotatsu.parsers.util.*
import java.lang.IllegalArgumentException
import java.text.SimpleDateFormat
import java.util.*
@ -24,7 +25,7 @@ class LerMangaOnline(context: MangaLoaderContext) : PagedMangaParser(context, Ma
sortOrder: SortOrder,
): List<Manga> {
if (!query.isNullOrEmpty()) {
return emptyList() // Research revisits non-manga chapters
throw IllegalArgumentException("Search is not supported by this source")
}
val tag = tags.oneOrThrowIfMany()
val url = buildString {

@ -24,14 +24,16 @@ internal class Truyenqq(context: MangaLoaderContext) : PagedMangaParser(context,
val tagQuery = if (tags.isNullOrEmpty()) "" else tags.joinToString(separator = ",") { it.key }
val url = if (!query.isNullOrEmpty()) {
buildString {
append("https://$domain")
append("https://")
append(domain)
append("/tim-kiem/trang-$page.html")
append("?q=")
append(query.urlEncoded())
}
} else {
buildString {
append("https://$domain")
append("https://")
append(domain)
append("/tim-kiem-nang-cao/trang-$page.html")
append("?status=-1&country=0&sort=")
when (sortOrder) {

Loading…
Cancel
Save