mirror of
https://github.com/mihonapp/mihon.git
synced 2025-03-13 16:20:08 +01:00
Compare commits
7 Commits
0cbd9099fd
...
0430b85ecc
Author | SHA1 | Date | |
---|---|---|---|
|
0430b85ecc | ||
|
f49edd6160 | ||
|
0ec0637d47 | ||
|
07eae5943d | ||
|
0cc46974fa | ||
|
10bc14aaa7 | ||
|
6f35cb4ae3 |
@ -102,6 +102,7 @@ class Hikka(id: Long) : BaseTracker(id, "Hikka"), DeletableTracker {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun bind(track: Track, hasReadChapters: Boolean): Track {
|
override suspend fun bind(track: Track, hasReadChapters: Boolean): Track {
|
||||||
|
val readContent = api.getRead(track)
|
||||||
val remoteTrack = api.getManga(track)
|
val remoteTrack = api.getManga(track)
|
||||||
|
|
||||||
track.copyPersonalFrom(remoteTrack)
|
track.copyPersonalFrom(remoteTrack)
|
||||||
@ -112,7 +113,15 @@ class Hikka(id: Long) : BaseTracker(id, "Hikka"), DeletableTracker {
|
|||||||
track.status = if (!isRereading && hasReadChapters) READING else track.status
|
track.status = if (!isRereading && hasReadChapters) READING else track.status
|
||||||
}
|
}
|
||||||
|
|
||||||
return update(track)
|
return if (readContent != null) {
|
||||||
|
track.score = readContent.score.toDouble()
|
||||||
|
track.last_chapter_read = readContent.chapters.toDouble()
|
||||||
|
track.score = readContent.score.toDouble()
|
||||||
|
update(track)
|
||||||
|
} else {
|
||||||
|
track.score = 0.0
|
||||||
|
update(track)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun search(query: String): List<TrackSearch> {
|
override suspend fun search(query: String): List<TrackSearch> {
|
||||||
|
@ -97,7 +97,7 @@ class HikkaApi(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun getRead(track: Track): HKRead? {
|
suspend fun getRead(track: Track): HKRead? {
|
||||||
return withIOContext {
|
return withIOContext {
|
||||||
val slug = track.tracking_url.split("/")[4]
|
val slug = track.tracking_url.split("/")[4]
|
||||||
val url = "$BASE_API_URL/read/manga/$slug".toUri().buildUpon().build()
|
val url = "$BASE_API_URL/read/manga/$slug".toUri().buildUpon().build()
|
||||||
@ -177,7 +177,7 @@ class HikkaApi(
|
|||||||
private val authClient = client.newBuilder().addInterceptor(interceptor).build()
|
private val authClient = client.newBuilder().addInterceptor(interceptor).build()
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val BASE_API_URL = "https://hikka.io/api"
|
const val BASE_API_URL = "https://api.hikka.io"
|
||||||
const val BASE_URL = "https://hikka.io"
|
const val BASE_URL = "https://hikka.io"
|
||||||
private const val SCOPE = "readlist,read:user-details"
|
private const val SCOPE = "readlist,read:user-details"
|
||||||
private const val CLIENT_REFERENCE = "49eda83d-baa6-45f8-9936-b2a41d944da4"
|
private const val CLIENT_REFERENCE = "49eda83d-baa6-45f8-9936-b2a41d944da4"
|
||||||
|
@ -29,7 +29,6 @@ data class HKManga(
|
|||||||
title = this@HKManga.titleUa ?: this@HKManga.titleEn ?: this@HKManga.titleOriginal
|
title = this@HKManga.titleUa ?: this@HKManga.titleEn ?: this@HKManga.titleOriginal
|
||||||
total_chapters = this@HKManga.chapters?.toLong() ?: 0
|
total_chapters = this@HKManga.chapters?.toLong() ?: 0
|
||||||
cover_url = this@HKManga.image
|
cover_url = this@HKManga.image
|
||||||
summary = ""
|
|
||||||
score = this@HKManga.score
|
score = this@HKManga.score
|
||||||
tracking_url = HikkaApi.BASE_URL + "/manga/${this@HKManga.slug}"
|
tracking_url = HikkaApi.BASE_URL + "/manga/${this@HKManga.slug}"
|
||||||
publishing_status = this@HKManga.status
|
publishing_status = this@HKManga.status
|
||||||
|
@ -10,6 +10,8 @@ data class HKOAuth(
|
|||||||
val created: Long,
|
val created: Long,
|
||||||
) {
|
) {
|
||||||
fun isExpired(): Boolean {
|
fun isExpired(): Boolean {
|
||||||
return (expiration - 43200) < (System.currentTimeMillis() / 1000)
|
val currentTime = System.currentTimeMillis() / 1000
|
||||||
|
val buffer = 5 * 60 // safety margin
|
||||||
|
return currentTime >= (expiration - buffer)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,12 +5,5 @@ import kotlinx.serialization.Serializable
|
|||||||
@Serializable
|
@Serializable
|
||||||
data class HKUser(
|
data class HKUser(
|
||||||
val reference: String,
|
val reference: String,
|
||||||
val updated: Long,
|
|
||||||
val created: Long,
|
|
||||||
val description: String,
|
|
||||||
val username: String,
|
val username: String,
|
||||||
val cover: String,
|
|
||||||
val active: Boolean,
|
|
||||||
val avatar: String,
|
|
||||||
val role: String,
|
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user