refactor: update image handling in Episode dto to use imageUrlPrefix and JellyfinImageHelper

This commit is contained in:
2026-04-01 22:49:37 +02:00
parent 98850087ff
commit 680df51ce7
20 changed files with 52 additions and 35 deletions

View File

@@ -476,11 +476,10 @@ class InMemoryAppContentRepository @Inject constructor(
private fun BaseItemDto.toEpisode(serverUrl: String): Episode {
val releaseDate = formatReleaseDate(premiereDate, productionYear)
val heroImageUrl = id?.let { itemId ->
JellyfinImageHelper.toImageUrl(
val imageUrlPrefix = id?.let { itemId ->
JellyfinImageHelper.toPrefixImageUrl(
url = serverUrl,
itemId = itemId,
type = ImageType.PRIMARY
itemId = itemId
)
} ?: ""
return Episode(
@@ -496,7 +495,7 @@ class InMemoryAppContentRepository @Inject constructor(
watched = userData!!.played,
format = container?.uppercase() ?: "VIDEO",
synopsis = overview ?: "No synopsis available.",
heroImageUrl = heroImageUrl,
imageUrlPrefix = imageUrlPrefix,
cast = emptyList()
)
}

View File

@@ -125,8 +125,8 @@ class InMemoryMediaRepository @Inject constructor(
private fun BaseItemDto.toEpisode(serverUrl: String): Episode {
val releaseDate = formatReleaseDate(premiereDate, productionYear)
val heroImageUrl = id?.let { itemId ->
JellyfinImageHelper.toImageUrl(url = serverUrl, itemId = itemId, type = ImageType.PRIMARY)
val imageUrlPrefix = id?.let { itemId ->
JellyfinImageHelper.toPrefixImageUrl(url = serverUrl, itemId = itemId)
} ?: ""
return Episode(
id = id,
@@ -141,7 +141,7 @@ class InMemoryMediaRepository @Inject constructor(
watched = userData!!.played,
format = container?.uppercase() ?: "VIDEO",
synopsis = overview ?: "No synopsis available.",
heroImageUrl = heroImageUrl,
imageUrlPrefix = imageUrlPrefix,
cast = emptyList()
)
}

View File

@@ -31,5 +31,5 @@ data class EpisodeEntity(
val progress: Double?,
val watched: Boolean,
val format: String,
val heroImageUrl: String
val imageUrlPrefix: String
)

View File

@@ -23,7 +23,7 @@ import hu.bbara.purefin.core.data.room.entity.SmartDownloadEntity
EpisodeEntity::class,
SmartDownloadEntity::class,
],
version = 8,
version = 9,
exportSchema = false
)
@TypeConverters(UuidConverters::class)

View File

@@ -246,7 +246,7 @@ class OfflineRoomMediaLocalDataSource(
progress = progress,
watched = watched,
format = format,
heroImageUrl = heroImageUrl
imageUrlPrefix = imageUrlPrefix
)
private fun MovieEntity.toDomain() = Movie(
@@ -302,7 +302,7 @@ class OfflineRoomMediaLocalDataSource(
progress = progress,
watched = watched,
format = format,
heroImageUrl = heroImageUrl,
imageUrlPrefix = imageUrlPrefix,
cast = emptyList()
)
}

View File

@@ -15,6 +15,6 @@ data class Episode(
val progress: Double?,
val watched: Boolean,
val format: String,
val heroImageUrl: String,
val imageUrlPrefix: String,
val cast: List<CastMember>
)

View File

@@ -140,7 +140,7 @@ class PlayerMediaRepository @Inject constructor(
val subtitle = episode?.let { episodeSubtitle(null, it.index) }
val artworkUrl = when {
movie != null -> JellyfinImageHelper.finishImageUrl(movie.imageUrlPrefix, ImageType.PRIMARY)
episode != null -> episode.heroImageUrl
episode != null -> JellyfinImageHelper.finishImageUrl(episode.imageUrlPrefix, ImageType.PRIMARY)
else -> JellyfinImageHelper.toImageUrl(serverUrl, mediaId, ImageType.PRIMARY)
}
val resumePositionMs = resumePositionFor(movie, episode)