Minor fix

pull/274/head
devi 3 years ago
parent 07c3f22f75
commit 908cc22619

@ -66,7 +66,6 @@ internal class Mangaowl(context: MangaLoaderContext) :
} }
else -> { else -> {
append("/8-comics") append("/8-comics")
append("?page=") append("?page=")
append(page.toString()) append(page.toString())
@ -129,29 +128,25 @@ internal class Mangaowl(context: MangaLoaderContext) :
} }
private fun getChapters(mangaUrl: String, doc: Document): List<MangaChapter> { private fun getChapters(mangaUrl: String, doc: Document): List<MangaChapter> {
val dateFormat = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'", sourceLocale) val dateFormat = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'", sourceLocale)
val script = doc.selectFirstOrThrow("script:containsData(chapters:)") val script = doc.selectFirstOrThrow("script:containsData(chapters:)")
val json = val json =
script.data().substringAfter("chapters:[").substringBeforeLast(')').substringBefore("],latest_chapter:") script.data().substringAfter("chapters:[").substringBeforeLast(')').substringBefore("],latest_chapter:")
.split("},") .split("},")
val slug = mangaUrl.substringAfterLast("/") val slug = mangaUrl.substringAfterLast("/")
val chapter = ArrayList<MangaChapter>() val chapter = ArrayList<MangaChapter>()
val num = 0 var lastIndexed = 0
json.map { t -> json.mapIndexed { i, t ->
if (t.contains("Chapter")) { if (t.contains("Chapter")) {
val id = t.substringAfter("id:").substringBefore(",created_at") val id = t.substringAfter("id:").substringBefore(",created_at")
val url = "/reading/$slug/$id" val url = "/reading/$slug/$id"
val date = t.substringAfter("created_at:\"").substringBefore("\"") val date = t.substringAfter("created_at:\"").substringBefore("\"")
val name = t.substringAfter("name:\"").substringBefore("\"") val name = t.substringAfter("name:\"").substringBefore("\"")
chapter.add( chapter.add(
MangaChapter( MangaChapter(
id = generateUid(url), id = generateUid(url),
name = name, name = name,
number = num + 1, number = i + 1,
url = url, url = url,
uploadDate = dateFormat.tryParse(date), uploadDate = dateFormat.tryParse(date),
source = source, source = source,
@ -159,6 +154,7 @@ internal class Mangaowl(context: MangaLoaderContext) :
branch = null, branch = null,
), ),
) )
lastIndexed = i
} }
} }
@ -171,7 +167,7 @@ internal class Mangaowl(context: MangaLoaderContext) :
MangaChapter( MangaChapter(
id = generateUid(url), id = generateUid(url),
name = name, name = name,
number = num + 1, number = lastIndexed + 1,
url = url, url = url,
uploadDate = dateFormat.tryParse(date), uploadDate = dateFormat.tryParse(date),
source = source, source = source,
@ -179,13 +175,11 @@ internal class Mangaowl(context: MangaLoaderContext) :
branch = null, branch = null,
), ),
) )
return chapter return chapter
} }
override suspend fun getPages(chapter: MangaChapter): List<MangaPage> { override suspend fun getPages(chapter: MangaChapter): List<MangaPage> {
val id = chapter.url.substringAfterLast("/") val id = chapter.url.substringAfterLast("/")
val json = webClient.httpGet("https://api.mangaowl.to/v1/chapters/$id/images?page_size=100").parseJson() val json = webClient.httpGet("https://api.mangaowl.to/v1/chapters/$id/images?page_size=100").parseJson()
return json.getJSONArray("results").mapJSON { jo -> return json.getJSONArray("results").mapJSON { jo ->
MangaPage( MangaPage(

@ -1,12 +1,39 @@
package org.koitharu.kotatsu.parsers.site.mangareader.ar package org.koitharu.kotatsu.parsers.site.mangareader.ar
import org.json.JSONObject
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.MangaChapter
import org.koitharu.kotatsu.parsers.model.MangaPage
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
import org.koitharu.kotatsu.parsers.util.*
import java.util.ArrayList
@MangaSourceParser("POTATOMANGA", "Potato Manga", "ar") @MangaSourceParser("POTATOMANGA", "Potato Manga", "ar")
internal class PotatoManga(context: MangaLoaderContext) : internal class PotatoManga(context: MangaLoaderContext) :
MangaReaderParser(context, MangaSource.POTATOMANGA, "potatomanga.xyz", pageSize = 30, searchPageSize = 10) { MangaReaderParser(context, MangaSource.POTATOMANGA, "potatomanga.xyz", pageSize = 30, searchPageSize = 10) {
override val listUrl = "/series" override val listUrl = "/series"
override suspend fun getPages(chapter: MangaChapter): List<MangaPage> {
val chapterUrl = chapter.url.toAbsoluteUrl(domain)
val docs = webClient.httpGet(chapterUrl).parseHtml()
val script = docs.selectFirstOrThrow(selectTestScript)
val images = JSONObject(script.data().substringAfter('(').substringBeforeLast(')'))
.getJSONArray("sources")
.getJSONObject(0)
.getJSONArray("images")
val pages = ArrayList<MangaPage>(images.length())
for (i in 0 until images.length()) {
pages.add(
MangaPage(
id = generateUid(images.getString(i).replace("\\", "")),
url = images.getString(i).replace("\\", ""),
preview = null,
source = source,
),
)
}
return pages
}
} }

@ -7,7 +7,4 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@MangaSourceParser("SURYASCANS", "Surya Scans", "en") @MangaSourceParser("SURYASCANS", "Surya Scans", "en")
internal class SuryaScans(context: MangaLoaderContext) : internal class SuryaScans(context: MangaLoaderContext) :
MangaReaderParser(context, MangaSource.SURYASCANS, "suryascans.com", pageSize = 5, searchPageSize = 5) { MangaReaderParser(context, MangaSource.SURYASCANS, "suryareader.com", pageSize = 5, searchPageSize = 5)
override val datePattern = "MMM d, yyyy"
}

@ -7,4 +7,4 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@MangaSourceParser("SEKAIKOMIK", "Sekai Komik", "id") @MangaSourceParser("SEKAIKOMIK", "Sekai Komik", "id")
internal class SekaikomikParser(context: MangaLoaderContext) : internal class SekaikomikParser(context: MangaLoaderContext) :
MangaReaderParser(context, MangaSource.SEKAIKOMIK, "sekaikomik.pro", pageSize = 20, searchPageSize = 100) MangaReaderParser(context, MangaSource.SEKAIKOMIK, "sekaikomik.bio", pageSize = 20, searchPageSize = 100)

Loading…
Cancel
Save