Madokami: Fix Manga details failed to load on deep subdirectory (#15989)
* Update Madokami.kt * Update Madokami.kt * Update build.gradle * Update Madokami.kt * Update Madokami.kt * Update Madokami.kt
This commit is contained in:
parent
fc472f4c5e
commit
5022738fc0
|
@ -6,7 +6,7 @@ ext {
|
||||||
extName = 'Madokami'
|
extName = 'Madokami'
|
||||||
pkgNameSuffix = 'en.madokami'
|
pkgNameSuffix = 'en.madokami'
|
||||||
extClass = '.Madokami'
|
extClass = '.Madokami'
|
||||||
extVersionCode = 6
|
extVersionCode = 7
|
||||||
}
|
}
|
||||||
|
|
||||||
apply from: "$rootDir/common.gradle"
|
apply from: "$rootDir/common.gradle"
|
||||||
|
|
|
@ -86,10 +86,17 @@ class Madokami : ConfigurableSource, ParsedHttpSource() {
|
||||||
override fun mangaDetailsRequest(manga: SManga): Request {
|
override fun mangaDetailsRequest(manga: SManga): Request {
|
||||||
val url = (baseUrl + manga.url).toHttpUrlOrNull()!!
|
val url = (baseUrl + manga.url).toHttpUrlOrNull()!!
|
||||||
if (url.pathSize > 5 && url.pathSegments[0] == "Manga" && url.pathSegments[1].length == 1) {
|
if (url.pathSize > 5 && url.pathSegments[0] == "Manga" && url.pathSegments[1].length == 1) {
|
||||||
return authenticate(GET(url.newBuilder().removePathSegment(5).build().toUrl().toExternalForm(), headers))
|
val builder = url.newBuilder()
|
||||||
|
for (i in 5 until url.pathSize) { builder.removePathSegment(5) }
|
||||||
|
return authenticate(GET(builder.build().toUrl().toExternalForm(), headers))
|
||||||
}
|
}
|
||||||
if (url.pathSize > 2 && url.pathSegments[0] == "Raws") {
|
if (url.pathSize > 2 && url.pathSegments[0] == "Raws") {
|
||||||
return authenticate(GET(url.newBuilder().removePathSegment(2).build().toUrl().toExternalForm(), headers))
|
val builder = url.newBuilder()
|
||||||
|
// to accomodate path pattern of /Raws/Magz/Series, this will remove all latter path segments that starts with !
|
||||||
|
// will fails if there's ever manga with ! prefix, but for now it works
|
||||||
|
var i = url.pathSize - 1
|
||||||
|
while (url.pathSegments[i].startsWith("!") && i >= 2) { builder.removePathSegment(i); i--; }
|
||||||
|
return authenticate(GET(builder.build().toUrl().toExternalForm(), headers))
|
||||||
}
|
}
|
||||||
return authenticate(GET(url.toUrl().toExternalForm(), headers))
|
return authenticate(GET(url.toUrl().toExternalForm(), headers))
|
||||||
}
|
}
|
||||||
|
@ -109,6 +116,8 @@ class Madokami : ConfigurableSource, ParsedHttpSource() {
|
||||||
return manga
|
return manga
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun getMangaUrl(manga: SManga) = "$baseUrl/" + manga.url.trimStart('/')
|
||||||
|
|
||||||
override fun chapterListRequest(manga: SManga) = authenticate(GET("$baseUrl/" + manga.url, headers))
|
override fun chapterListRequest(manga: SManga) = authenticate(GET("$baseUrl/" + manga.url, headers))
|
||||||
|
|
||||||
override fun chapterListParse(response: Response): List<SChapter> = super.chapterListParse(response).reversed()
|
override fun chapterListParse(response: Response): List<SChapter> = super.chapterListParse(response).reversed()
|
||||||
|
|
Loading…
Reference in New Issue