Match Discover captions and catalogue collection states
This commit is contained in:
parent
7e8e232d47
commit
4b28b4f044
25 changed files with 486 additions and 74 deletions
|
|
@ -44,11 +44,26 @@ class ConductarrDiscoverOperations(
|
|||
}
|
||||
}
|
||||
|
||||
override suspend fun hide(profile: String, title: DiscoverTitle): Boolean = client.mutate(TvRoutes.hide(profile,
|
||||
RecommendationHideInputBody(if (title.type == "movie") RecommendationHideInputBody.MediaType.MOVIE else RecommendationHideInputBody.MediaType.TV,
|
||||
title = title.title, tmdbId = title.tmdb, year = title.year?.toLong()))) is MutationResult.Success
|
||||
override suspend fun hide(profile: String, title: DiscoverTitle): Boolean {
|
||||
val result = client.mutate(TvRoutes.hide(profile,
|
||||
RecommendationHideInputBody(if (title.type == "movie") RecommendationHideInputBody.MediaType.MOVIE else RecommendationHideInputBody.MediaType.TV,
|
||||
title = title.title, tmdbId = title.tmdb, year = title.year?.toLong())))
|
||||
return result is MutationResult.Success || observedHidden(profile, title) == true
|
||||
}
|
||||
|
||||
override suspend fun restore(profile: String, title: DiscoverTitle): Boolean = client.mutate(TvRoutes.restore(profile, title.tmdb, title.mediaType())) is MutationResult.Success
|
||||
override suspend fun restore(profile: String, title: DiscoverTitle): Boolean {
|
||||
val result = client.mutate(TvRoutes.restore(profile, title.tmdb, title.mediaType()))
|
||||
return result is MutationResult.Success || observedHidden(profile, title) == false
|
||||
}
|
||||
|
||||
private suspend fun observedHidden(profile: String, title: DiscoverTitle): Boolean? {
|
||||
return when (val result = client.read(TvRoutes.dismissals(profile), org.justinvisser.wolfskin.conductarr.ReadTrigger.FORCE).last()) {
|
||||
is ReadResult.Value -> result.saved.value?.dismissals?.any {
|
||||
it.tmdbId == title.tmdb && it.mediaType.name == title.mediaType().name
|
||||
}
|
||||
is ReadResult.Failure -> null
|
||||
}
|
||||
}
|
||||
override suspend fun refresh(): DiscoverSnapshot = refreshSnapshot()
|
||||
}
|
||||
|
||||
|
|
@ -56,4 +71,5 @@ private fun DiscoverTitle.mediaType(): MediaType = if (type == "movie") MediaTyp
|
|||
private fun RequestReceipt.outcome(): DiscoverRequestResult = DiscoverRequestResult(
|
||||
phase = if (state == RequestReceipt.State.PENDING) RequestPhase.Pending else if (state == RequestReceipt.State.RETIRED) RequestPhase.Refused else RequestPhase.Receipt,
|
||||
actor = actor.name,
|
||||
requester = requester,
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue