From a1a0d40e9102f53c6d0ba84aa9aa4571d143acf5 Mon Sep 17 00:00:00 2001 From: MajorTanya <39014446+MajorTanya@users.noreply.github.com> Date: Tue, 25 Feb 2025 06:38:33 +0100 Subject: [PATCH] Fix Bangumi login regression (mihonapp/mihon#1770) Caused by mihonapp/mihon#1748. Two different issues actually. Firstly, the getUsername API call uses the authClient, which uses the BangumiInterceptor to get the current OAuth data and attach the Authorization header. However, on login, mihonapp/mihon#1748 did not try to set the new auth details until after attempting to call getUsername. This would cause Mihon to think the user was not authenticated with Bangumi and cancel the process. This is fixed by having Mihon store the OAuth credentials in the interceptor first before attempting to call getUsername. The second issue is a simple trailing dollar sign in the API URL for the getUsername method. This was removed. (cherry picked from commit badc229a2312c0c750c34631f303ac4ca970dc71) --- .../main/java/eu/kanade/tachiyomi/data/track/bangumi/Bangumi.kt | 2 +- .../java/eu/kanade/tachiyomi/data/track/bangumi/BangumiApi.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/Bangumi.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/Bangumi.kt index f3d761781..e2f0d3c47 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/Bangumi.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/Bangumi.kt @@ -110,11 +110,11 @@ class Bangumi(id: Long) : BaseTracker(id, "Bangumi") { suspend fun login(code: String) { try { val oauth = api.accessToken(code) + interceptor.newAuth(oauth) // Users can set a 'username' (not nickname) once which effectively // replaces the stringified ID in certain queries. // If no username is set, the API returns the user ID as a strings val username = api.getUsername() - interceptor.newAuth(oauth) saveCredentials(username, oauth.accessToken) } catch (_: Throwable) { logout() diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/BangumiApi.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/BangumiApi.kt index 22d757a6d..c14fd5acd 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/BangumiApi.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/BangumiApi.kt @@ -189,7 +189,7 @@ class BangumiApi( suspend fun getUsername(): String { return withIOContext { with(json) { - authClient.newCall(GET("$API_URL/v0/me$")) + authClient.newCall(GET("$API_URL/v0/me")) .awaitSuccess() .parseAs() .username