Make tracker utils package-internal (#3908)
It gets really annoying to use any of them when they have name collisions. Especially extensions on Track or basic public functions. Also make some same-file extension function in the MangaUpdates package method on the class they extended. I would have done the same for the DTOs themselves but any that are used on method signatures have to be public and then all their members also have to be public. We'd end up with a confusing mess of some internal and some public DTOs, even at the top level (since generics can be internal to the `dto` package (e.g. with parseAs<...>) but return annotations cannot be).
This commit is contained in:
@@ -4,7 +4,7 @@ import eu.kanade.domain.track.service.TrackPreferences
|
||||
import eu.kanade.tachiyomi.data.database.models.Track
|
||||
import tachiyomi.domain.track.model.Track as DomainTrack
|
||||
|
||||
fun Track.toApiStatus() = when (status) {
|
||||
internal fun Track.toApiStatus() = when (status) {
|
||||
Anilist.READING -> "CURRENT"
|
||||
Anilist.COMPLETED -> "COMPLETED"
|
||||
Anilist.ON_HOLD -> "PAUSED"
|
||||
@@ -14,7 +14,7 @@ fun Track.toApiStatus() = when (status) {
|
||||
else -> throw NotImplementedError("Unknown status: $status")
|
||||
}
|
||||
|
||||
fun DomainTrack.toApiScore(preferences: TrackPreferences): String = when (preferences.anilistScoreType.get()) {
|
||||
internal fun DomainTrack.toApiScore(preferences: TrackPreferences): String = when (preferences.anilistScoreType.get()) {
|
||||
// 10 point
|
||||
"POINT_10" -> (score.toInt() / 10).toString()
|
||||
// 100 point
|
||||
|
||||
@@ -2,7 +2,7 @@ package eu.kanade.tachiyomi.data.track.bangumi
|
||||
|
||||
import eu.kanade.tachiyomi.data.database.models.Track
|
||||
|
||||
fun Track.toApiStatus() = when (status) {
|
||||
internal fun Track.toApiStatus() = when (status) {
|
||||
Bangumi.PLAN_TO_READ -> 1
|
||||
Bangumi.COMPLETED -> 2
|
||||
Bangumi.READING -> 3
|
||||
|
||||
@@ -3,7 +3,7 @@ package eu.kanade.tachiyomi.data.track.hikka
|
||||
import eu.kanade.tachiyomi.data.database.models.Track
|
||||
import java.util.UUID
|
||||
|
||||
fun Track.toApiStatus() = when (status) {
|
||||
internal fun Track.toApiStatus() = when (status) {
|
||||
Hikka.READING -> "reading"
|
||||
Hikka.COMPLETED -> "completed"
|
||||
Hikka.ON_HOLD -> "on_hold"
|
||||
@@ -13,7 +13,7 @@ fun Track.toApiStatus() = when (status) {
|
||||
else -> throw NotImplementedError("Hikka: Unknown status: $status")
|
||||
}
|
||||
|
||||
fun toTrackStatus(status: String) = when (status) {
|
||||
internal fun toTrackStatus(status: String) = when (status) {
|
||||
"reading" -> Hikka.READING
|
||||
"completed" -> Hikka.COMPLETED
|
||||
"on_hold" -> Hikka.ON_HOLD
|
||||
@@ -22,7 +22,7 @@ fun toTrackStatus(status: String) = when (status) {
|
||||
else -> throw NotImplementedError("Hikka: Unknown status: $status")
|
||||
}
|
||||
|
||||
fun stringToNumber(input: String): Long {
|
||||
internal fun stringToNumber(input: String): Long {
|
||||
val uuid = UUID.nameUUIDFromBytes(input.toByteArray())
|
||||
return uuid.mostSignificantBits and Long.MAX_VALUE
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ package eu.kanade.tachiyomi.data.track.kitsu
|
||||
|
||||
import eu.kanade.tachiyomi.data.database.models.Track
|
||||
|
||||
fun Track.toKitsuApiStatus() = when (status) {
|
||||
internal fun Track.toKitsuApiStatus() = when (status) {
|
||||
Kitsu.READING -> "CURRENT"
|
||||
Kitsu.COMPLETED -> "COMPLETED"
|
||||
Kitsu.ON_HOLD -> "ON_HOLD"
|
||||
@@ -11,7 +11,7 @@ fun Track.toKitsuApiStatus() = when (status) {
|
||||
else -> throw Exception("Unknown status: $status")
|
||||
}
|
||||
|
||||
fun String.toKitsuLocalStatus() = when (this) {
|
||||
internal fun String.toKitsuLocalStatus() = when (this) {
|
||||
"CURRENT" -> Kitsu.READING
|
||||
"COMPLETED" -> Kitsu.COMPLETED
|
||||
"ON_HOLD" -> Kitsu.ON_HOLD
|
||||
|
||||
@@ -2,7 +2,7 @@ package eu.kanade.tachiyomi.data.track.mangabaka
|
||||
|
||||
import eu.kanade.tachiyomi.data.database.models.Track
|
||||
|
||||
fun Track.toApiStatus() = when (status) {
|
||||
internal fun Track.toApiStatus() = when (status) {
|
||||
MangaBaka.CONSIDERING -> "considering"
|
||||
MangaBaka.COMPLETED -> "completed"
|
||||
MangaBaka.DROPPED -> "dropped"
|
||||
|
||||
@@ -7,8 +7,6 @@ import eu.kanade.tachiyomi.data.track.BaseTracker
|
||||
import eu.kanade.tachiyomi.data.track.DeletableTracker
|
||||
import eu.kanade.tachiyomi.data.track.mangaupdates.dto.MUListItem
|
||||
import eu.kanade.tachiyomi.data.track.mangaupdates.dto.MURating
|
||||
import eu.kanade.tachiyomi.data.track.mangaupdates.dto.copyTo
|
||||
import eu.kanade.tachiyomi.data.track.mangaupdates.dto.toTrackSearch
|
||||
import eu.kanade.tachiyomi.data.track.model.TrackSearch
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.domain.track.model.Track as DomainTrack
|
||||
|
||||
@@ -12,11 +12,11 @@ data class MUListItem(
|
||||
val listId: Long? = null,
|
||||
val status: MUStatus? = null,
|
||||
val priority: Int? = null,
|
||||
)
|
||||
|
||||
fun MUListItem.copyTo(track: Track): Track {
|
||||
) {
|
||||
fun copyTo(track: Track): Track {
|
||||
return track.apply {
|
||||
this.status = listId ?: READING_LIST
|
||||
this.last_chapter_read = this@copyTo.status?.chapter?.toDouble() ?: 0.0
|
||||
this.last_chapter_read = this@MUListItem.status?.chapter?.toDouble() ?: 0.0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,10 +6,10 @@ import kotlinx.serialization.Serializable
|
||||
@Serializable
|
||||
data class MURating(
|
||||
val rating: Double? = null,
|
||||
)
|
||||
|
||||
fun MURating.copyTo(track: Track): Track {
|
||||
) {
|
||||
fun copyTo(track: Track): Track {
|
||||
return track.apply {
|
||||
this.score = rating ?: 0.0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,21 +22,21 @@ data class MURecord(
|
||||
@SerialName("latest_chapter")
|
||||
val latestChapter: Int? = null,
|
||||
val authors: List<MUAuthor> = emptyList(),
|
||||
)
|
||||
|
||||
fun MURecord.toTrackSearch(id: Long): TrackSearch {
|
||||
) {
|
||||
fun toTrackSearch(id: Long): TrackSearch {
|
||||
return TrackSearch.create(id).apply {
|
||||
remote_id = this@toTrackSearch.seriesId ?: 0L
|
||||
title = this@toTrackSearch.title?.htmlDecode() ?: ""
|
||||
remote_id = this@MURecord.seriesId ?: 0L
|
||||
title = this@MURecord.title?.htmlDecode() ?: ""
|
||||
total_chapters = 0
|
||||
cover_url = this@toTrackSearch.image?.url?.original ?: ""
|
||||
summary = this@toTrackSearch.description?.htmlDecode() ?: ""
|
||||
tracking_url = this@toTrackSearch.url ?: ""
|
||||
cover_url = this@MURecord.image?.url?.original ?: ""
|
||||
summary = this@MURecord.description?.htmlDecode() ?: ""
|
||||
tracking_url = this@MURecord.url ?: ""
|
||||
publishing_status = ""
|
||||
publishing_type = this@toTrackSearch.type.toString()
|
||||
start_date = this@toTrackSearch.year.toString()
|
||||
score = this@toTrackSearch.bayesianRating?.takeIf { it > 0 } ?: -1.0
|
||||
authors = this@toTrackSearch.authors.filter { it.type == "Author" }.map { it.name }
|
||||
artists = this@toTrackSearch.authors.filter { it.type == "Artist" }.map { it.name }
|
||||
publishing_type = this@MURecord.type.toString()
|
||||
start_date = this@MURecord.year.toString()
|
||||
score = this@MURecord.bayesianRating?.takeIf { it > 0 } ?: -1.0
|
||||
authors = this@MURecord.authors.filter { it.type == "Author" }.map { it.name }
|
||||
artists = this@MURecord.authors.filter { it.type == "Artist" }.map { it.name }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ package eu.kanade.tachiyomi.data.track.myanimelist
|
||||
|
||||
import eu.kanade.tachiyomi.data.database.models.Track
|
||||
|
||||
fun Track.toMyAnimeListStatus() = when (status) {
|
||||
internal fun Track.toMyAnimeListStatus() = when (status) {
|
||||
MyAnimeList.READING -> "reading"
|
||||
MyAnimeList.COMPLETED -> "completed"
|
||||
MyAnimeList.ON_HOLD -> "on_hold"
|
||||
@@ -12,7 +12,7 @@ fun Track.toMyAnimeListStatus() = when (status) {
|
||||
else -> null
|
||||
}
|
||||
|
||||
fun getStatus(status: String?) = when (status) {
|
||||
internal fun getStatus(status: String?) = when (status) {
|
||||
"reading" -> MyAnimeList.READING
|
||||
"completed" -> MyAnimeList.COMPLETED
|
||||
"on_hold" -> MyAnimeList.ON_HOLD
|
||||
|
||||
@@ -2,7 +2,7 @@ package eu.kanade.tachiyomi.data.track.shikimori
|
||||
|
||||
import eu.kanade.tachiyomi.data.database.models.Track
|
||||
|
||||
fun Track.toShikimoriStatus() = when (status) {
|
||||
internal fun Track.toShikimoriStatus() = when (status) {
|
||||
Shikimori.READING -> "watching"
|
||||
Shikimori.COMPLETED -> "completed"
|
||||
Shikimori.ON_HOLD -> "on_hold"
|
||||
@@ -12,7 +12,7 @@ fun Track.toShikimoriStatus() = when (status) {
|
||||
else -> throw NotImplementedError("Unknown status: $status")
|
||||
}
|
||||
|
||||
fun toTrackStatus(status: String) = when (status) {
|
||||
internal fun toTrackStatus(status: String) = when (status) {
|
||||
"watching" -> Shikimori.READING
|
||||
"completed" -> Shikimori.COMPLETED
|
||||
"on_hold" -> Shikimori.ON_HOLD
|
||||
|
||||
Reference in New Issue
Block a user