diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/en/Mangaowl.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/en/Mangaowl.kt index 3930970c..7df8fd72 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/en/Mangaowl.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/en/Mangaowl.kt @@ -66,7 +66,6 @@ internal class Mangaowl(context: MangaLoaderContext) : } else -> { - append("/8-comics") append("?page=") append(page.toString()) @@ -129,29 +128,25 @@ internal class Mangaowl(context: MangaLoaderContext) : } private fun getChapters(mangaUrl: String, doc: Document): List { - val dateFormat = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'", sourceLocale) - val script = doc.selectFirstOrThrow("script:containsData(chapters:)") val json = script.data().substringAfter("chapters:[").substringBeforeLast(')').substringBefore("],latest_chapter:") .split("},") val slug = mangaUrl.substringAfterLast("/") - val chapter = ArrayList() - val num = 0 - json.map { t -> + var lastIndexed = 0 + json.mapIndexed { i, t -> if (t.contains("Chapter")) { val id = t.substringAfter("id:").substringBefore(",created_at") val url = "/reading/$slug/$id" - val date = t.substringAfter("created_at:\"").substringBefore("\"") val name = t.substringAfter("name:\"").substringBefore("\"") chapter.add( MangaChapter( id = generateUid(url), name = name, - number = num + 1, + number = i + 1, url = url, uploadDate = dateFormat.tryParse(date), source = source, @@ -159,6 +154,7 @@ internal class Mangaowl(context: MangaLoaderContext) : branch = null, ), ) + lastIndexed = i } } @@ -171,7 +167,7 @@ internal class Mangaowl(context: MangaLoaderContext) : MangaChapter( id = generateUid(url), name = name, - number = num + 1, + number = lastIndexed + 1, url = url, uploadDate = dateFormat.tryParse(date), source = source, @@ -179,13 +175,11 @@ internal class Mangaowl(context: MangaLoaderContext) : branch = null, ), ) - return chapter } override suspend fun getPages(chapter: MangaChapter): List { val id = chapter.url.substringAfterLast("/") - val json = webClient.httpGet("https://api.mangaowl.to/v1/chapters/$id/images?page_size=100").parseJson() return json.getJSONArray("results").mapJSON { jo -> MangaPage( diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/PotatoManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/PotatoManga.kt index 9e45a7ec..f5ac3237 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/PotatoManga.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/PotatoManga.kt @@ -1,12 +1,39 @@ package org.koitharu.kotatsu.parsers.site.mangareader.ar +import org.json.JSONObject import org.koitharu.kotatsu.parsers.MangaLoaderContext 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.site.mangareader.MangaReaderParser +import org.koitharu.kotatsu.parsers.util.* +import java.util.ArrayList @MangaSourceParser("POTATOMANGA", "Potato Manga", "ar") internal class PotatoManga(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.POTATOMANGA, "potatomanga.xyz", pageSize = 30, searchPageSize = 10) { override val listUrl = "/series" + + override suspend fun getPages(chapter: MangaChapter): List { + 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(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 + } } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/SuryaScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/SuryaScans.kt index e7945ac2..73d56850 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/SuryaScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/SuryaScans.kt @@ -7,7 +7,4 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("SURYASCANS", "Surya Scans", "en") internal class SuryaScans(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.SURYASCANS, "suryascans.com", pageSize = 5, searchPageSize = 5) { - - override val datePattern = "MMM d, yyyy" -} + MangaReaderParser(context, MangaSource.SURYASCANS, "suryareader.com", pageSize = 5, searchPageSize = 5) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/SekaikomikParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/SekaikomikParser.kt index 66649556..c8ed39e3 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/SekaikomikParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/SekaikomikParser.kt @@ -7,4 +7,4 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("SEKAIKOMIK", "Sekai Komik", "id") 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)