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:
Carlos 2021-06-05 10:59:48 -04:00 committed by Jobobby04
parent d82967ea3d
commit 143dfc6ad2
2 changed files with 16 additions and 8 deletions

View File

@ -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)
} }
} }

View File

@ -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
} }