Happymh: Fix page list and chapter WebView (#6114)

This commit is contained in:
anenasa 2024-11-19 11:36:28 +08:00 committed by Draff
parent 3e2dee3690
commit 8271cbd637
No known key found for this signature in database
GPG Key ID: E8A89F3211677653
2 changed files with 14 additions and 6 deletions

View File

@ -1,7 +1,7 @@
ext {
extName = 'Happymh'
extClass = '.Happymh'
extVersionCode = 12
extVersionCode = 13
}
apply from: "$rootDir/common.gradle"

View File

@ -151,22 +151,30 @@ class Happymh : HttpSource(), ConfigurableSource {
return json.decodeFromString<ChapterListDto>(script).chapterList.map {
SChapter.create().apply {
val chapterId = it.id
url = "/v2.0/apis/manga/read?code=$comicId&cid=$chapterId&v=v2.13"
url = "/reads/$comicId/$chapterId"
name = it.chapterName
}
}
}
override fun getChapterUrl(chapter: SChapter): String {
return baseUrl + chapter.url
}
// Pages
override fun pageListRequest(chapter: SChapter): Request {
val url = baseUrl + chapter.url
val comicId = chapter.url.substringAfter("code=").substringBefore("&")
val chapterId = chapter.url.substringAfter("cid=").substringBefore("&")
if (chapter.url.startsWith("/v2.0/apis/manga/read")) {
// Old format is detected
throw Exception("请刷新章节列表")
}
val comicId = chapter.url.substringAfter("/reads/").substringBefore("/")
val chapterId = chapter.url.substringAfterLast("/")
val url = "$baseUrl/v2.0/apis/manga/read?code=$comicId&cid=$chapterId&v=v3.1302723"
// Some chapters return 403 without this header
val header = headersBuilder()
.add("X-Requested-With", "XMLHttpRequest")
.set("Referer", "$baseUrl/reads/$comicId/$chapterId")
.set("Referer", baseUrl + chapter.url)
.build()
return GET(url, header)
}