From 9c74df60699a886a6026c41f2b3705a620b2df1b Mon Sep 17 00:00:00 2001 From: nicki <72807749+curche@users.noreply.github.com> Date: Sun, 19 Oct 2025 02:15:45 -0700 Subject: [PATCH] MangaPlus: use alternative api endpoint that contains all latest updates (#11122) use non-banner api endpoint that hopefully contains all updates --- src/all/mangaplus/build.gradle | 2 +- .../extension/all/mangaplus/MangaPlus.kt | 29 ++++++------------- .../extension/all/mangaplus/MangaPlusDto.kt | 6 ++++ 3 files changed, 16 insertions(+), 21 deletions(-) diff --git a/src/all/mangaplus/build.gradle b/src/all/mangaplus/build.gradle index f914f4b7b..75b0232f1 100644 --- a/src/all/mangaplus/build.gradle +++ b/src/all/mangaplus/build.gradle @@ -1,7 +1,7 @@ ext { extName = 'MANGA Plus by SHUEISHA' extClass = '.MangaPlusFactory' - extVersionCode = 55 + extVersionCode = 56 } apply from: "$rootDir/common.gradle" diff --git a/src/all/mangaplus/src/eu/kanade/tachiyomi/extension/all/mangaplus/MangaPlus.kt b/src/all/mangaplus/src/eu/kanade/tachiyomi/extension/all/mangaplus/MangaPlus.kt index 6297af091..0a5b64c2b 100644 --- a/src/all/mangaplus/src/eu/kanade/tachiyomi/extension/all/mangaplus/MangaPlus.kt +++ b/src/all/mangaplus/src/eu/kanade/tachiyomi/extension/all/mangaplus/MangaPlus.kt @@ -128,8 +128,7 @@ class MangaPlus( } } - override fun latestUpdatesRequest(page: Int) = - GET("$API_URL/web/web_homeV4?lang=$internalLang&clang=$internalLang&format=json", headers) + override fun latestUpdatesRequest(page: Int) = GET("$API_URL/home_v4?lang=$internalLang&clang=$internalLang&format=json", headers) override fun latestUpdatesParse(response: Response): MangasPage { val result = response.asMangaPlusResponse() @@ -138,26 +137,16 @@ class MangaPlus( result.error!!.langPopup(langCode)?.body ?: intl["unknown_error"] } - directory = result.success.webHomeViewV4!!.groups - .flatMap(UpdatedTitleV2Group::titleGroups) - .flatMap(OriginalTitleGroup::titles) - .map(UpdatedTitle::title) - .filter { it.language == langCode } - .distinctBy(Title::titleId) + directory = + result.success.homeViewV3!! + .groups + .flatMap(UpdatedTitleV2Group::titleGroups) + .flatMap(OriginalTitleGroup::titles) + .map(UpdatedTitle::title) + .filter { it.language == langCode } + .distinctBy(Title::titleId) titleCache.putAll(directory.associateBy(Title::titleId)) - titleCache.putAll( - result.success.webHomeViewV4.rankedTitles - .flatMap(RankedTitle::titles) - .filter { it.language == langCode } - .associateBy(Title::titleId), - ) - titleCache.putAll( - result.success.webHomeViewV4.featuredTitleLists - .flatMap(FeaturedTitleList::featuredTitles) - .filter { it.language == langCode } - .associateBy(Title::titleId), - ) return parseDirectory(1) } diff --git a/src/all/mangaplus/src/eu/kanade/tachiyomi/extension/all/mangaplus/MangaPlusDto.kt b/src/all/mangaplus/src/eu/kanade/tachiyomi/extension/all/mangaplus/MangaPlusDto.kt index e1b6ae478..8d7e07d58 100644 --- a/src/all/mangaplus/src/eu/kanade/tachiyomi/extension/all/mangaplus/MangaPlusDto.kt +++ b/src/all/mangaplus/src/eu/kanade/tachiyomi/extension/all/mangaplus/MangaPlusDto.kt @@ -34,6 +34,7 @@ class SuccessResult( val mangaViewer: MangaViewer? = null, val allTitlesViewV2: AllTitlesViewV2? = null, val webHomeViewV4: WebHomeViewV4? = null, + val homeViewV3: HomeViewV3? = null, ) @Serializable @@ -62,6 +63,11 @@ class WebHomeViewV4( val featuredTitleLists: List = emptyList(), ) +@Serializable +class HomeViewV3( + val groups: List = emptyList(), +) + @Serializable class FeaturedTitleList( val featuredTitles: List = emptyList(),