From 143dfc6ad268590126e373783bc0344c7a6f7af5 Mon Sep 17 00:00:00 2001 From: Carlos <2092019+CarlosEsco@users.noreply.github.com> Date: Sat, 5 Jun 2021 10:59:48 -0400 Subject: [PATCH] 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 --- .../main/java/exh/md/handlers/PageHandler.kt | 20 +++++++++++++------ app/src/main/java/exh/md/utils/MdUtil.kt | 4 ++-- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/exh/md/handlers/PageHandler.kt b/app/src/main/java/exh/md/handlers/PageHandler.kt index c07c3f2fe..ca3e2bc61 100644 --- a/app/src/main/java/exh/md/handlers/PageHandler.kt +++ b/app/src/main/java/exh/md/handlers/PageHandler.kt @@ -1,5 +1,7 @@ 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.asObservableSuccess import eu.kanade.tachiyomi.source.model.Page @@ -16,11 +18,11 @@ class PageHandler( private val headers: Headers, private val apiChapterParser: ApiChapterParser, private val mangaPlusHandler: MangaPlusHandler, - private val usePort443Only: () -> Boolean, - private val dataSaver: () -> Boolean + private val preferences: PreferencesHelper, + private val mdList: MdList, ) { - fun fetchPageList(chapter: SChapter): Observable> { + fun fetchPageList(chapter: SChapter, isLogged: Boolean, usePort443Only: Boolean, dataSaver: Boolean): Observable> { if (chapter.scanlator.equals("MangaPlus")) { return client.newCall(pageListRequest(chapter)) .asObservableSuccess() @@ -30,17 +32,23 @@ class PageHandler( } } - val atHomeRequestUrl = if (usePort443Only()) { + val atHomeRequestUrl = if (usePort443Only) { "${MdUtil.atHomeUrl}/${MdUtil.getChapterId(chapter.url)}?forcePort443=true" } else { "${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)) .asObservableSuccess() .map { response -> - val host = MdUtil.atHomeUrlHostUrl(atHomeRequestUrl, client, CacheControl.FORCE_NETWORK) - apiChapterParser.pageListParse(response, host, dataSaver()) + val host = MdUtil.atHomeUrlHostUrl(atHomeRequestUrl, client, headers, CacheControl.FORCE_NETWORK) + apiChapterParser.pageListParse(response, host, dataSaver) } } diff --git a/app/src/main/java/exh/md/utils/MdUtil.kt b/app/src/main/java/exh/md/utils/MdUtil.kt index 4e4d6fcdb..9f3768dac 100644 --- a/app/src/main/java/exh/md/utils/MdUtil.kt +++ b/app/src/main/java/exh/md/utils/MdUtil.kt @@ -298,8 +298,8 @@ class MdUtil { return null } - fun atHomeUrlHostUrl(requestUrl: String, client: OkHttpClient, cacheControl: CacheControl): String { - val atHomeRequest = GET(requestUrl, cache = cacheControl) + fun atHomeUrlHostUrl(requestUrl: String, client: OkHttpClient, headers: Headers, cacheControl: CacheControl): String { + val atHomeRequest = GET(requestUrl, headers, cache = cacheControl) val atHomeResponse = client.newCall(atHomeRequest).execute() return jsonParser.decodeFromString(atHomeResponse.body!!.string()).baseUrl }