From 47fbb2b1b7d9840f68b68d210c80b72a0fee03b8 Mon Sep 17 00:00:00 2001 From: Jason Dove Date: Wed, 23 Nov 2022 18:34:55 -0600 Subject: [PATCH] properly unlock trakt (#1035) --- CHANGELOG.md | 1 + ErsatzTV/Pages/Artist.razor | 6 +++--- ErsatzTV/Pages/Channels.razor | 2 +- ErsatzTV/Pages/Collections.razor | 6 +++--- ErsatzTV/Pages/FFmpeg.razor | 4 ++-- ErsatzTV/Pages/FillerPresets.razor | 2 +- ErsatzTV/Pages/LocalLibraries.razor | 2 +- ErsatzTV/Pages/LocalLibraryEditor.razor | 4 ++-- ErsatzTV/Pages/Movie.razor | 2 +- ErsatzTV/Pages/Playouts.razor | 4 ++-- ErsatzTV/Pages/PlexMediaSources.razor | 2 +- ErsatzTV/Pages/Schedules.razor | 2 +- ErsatzTV/Pages/TelevisionEpisodeList.razor | 6 +++--- ErsatzTV/Pages/TelevisionSeasonList.razor | 6 +++--- ErsatzTV/Pages/TraktLists.razor | 12 ++++++++++-- ErsatzTV/Pages/Watermarks.razor | 4 ++-- ErsatzTV/Shared/RemoteMediaSources.razor | 2 +- 17 files changed, 38 insertions(+), 29 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d8590c6a..d48a4e04a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Fix `Work-Ahead HLS Segmenter Limit` setting to properly limit number of channels that can work-ahead at once - Include base path value in generated channel playlist (M3U) and channel guide (XMLTV) links - Fix parsing song metadata from OGG audio files +- Properly unlock/re-enable trakt list operations after an operation is canceled ### Added - Add (required) bit depth normalization option to ffmpeg profile diff --git a/ErsatzTV/Pages/Artist.razor b/ErsatzTV/Pages/Artist.razor index 36623ab1c..e304d8859 100644 --- a/ErsatzTV/Pages/Artist.razor +++ b/ErsatzTV/Pages/Artist.razor @@ -240,7 +240,7 @@ var parameters = new DialogParameters { { "EntityType", "artist" }, { "EntityName", _artist.Name } }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall }; - IDialogReference dialog = _dialog.Show("Add To Collection", parameters, options); + IDialogReference dialog = await _dialog.ShowAsync("Add To Collection", parameters, options); DialogResult result = await dialog.Result; if (!result.Cancelled && result.Data is MediaCollectionViewModel collection) { @@ -254,7 +254,7 @@ var parameters = new DialogParameters { { "EntityType", "artist" }, { "EntityName", _artist.Name } }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall }; - IDialogReference dialog = _dialog.Show("Add To Schedule", parameters, options); + IDialogReference dialog = await _dialog.ShowAsync("Add To Schedule", parameters, options); DialogResult result = await dialog.Result; if (!result.Cancelled && result.Data is ProgramScheduleViewModel schedule) { @@ -268,7 +268,7 @@ var parameters = new DialogParameters { { "EntityType", "music video" }, { "EntityName", musicVideo.Title } }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall }; - IDialogReference dialog = _dialog.Show("Add To Collection", parameters, options); + IDialogReference dialog = await _dialog.ShowAsync("Add To Collection", parameters, options); DialogResult result = await dialog.Result; if (!result.Cancelled && result.Data is MediaCollectionViewModel collection) { diff --git a/ErsatzTV/Pages/Channels.razor b/ErsatzTV/Pages/Channels.razor index 890887fa4..ab32c93a5 100644 --- a/ErsatzTV/Pages/Channels.razor +++ b/ErsatzTV/Pages/Channels.razor @@ -104,7 +104,7 @@ var parameters = new DialogParameters { { "EntityType", "channel" }, { "EntityName", channel.Name } }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall }; - IDialogReference dialog = _dialog.Show("Delete Channel", parameters, options); + IDialogReference dialog = await _dialog.ShowAsync("Delete Channel", parameters, options); DialogResult result = await dialog.Result; if (!result.Cancelled) { diff --git a/ErsatzTV/Pages/Collections.razor b/ErsatzTV/Pages/Collections.razor index 00453dacc..a68530955 100644 --- a/ErsatzTV/Pages/Collections.razor +++ b/ErsatzTV/Pages/Collections.razor @@ -165,7 +165,7 @@ var parameters = new DialogParameters { { "EntityType", "collection" }, { "EntityName", collection.Name } }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall }; - IDialogReference dialog = _dialog.Show("Delete Collection", parameters, options); + IDialogReference dialog = await _dialog.ShowAsync("Delete Collection", parameters, options); DialogResult result = await dialog.Result; if (!result.Cancelled) { @@ -179,7 +179,7 @@ var parameters = new DialogParameters { { "EntityType", "multi collection" }, { "EntityName", collection.Name } }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall }; - IDialogReference dialog = _dialog.Show("Delete Multi Collection", parameters, options); + IDialogReference dialog = await _dialog.ShowAsync("Delete Multi Collection", parameters, options); DialogResult result = await dialog.Result; if (!result.Cancelled) { @@ -193,7 +193,7 @@ var parameters = new DialogParameters { { "EntityType", "smart collection" }, { "EntityName", collection.Name } }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall }; - IDialogReference dialog = _dialog.Show("Delete Smart Collection", parameters, options); + IDialogReference dialog = await _dialog.ShowAsync("Delete Smart Collection", parameters, options); DialogResult result = await dialog.Result; if (!result.Cancelled) { diff --git a/ErsatzTV/Pages/FFmpeg.razor b/ErsatzTV/Pages/FFmpeg.razor index c1c9d0097..b1bbe5348 100644 --- a/ErsatzTV/Pages/FFmpeg.razor +++ b/ErsatzTV/Pages/FFmpeg.razor @@ -85,7 +85,7 @@ var parameters = new DialogParameters { { "EntityType", "ffmpeg profile" }, { "EntityName", ffmpegProfile.Name } }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall }; - IDialogReference dialog = _dialog.Show("Delete FFmpeg Profile", parameters, options); + IDialogReference dialog = await _dialog.ShowAsync("Delete FFmpeg Profile", parameters, options); DialogResult result = await dialog.Result; if (!result.Cancelled) { @@ -99,7 +99,7 @@ var parameters = new DialogParameters { { "FFmpegProfileId", ffmpegProfile.Id } }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall }; - IDialogReference dialog = _dialog.Show("Copy FFmpeg Profile", parameters, options); + IDialogReference dialog = await _dialog.ShowAsync("Copy FFmpeg Profile", parameters, options); DialogResult dialogResult = await dialog.Result; if (!dialogResult.Cancelled && dialogResult.Data is FFmpegProfileViewModel data) { diff --git a/ErsatzTV/Pages/FillerPresets.razor b/ErsatzTV/Pages/FillerPresets.razor index b37cf4446..6b46bfb89 100644 --- a/ErsatzTV/Pages/FillerPresets.razor +++ b/ErsatzTV/Pages/FillerPresets.razor @@ -87,7 +87,7 @@ var parameters = new DialogParameters { { "EntityType", "filler preset" }, { "EntityName", fillerPreset.Name } }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall }; - IDialogReference dialog = _dialog.Show("Delete Filler Preset", parameters, options); + IDialogReference dialog = await _dialog.ShowAsync("Delete Filler Preset", parameters, options); DialogResult result = await dialog.Result; if (!result.Cancelled) { diff --git a/ErsatzTV/Pages/LocalLibraries.razor b/ErsatzTV/Pages/LocalLibraries.razor index 9d2e9670b..55716a9ba 100644 --- a/ErsatzTV/Pages/LocalLibraries.razor +++ b/ErsatzTV/Pages/LocalLibraries.razor @@ -76,7 +76,7 @@ }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall }; - IDialogReference dialog = _dialog.Show("Delete Library", parameters, options); + IDialogReference dialog = await _dialog.ShowAsync("Delete Library", parameters, options); DialogResult result = await dialog.Result; if (!result.Cancelled) { diff --git a/ErsatzTV/Pages/LocalLibraryEditor.razor b/ErsatzTV/Pages/LocalLibraryEditor.razor index bfda00132..841237c03 100644 --- a/ErsatzTV/Pages/LocalLibraryEditor.razor +++ b/ErsatzTV/Pages/LocalLibraryEditor.razor @@ -141,7 +141,7 @@ var parameters = new DialogParameters { { "MediaKind", _model.MediaKind }, { "SourceLibraryId", Id } }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall }; - IDialogReference dialog = _dialog.Show("Move Local Library Path", parameters, options); + IDialogReference dialog = await _dialog.ShowAsync("Move Local Library Path", parameters, options); DialogResult result = await dialog.Result; if (!result.Cancelled && result.Data is LocalLibraryViewModel library) { @@ -175,7 +175,7 @@ }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall }; - IDialogReference dialog = _dialog.Show("Delete Library Path", parameters, options); + IDialogReference dialog = await _dialog.ShowAsync("Delete Library Path", parameters, options); DialogResult result = await dialog.Result; if (!result.Cancelled) { diff --git a/ErsatzTV/Pages/Movie.razor b/ErsatzTV/Pages/Movie.razor index d3dda6e5b..aa57122d2 100644 --- a/ErsatzTV/Pages/Movie.razor +++ b/ErsatzTV/Pages/Movie.razor @@ -244,7 +244,7 @@ var parameters = new DialogParameters { { "EntityType", "movie" }, { "EntityName", _movie.Title } }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall }; - IDialogReference dialog = _dialog.Show("Add To Collection", parameters, options); + IDialogReference dialog = await _dialog.ShowAsync("Add To Collection", parameters, options); DialogResult result = await dialog.Result; if (!result.Cancelled && result.Data is MediaCollectionViewModel collection) { diff --git a/ErsatzTV/Pages/Playouts.razor b/ErsatzTV/Pages/Playouts.razor index 5d063a292..a7ead1ba7 100644 --- a/ErsatzTV/Pages/Playouts.razor +++ b/ErsatzTV/Pages/Playouts.razor @@ -150,7 +150,7 @@ var parameters = new DialogParameters { { "EntityType", "playout" }, { "EntityName", $"{playout.ScheduleName} on {playout.ChannelNumber} - {playout.ChannelName}" } }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall }; - IDialogReference dialog = _dialog.Show("Delete Playout", parameters, options); + IDialogReference dialog = await _dialog.ShowAsync("Delete Playout", parameters, options); DialogResult result = await dialog.Result; if (!result.Cancelled) { @@ -184,7 +184,7 @@ }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall }; - IDialogReference dialog = _dialog.Show("Schedule Playout Reset", parameters, options); + IDialogReference dialog = await _dialog.ShowAsync("Schedule Playout Reset", parameters, options); await dialog.Result; await _table.ReloadServerData(); diff --git a/ErsatzTV/Pages/PlexMediaSources.razor b/ErsatzTV/Pages/PlexMediaSources.razor index 5beaa1f59..1a5c3fda1 100644 --- a/ErsatzTV/Pages/PlexMediaSources.razor +++ b/ErsatzTV/Pages/PlexMediaSources.razor @@ -104,7 +104,7 @@ private async Task SignOutOfPlex() { var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.Small }; - IDialogReference dialog = _dialog.Show("Sign out of Plex", options); + IDialogReference dialog = await _dialog.ShowAsync("Sign out of Plex", options); DialogResult result = await dialog.Result; if (!result.Cancelled) { diff --git a/ErsatzTV/Pages/Schedules.razor b/ErsatzTV/Pages/Schedules.razor index c0793a40a..3a04a189b 100644 --- a/ErsatzTV/Pages/Schedules.razor +++ b/ErsatzTV/Pages/Schedules.razor @@ -121,7 +121,7 @@ var parameters = new DialogParameters { { "EntityType", "schedule" }, { "EntityName", programSchedule.Name } }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall }; - IDialogReference dialog = _dialog.Show("Delete Schedule", parameters, options); + IDialogReference dialog = await _dialog.ShowAsync("Delete Schedule", parameters, options); DialogResult result = await dialog.Result; if (!result.Cancelled) { diff --git a/ErsatzTV/Pages/TelevisionEpisodeList.razor b/ErsatzTV/Pages/TelevisionEpisodeList.razor index 04676f27c..2a5e2f026 100644 --- a/ErsatzTV/Pages/TelevisionEpisodeList.razor +++ b/ErsatzTV/Pages/TelevisionEpisodeList.razor @@ -214,7 +214,7 @@ var parameters = new DialogParameters { { "EntityType", "season" }, { "EntityName", $"{_season.Title} - {_season.Name}" } }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall }; - IDialogReference dialog = _dialog.Show("Add To Collection", parameters, options); + IDialogReference dialog = await _dialog.ShowAsync("Add To Collection", parameters, options); DialogResult result = await dialog.Result; if (!result.Cancelled && result.Data is MediaCollectionViewModel collection) { @@ -229,7 +229,7 @@ var parameters = new DialogParameters { { "EntityType", "season" }, { "EntityName", $"{_season.Title} - {_season.Name}" } }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall }; - IDialogReference dialog = _dialog.Show("Add To Schedule", parameters, options); + IDialogReference dialog = await _dialog.ShowAsync("Add To Schedule", parameters, options); DialogResult result = await dialog.Result; if (!result.Cancelled && result.Data is ProgramScheduleViewModel schedule) { @@ -243,7 +243,7 @@ var parameters = new DialogParameters { { "EntityType", "episode" }, { "EntityName", episode.Title } }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall }; - IDialogReference dialog = _dialog.Show("Add To Collection", parameters, options); + IDialogReference dialog = await _dialog.ShowAsync("Add To Collection", parameters, options); DialogResult result = await dialog.Result; if (!result.Cancelled && result.Data is MediaCollectionViewModel collection) { diff --git a/ErsatzTV/Pages/TelevisionSeasonList.razor b/ErsatzTV/Pages/TelevisionSeasonList.razor index f30909d05..a99882111 100644 --- a/ErsatzTV/Pages/TelevisionSeasonList.razor +++ b/ErsatzTV/Pages/TelevisionSeasonList.razor @@ -210,7 +210,7 @@ var parameters = new DialogParameters { { "EntityType", "show" }, { "EntityName", _show.Title } }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall }; - IDialogReference dialog = _dialog.Show("Add To Collection", parameters, options); + IDialogReference dialog = await _dialog.ShowAsync("Add To Collection", parameters, options); DialogResult result = await dialog.Result; if (!result.Cancelled && result.Data is MediaCollectionViewModel collection) { @@ -224,7 +224,7 @@ var parameters = new DialogParameters { { "EntityType", "show" }, { "EntityName", _show.Title } }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall }; - IDialogReference dialog = _dialog.Show("Add To Schedule", parameters, options); + IDialogReference dialog = await _dialog.ShowAsync("Add To Schedule", parameters, options); DialogResult result = await dialog.Result; if (!result.Cancelled && result.Data is ProgramScheduleViewModel schedule) { @@ -240,7 +240,7 @@ var parameters = new DialogParameters { { "EntityType", "season" }, { "EntityName", season.Title } }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall }; - IDialogReference dialog = _dialog.Show("Add To Collection", parameters, options); + IDialogReference dialog = await _dialog.ShowAsync("Add To Collection", parameters, options); DialogResult result = await dialog.Result; if (!result.Cancelled && result.Data is MediaCollectionViewModel collection) { diff --git a/ErsatzTV/Pages/TraktLists.razor b/ErsatzTV/Pages/TraktLists.razor index 1c5984370..805ce9e77 100644 --- a/ErsatzTV/Pages/TraktLists.razor +++ b/ErsatzTV/Pages/TraktLists.razor @@ -115,12 +115,16 @@ var parameters = new DialogParameters { { "EntityType", "Trakt List" }, { "EntityName", traktList.Name } }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall }; - IDialogReference dialog = _dialog.Show("Delete Trakt List", parameters, options); + IDialogReference dialog = await _dialog.ShowAsync("Delete Trakt List", parameters, options); DialogResult result = await dialog.Result; if (!result.Cancelled) { await _workerChannel.WriteAsync(new DeleteTraktList(traktList.Id), _cts.Token); } + else + { + _locker.UnlockTrakt(); + } } } @@ -137,12 +141,16 @@ if (_locker.LockTrakt()) { var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.Small }; - IDialogReference dialog = _dialog.Show("Add Trakt List", options); + IDialogReference dialog = await _dialog.ShowAsync("Add Trakt List", options); DialogResult result = await dialog.Result; if (!result.Cancelled && result.Data is string url) { await _workerChannel.WriteAsync(new AddTraktList(url), _cts.Token); } + else + { + _locker.UnlockTrakt(); + } } } diff --git a/ErsatzTV/Pages/Watermarks.razor b/ErsatzTV/Pages/Watermarks.razor index 64a1f2d72..471ef1a7a 100644 --- a/ErsatzTV/Pages/Watermarks.razor +++ b/ErsatzTV/Pages/Watermarks.razor @@ -91,7 +91,7 @@ var parameters = new DialogParameters { { "EntityType", "watermark" }, { "EntityName", watermark.Name } }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall }; - IDialogReference dialog = _dialog.Show("Delete Watermark", parameters, options); + IDialogReference dialog = await _dialog.ShowAsync("Delete Watermark", parameters, options); DialogResult result = await dialog.Result; if (!result.Cancelled) { @@ -105,7 +105,7 @@ var parameters = new DialogParameters { { "WatermarkId", watermark.Id } }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall }; - IDialogReference dialog = _dialog.Show("Copy Watermark", parameters, options); + IDialogReference dialog = await _dialog.ShowAsync("Copy Watermark", parameters, options); DialogResult dialogResult = await dialog.Result; if (!dialogResult.Cancelled && dialogResult.Data is WatermarkViewModel data) { diff --git a/ErsatzTV/Shared/RemoteMediaSources.razor b/ErsatzTV/Shared/RemoteMediaSources.razor index e5a6502ee..e0ecc244b 100644 --- a/ErsatzTV/Shared/RemoteMediaSources.razor +++ b/ErsatzTV/Shared/RemoteMediaSources.razor @@ -119,7 +119,7 @@ { var parameters = new DialogParameters { { "Name", Name } }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.Small }; - IDialogReference dialog = _dialog.Show($"Disconnect {Name}", parameters, options); + IDialogReference dialog = await _dialog.ShowAsync($"Disconnect {Name}", parameters, options); DialogResult result = await dialog.Result; if (!result.Cancelled) {