mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 14:27:57 +01:00 
			
		
		
		
	Add private tracking support for Kitsu (#1774)
This commit is contained in:
		| @@ -17,6 +17,7 @@ The format is a modified version of [Keep a Changelog](https://keepachangelog.co | ||||
| - Add button to favorite manga from history screen ([@Animeboynz](https://github.com/Animeboynz)) ([#1733](https://github.com/mihonapp/mihon/pull/1733)) | ||||
| - Add Monochrome theme (made with e-ink displays in mind) ([@MajorTanya](https://github.com/MajorTanya)) ([#1752](https://github.com/mihonapp/mihon/pull/1752)) | ||||
| - Support for private tracking with AniList and Bangumi ([@NarwhalHorns](https://github.com/NarwhalHorns)) ([#1736](https://github.com/mihonapp/mihon/pull/1736)) | ||||
|   - Add private tracking support for Kitsu ([@MajorTanya](https://github.com/MajorTanya)) ([#1774](https://github.com/mihonapp/mihon/pull/1774)) | ||||
|  | ||||
| ### Changed | ||||
| - Apply "Downloaded only" filter to all entries regardless of favourite status ([@NGB-Was-Taken](https://github.com/NGB-Was-Taken)) ([#1603](https://github.com/mihonapp/mihon/pull/1603)) | ||||
|   | ||||
| @@ -10,7 +10,6 @@ import eu.kanade.tachiyomi.data.track.kitsu.dto.KitsuOAuth | ||||
| import eu.kanade.tachiyomi.data.track.model.TrackSearch | ||||
| import kotlinx.collections.immutable.ImmutableList | ||||
| import kotlinx.collections.immutable.toImmutableList | ||||
| import kotlinx.serialization.encodeToString | ||||
| import kotlinx.serialization.json.Json | ||||
| import tachiyomi.i18n.MR | ||||
| import uy.kohesive.injekt.injectLazy | ||||
| @@ -29,6 +28,8 @@ class Kitsu(id: Long) : BaseTracker(id, "Kitsu"), DeletableTracker { | ||||
|  | ||||
|     override val supportsReadingDates: Boolean = true | ||||
|  | ||||
|     override val supportsPrivateTracking: Boolean = true | ||||
|  | ||||
|     private val json: Json by injectLazy() | ||||
|  | ||||
|     private val interceptor by lazy { KitsuInterceptor(this) } | ||||
| @@ -101,7 +102,7 @@ class Kitsu(id: Long) : BaseTracker(id, "Kitsu"), DeletableTracker { | ||||
|     override suspend fun bind(track: Track, hasReadChapters: Boolean): Track { | ||||
|         val remoteTrack = api.findLibManga(track, getUserId()) | ||||
|         return if (remoteTrack != null) { | ||||
|             track.copyPersonalFrom(remoteTrack) | ||||
|             track.copyPersonalFrom(remoteTrack, copyRemotePrivate = false) | ||||
|             track.remote_id = remoteTrack.remote_id | ||||
|  | ||||
|             if (track.status != COMPLETED) { | ||||
| @@ -150,7 +151,7 @@ class Kitsu(id: Long) : BaseTracker(id, "Kitsu"), DeletableTracker { | ||||
|     fun restoreToken(): KitsuOAuth? { | ||||
|         return try { | ||||
|             json.decodeFromString<KitsuOAuth>(trackPreferences.trackToken(this).get()) | ||||
|         } catch (e: Exception) { | ||||
|         } catch (_: Exception) { | ||||
|             null | ||||
|         } | ||||
|     } | ||||
|   | ||||
| @@ -46,6 +46,7 @@ class KitsuApi(private val client: OkHttpClient, interceptor: KitsuInterceptor) | ||||
|                     putJsonObject("attributes") { | ||||
|                         put("status", track.toApiStatus()) | ||||
|                         put("progress", track.last_chapter_read.toInt()) | ||||
|                         put("private", track.private) | ||||
|                     } | ||||
|                     putJsonObject("relationships") { | ||||
|                         putJsonObject("user") { | ||||
| @@ -94,6 +95,7 @@ class KitsuApi(private val client: OkHttpClient, interceptor: KitsuInterceptor) | ||||
|                         put("ratingTwenty", track.toApiScore()) | ||||
|                         put("startedAt", KitsuDateHelper.convert(track.started_reading_date)) | ||||
|                         put("finishedAt", KitsuDateHelper.convert(track.finished_reading_date)) | ||||
|                         put("private", track.private) | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|   | ||||
| @@ -42,6 +42,7 @@ data class KitsuListSearchResult( | ||||
|             } | ||||
|             score = userDataAttrs.ratingTwenty?.let { it / 2.0 } ?: 0.0 | ||||
|             last_chapter_read = userDataAttrs.progress.toDouble() | ||||
|             private = userDataAttrs.private | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -59,6 +60,7 @@ data class KitsuListSearchItemDataAttributes( | ||||
|     val finishedAt: String?, | ||||
|     val ratingTwenty: Int?, | ||||
|     val progress: Int, | ||||
|     val private: Boolean, | ||||
| ) | ||||
|  | ||||
| @Serializable | ||||
|   | ||||
		Reference in New Issue
	
	Block a user