pass auth header to md@home request when logged in
(cherry picked from commit c63bf955b308cbb67fcdda884eff76eaec901898) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/source/online/MangaDex.kt # app/src/main/java/eu/kanade/tachiyomi/source/online/handlers/PageHandler.kt # app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/HttpPageLoader.kt
This commit is contained in:
parent
d82967ea3d
commit
143dfc6ad2
@ -1,5 +1,7 @@
|
|||||||
package exh.md.handlers
|
package exh.md.handlers
|
||||||
|
|
||||||
|
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||||
|
import eu.kanade.tachiyomi.data.track.mdlist.MdList
|
||||||
import eu.kanade.tachiyomi.network.GET
|
import eu.kanade.tachiyomi.network.GET
|
||||||
import eu.kanade.tachiyomi.network.asObservableSuccess
|
import eu.kanade.tachiyomi.network.asObservableSuccess
|
||||||
import eu.kanade.tachiyomi.source.model.Page
|
import eu.kanade.tachiyomi.source.model.Page
|
||||||
@ -16,11 +18,11 @@ class PageHandler(
|
|||||||
private val headers: Headers,
|
private val headers: Headers,
|
||||||
private val apiChapterParser: ApiChapterParser,
|
private val apiChapterParser: ApiChapterParser,
|
||||||
private val mangaPlusHandler: MangaPlusHandler,
|
private val mangaPlusHandler: MangaPlusHandler,
|
||||||
private val usePort443Only: () -> Boolean,
|
private val preferences: PreferencesHelper,
|
||||||
private val dataSaver: () -> Boolean
|
private val mdList: MdList,
|
||||||
) {
|
) {
|
||||||
|
|
||||||
fun fetchPageList(chapter: SChapter): Observable<List<Page>> {
|
fun fetchPageList(chapter: SChapter, isLogged: Boolean, usePort443Only: Boolean, dataSaver: Boolean): Observable<List<Page>> {
|
||||||
if (chapter.scanlator.equals("MangaPlus")) {
|
if (chapter.scanlator.equals("MangaPlus")) {
|
||||||
return client.newCall(pageListRequest(chapter))
|
return client.newCall(pageListRequest(chapter))
|
||||||
.asObservableSuccess()
|
.asObservableSuccess()
|
||||||
@ -30,17 +32,23 @@ class PageHandler(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val atHomeRequestUrl = if (usePort443Only()) {
|
val atHomeRequestUrl = if (usePort443Only) {
|
||||||
"${MdUtil.atHomeUrl}/${MdUtil.getChapterId(chapter.url)}?forcePort443=true"
|
"${MdUtil.atHomeUrl}/${MdUtil.getChapterId(chapter.url)}?forcePort443=true"
|
||||||
} else {
|
} else {
|
||||||
"${MdUtil.atHomeUrl}/${MdUtil.getChapterId(chapter.url)}"
|
"${MdUtil.atHomeUrl}/${MdUtil.getChapterId(chapter.url)}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val (client, headers) = if (isLogged) {
|
||||||
|
client to MdUtil.getAuthHeaders(headers, preferences, mdList)
|
||||||
|
} else {
|
||||||
|
client to headers
|
||||||
|
}
|
||||||
|
|
||||||
return client.newCall(pageListRequest(chapter))
|
return client.newCall(pageListRequest(chapter))
|
||||||
.asObservableSuccess()
|
.asObservableSuccess()
|
||||||
.map { response ->
|
.map { response ->
|
||||||
val host = MdUtil.atHomeUrlHostUrl(atHomeRequestUrl, client, CacheControl.FORCE_NETWORK)
|
val host = MdUtil.atHomeUrlHostUrl(atHomeRequestUrl, client, headers, CacheControl.FORCE_NETWORK)
|
||||||
apiChapterParser.pageListParse(response, host, dataSaver())
|
apiChapterParser.pageListParse(response, host, dataSaver)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -298,8 +298,8 @@ class MdUtil {
|
|||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
fun atHomeUrlHostUrl(requestUrl: String, client: OkHttpClient, cacheControl: CacheControl): String {
|
fun atHomeUrlHostUrl(requestUrl: String, client: OkHttpClient, headers: Headers, cacheControl: CacheControl): String {
|
||||||
val atHomeRequest = GET(requestUrl, cache = cacheControl)
|
val atHomeRequest = GET(requestUrl, headers, cache = cacheControl)
|
||||||
val atHomeResponse = client.newCall(atHomeRequest).execute()
|
val atHomeResponse = client.newCall(atHomeRequest).execute()
|
||||||
return jsonParser.decodeFromString<AtHomeResponse>(atHomeResponse.body!!.string()).baseUrl
|
return jsonParser.decodeFromString<AtHomeResponse>(atHomeResponse.body!!.string()).baseUrl
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user