mirror of
https://github.com/mihonapp/mihon.git
synced 2025-11-16 14:07:28 +01:00
use chapter_number instead of ordinal index for syncChaptersWithTrackServiceTwoWay (#5846)
use v2 api for Komga tracker for series
This commit is contained in:
@@ -38,9 +38,11 @@ class KomgaApi(private val client: OkHttpClient) {
|
||||
}
|
||||
|
||||
val progress = client
|
||||
.newCall(GET("$url/read-progress/tachiyomi"))
|
||||
.await()
|
||||
.parseAs<ReadProgressDto>()
|
||||
.newCall(GET("${url.replace("/api/v1/series/", "/api/v2/series/")}/read-progress/tachiyomi"))
|
||||
.await().let {
|
||||
if (url.contains("/api/v1/series/")) it.parseAs<ReadProgressV2Dto>()
|
||||
else it.parseAs<ReadProgressDto>().toV2()
|
||||
}
|
||||
|
||||
track.apply {
|
||||
cover_url = "$url/thumbnail"
|
||||
@@ -51,7 +53,7 @@ class KomgaApi(private val client: OkHttpClient) {
|
||||
progress.booksReadCount -> Komga.COMPLETED
|
||||
else -> Komga.READING
|
||||
}
|
||||
last_chapter_read = progress.lastReadContinuousIndex.toFloat()
|
||||
last_chapter_read = progress.lastReadContinuousNumberSort
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
Timber.w(e, "Could not get item: $url")
|
||||
@@ -60,11 +62,14 @@ class KomgaApi(private val client: OkHttpClient) {
|
||||
}
|
||||
|
||||
suspend fun updateProgress(track: Track): Track {
|
||||
val progress = ReadProgressUpdateDto(track.last_chapter_read.toInt())
|
||||
val payload = json.encodeToString(progress)
|
||||
val payload = if (track.tracking_url.contains("/api/v1/series/")) {
|
||||
json.encodeToString(ReadProgressUpdateV2Dto(track.last_chapter_read))
|
||||
} else {
|
||||
json.encodeToString(ReadProgressUpdateDto(track.last_chapter_read.toInt()))
|
||||
}
|
||||
client.newCall(
|
||||
Request.Builder()
|
||||
.url("${track.tracking_url}/read-progress/tachiyomi")
|
||||
.url("${track.tracking_url.replace("/api/v1/series/", "/api/v2/series/")}/read-progress/tachiyomi")
|
||||
.put(payload.toRequestBody("application/json".toMediaType()))
|
||||
.build()
|
||||
)
|
||||
|
||||
@@ -63,6 +63,11 @@ data class ReadProgressUpdateDto(
|
||||
val lastBookRead: Int,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class ReadProgressUpdateV2Dto(
|
||||
val lastBookNumberSortRead: Float,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class ReadListDto(
|
||||
val id: String,
|
||||
@@ -80,4 +85,21 @@ data class ReadProgressDto(
|
||||
val booksUnreadCount: Int,
|
||||
val booksInProgressCount: Int,
|
||||
val lastReadContinuousIndex: Int,
|
||||
) {
|
||||
fun toV2() = ReadProgressV2Dto(
|
||||
booksCount,
|
||||
booksReadCount,
|
||||
booksUnreadCount,
|
||||
booksInProgressCount,
|
||||
lastReadContinuousIndex.toFloat()
|
||||
)
|
||||
}
|
||||
|
||||
@Serializable
|
||||
data class ReadProgressV2Dto(
|
||||
val booksCount: Int,
|
||||
val booksReadCount: Int,
|
||||
val booksUnreadCount: Int,
|
||||
val booksInProgressCount: Int,
|
||||
val lastReadContinuousNumberSort: Float,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user