
commonMain.app.moviebase.provider.unogs.model.UnogsModel.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of movie-providers-js Show documentation
Show all versions of movie-providers-js Show documentation
Kotlin Multiplatform library to access several Movie Providers.
package app.moviebase.provider.unogs.model
import app.moviebase.provider.core.date.LocalDateSerializer
import kotlinx.datetime.LocalDate
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
enum class UnogsMediaType(val value: String) {
@SerialName("movie")
MOVIE("movie"),
@SerialName("series")
SHOW("series")
}
@Serializable
data class UnogsReleaseExpireItems(
@SerialName("COUNT") val count: String,
@SerialName("ITEMS") val items: List
)
@Serializable
data class UnogsDeletedItems(
@SerialName("COUNT") val count: String,
@SerialName("ITEMS") val items: List
)
@Serializable
data class UnogsItem(
@SerialName("netflixid") val netflixId: String,
@SerialName("imdbid") val imdbId: String?,
@SerialName("title") val titleValue: String,
val released: String,
@SerialName("unogsdate") @Serializable(LocalDateSerializer::class) val unogsDate: LocalDate? = null,
@SerialName("type") val type: UnogsMediaType,
@SerialName("synopsis") val synopsis: String
) {
val releaseYear: Int? get() = released.toIntOrNull()
val title: String
get() = titleValue
.replace("’", "'")
.replace("'", "'")
.replace("&", "&")
.replace(""", "\"")
.replace("'", "'")
val season: Int?
get() {
if (type != UnogsMediaType.SHOW) return null
if (!synopsis.contains("Seasons")) return null
val seasonText = synopsis.substringAfter("
From ")
.substringBefore(" Seasons
")
return seasonText.substringAfter(" to ").toIntOrNull()
}
}
@Serializable
data class UnogsDeleted(
@SerialName("netflixid") val netflixId: String,
@SerialName("date") @Serializable(LocalDateSerializer::class) val date: LocalDate? = null
)
@Serializable
data class UnogsDetails(
@SerialName("filmid") val filmId: String,
@SerialName("imdbid") val imdbId: String,
@SerialName("type") val type: UnogsMediaType
)
© 2015 - 2025 Weber Informatics LLC | Privacy Policy