diff --git a/MediaBrowser.Api/Images/ImageService.cs b/MediaBrowser.Api/Images/ImageService.cs index bfa2b645a0..aeae9c507e 100644 --- a/MediaBrowser.Api/Images/ImageService.cs +++ b/MediaBrowser.Api/Images/ImageService.cs @@ -797,7 +797,7 @@ namespace MediaBrowser.Api.Images // Handle image/png; charset=utf-8 mimeType = mimeType.Split(';').FirstOrDefault(); - await _providerManager.SaveImage(entity, memoryStream, mimeType, imageType, null, null, CancellationToken.None).ConfigureAwait(false); + await _providerManager.SaveImage(entity, memoryStream, mimeType, imageType, null, CancellationToken.None).ConfigureAwait(false); await entity.RefreshMetadata(new MetadataRefreshOptions { diff --git a/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs b/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs index d53338c860..7924b57d8b 100644 --- a/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs +++ b/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs @@ -193,6 +193,8 @@ namespace MediaBrowser.Api.Playback.Progressive if (request.Static && state.IsRemote) { + AddDlnaHeaders(state, responseHeaders, true); + return GetStaticRemoteStreamResult(state.MediaPath, responseHeaders, isHeadRequest).Result; } @@ -257,7 +259,6 @@ namespace MediaBrowser.Api.Playback.Progressive var result = new StaticRemoteStreamWriter(response, httpClient); result.Options["Content-Type"] = contentType; - AddDlnaHeaders(state, responseHeaders, isStatic); // Add the response headers to the result object foreach (var header in responseHeaders) diff --git a/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs b/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs index b2d95ed300..9b4e3a7361 100644 --- a/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs +++ b/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs @@ -48,12 +48,13 @@ namespace MediaBrowser.Controller.Entities.Audio } } + private readonly Task _cachedTask = Task.FromResult(true); protected override Task ValidateChildrenInternal(IProgress progress, CancellationToken cancellationToken, bool? recursive = null, bool forceRefreshMetadata = false) { if (IsAccessedByName) { // Should never get in here anyway - return Task.FromResult(true); + return _cachedTask; } return base.ValidateChildrenInternal(progress, cancellationToken, recursive, forceRefreshMetadata); diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj index 6b42285240..7bc8154239 100644 --- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj +++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj @@ -145,6 +145,7 @@ + diff --git a/MediaBrowser.Controller/Providers/IHasChangeMonitor.cs b/MediaBrowser.Controller/Providers/IHasChangeMonitor.cs new file mode 100644 index 0000000000..41313da3d8 --- /dev/null +++ b/MediaBrowser.Controller/Providers/IHasChangeMonitor.cs @@ -0,0 +1,15 @@ +using System; + +namespace MediaBrowser.Controller.Providers +{ + public interface IHasChangeMonitor + { + /// + /// Determines whether the specified item has changed. + /// + /// The item. + /// The date. + /// true if the specified item has changed; otherwise, false. + bool HasChanged(IHasMetadata item, DateTime date); + } +} diff --git a/MediaBrowser.Controller/Providers/IMetadataProvider.cs b/MediaBrowser.Controller/Providers/IMetadataProvider.cs index 123e806ed5..910c88e533 100644 --- a/MediaBrowser.Controller/Providers/IMetadataProvider.cs +++ b/MediaBrowser.Controller/Providers/IMetadataProvider.cs @@ -19,17 +19,6 @@ namespace MediaBrowser.Controller.Providers { } - public interface IHasChangeMonitor - { - /// - /// Determines whether the specified item has changed. - /// - /// The item. - /// The date. - /// true if the specified item has changed; otherwise, false. - bool HasChanged(IHasMetadata item, DateTime date); - } - public interface IHasOrder { int Order { get; } diff --git a/MediaBrowser.Controller/Providers/IProviderManager.cs b/MediaBrowser.Controller/Providers/IProviderManager.cs index 0e4f70c065..7019623ee7 100644 --- a/MediaBrowser.Controller/Providers/IProviderManager.cs +++ b/MediaBrowser.Controller/Providers/IProviderManager.cs @@ -53,10 +53,9 @@ namespace MediaBrowser.Controller.Providers /// Type of the MIME. /// The type. /// Index of the image. - /// The source URL. /// The cancellation token. /// Task. - Task SaveImage(BaseItem item, Stream source, string mimeType, ImageType type, int? imageIndex, string sourceUrl, CancellationToken cancellationToken); + Task SaveImage(BaseItem item, Stream source, string mimeType, ImageType type, int? imageIndex, CancellationToken cancellationToken); /// /// Adds the metadata providers. diff --git a/MediaBrowser.Providers/BoxSets/MovieDbBoxSetProvider.cs b/MediaBrowser.Providers/BoxSets/MovieDbBoxSetProvider.cs index 3908535f41..b046873508 100644 --- a/MediaBrowser.Providers/BoxSets/MovieDbBoxSetProvider.cs +++ b/MediaBrowser.Providers/BoxSets/MovieDbBoxSetProvider.cs @@ -168,7 +168,8 @@ namespace MediaBrowser.Providers.BoxSets } return mainResult; } - + + private readonly Task _cachedTask = Task.FromResult(true); internal Task EnsureInfo(string tmdbId, string preferredMetadataLanguage, CancellationToken cancellationToken) { var path = GetDataFilePath(_config.ApplicationPaths, tmdbId, preferredMetadataLanguage); @@ -180,7 +181,7 @@ namespace MediaBrowser.Providers.BoxSets // If it's recent or automatic updates are enabled, don't re-download if ((DateTime.UtcNow - _fileSystem.GetLastWriteTimeUtc(fileInfo)).TotalDays <= 7) { - return Task.FromResult(true); + return _cachedTask; } } diff --git a/MediaBrowser.Providers/Games/GameSystemXmlParser.cs b/MediaBrowser.Providers/Games/GameSystemXmlParser.cs index ba69c1fb25..85ee509ca1 100644 --- a/MediaBrowser.Providers/Games/GameSystemXmlParser.cs +++ b/MediaBrowser.Providers/Games/GameSystemXmlParser.cs @@ -15,13 +15,14 @@ namespace MediaBrowser.Providers.Games { } + private readonly Task _cachedTask = Task.FromResult(true); public Task FetchAsync(GameSystem item, string metadataFile, CancellationToken cancellationToken) { Fetch(item, metadataFile, cancellationToken); cancellationToken.ThrowIfCancellationRequested(); - return Task.FromResult(true); + return _cachedTask; } /// diff --git a/MediaBrowser.Providers/Games/GameXmlParser.cs b/MediaBrowser.Providers/Games/GameXmlParser.cs index a5e6adbefd..dfa71e5f44 100644 --- a/MediaBrowser.Providers/Games/GameXmlParser.cs +++ b/MediaBrowser.Providers/Games/GameXmlParser.cs @@ -21,13 +21,14 @@ namespace MediaBrowser.Providers.Games { } + private readonly Task _cachedTask = Task.FromResult(true); public Task FetchAsync(Game item, string metadataFile, CancellationToken cancellationToken) { Fetch(item, metadataFile, cancellationToken); cancellationToken.ThrowIfCancellationRequested(); - return Task.FromResult(true); + return _cachedTask; } /// diff --git a/MediaBrowser.Providers/Manager/ImageSaver.cs b/MediaBrowser.Providers/Manager/ImageSaver.cs index 2e0bf9a050..52aaf412a6 100644 --- a/MediaBrowser.Providers/Manager/ImageSaver.cs +++ b/MediaBrowser.Providers/Manager/ImageSaver.cs @@ -62,11 +62,10 @@ namespace MediaBrowser.Providers.Manager /// Type of the MIME. /// The type. /// Index of the image. - /// The source URL. /// The cancellation token. /// Task. /// mimeType - public async Task SaveImage(BaseItem item, Stream source, string mimeType, ImageType type, int? imageIndex, string sourceUrl, CancellationToken cancellationToken) + public async Task SaveImage(BaseItem item, Stream source, string mimeType, ImageType type, int? imageIndex, CancellationToken cancellationToken) { if (string.IsNullOrEmpty(mimeType)) { @@ -155,7 +154,7 @@ namespace MediaBrowser.Providers.Manager } // Set the path into the item - SetImagePath(item, type, imageIndex, paths[0], sourceUrl); + SetImagePath(item, type, imageIndex, paths[0]); // Delete the current path if (!string.IsNullOrEmpty(currentPath) && !paths.Contains(currentPath, StringComparer.OrdinalIgnoreCase)) @@ -271,11 +270,10 @@ namespace MediaBrowser.Providers.Manager /// The type. /// Index of the image. /// The path. - /// The source URL. /// imageIndex /// or /// imageIndex - private void SetImagePath(BaseItem item, ImageType type, int? imageIndex, string path, string sourceUrl) + private void SetImagePath(BaseItem item, ImageType type, int? imageIndex, string path) { switch (type) { diff --git a/MediaBrowser.Providers/Manager/ItemImageProvider.cs b/MediaBrowser.Providers/Manager/ItemImageProvider.cs index ee6f7cf698..3fb1e7074b 100644 --- a/MediaBrowser.Providers/Manager/ItemImageProvider.cs +++ b/MediaBrowser.Providers/Manager/ItemImageProvider.cs @@ -114,13 +114,13 @@ namespace MediaBrowser.Providers.Manager var stream = _fileSystem.GetFileStream(response.Path, FileMode.Open, FileAccess.Read, FileShare.Read, true); - await _providerManager.SaveImage((BaseItem)item, stream, mimeType, imageType, null, Guid.NewGuid().ToString(), cancellationToken).ConfigureAwait(false); + await _providerManager.SaveImage((BaseItem)item, stream, mimeType, imageType, null, cancellationToken).ConfigureAwait(false); } else { var mimeType = "image/" + response.Format.ToString().ToLower(); - await _providerManager.SaveImage((BaseItem)item, response.Stream, mimeType, imageType, null, Guid.NewGuid().ToString(), cancellationToken).ConfigureAwait(false); + await _providerManager.SaveImage((BaseItem)item, response.Stream, mimeType, imageType, null, cancellationToken).ConfigureAwait(false); } result.UpdateType = result.UpdateType | ItemUpdateType.ImageUpdate; @@ -337,7 +337,7 @@ namespace MediaBrowser.Providers.Manager { var response = await provider.GetImageResponse(url, cancellationToken).ConfigureAwait(false); - await _providerManager.SaveImage((BaseItem)item, response.Content, response.ContentType, type, null, url, cancellationToken).ConfigureAwait(false); + await _providerManager.SaveImage((BaseItem)item, response.Content, response.ContentType, type, null, cancellationToken).ConfigureAwait(false); result.UpdateType = result.UpdateType | ItemUpdateType.ImageUpdate; break; @@ -371,7 +371,7 @@ namespace MediaBrowser.Providers.Manager { var response = await provider.GetImageResponse(url, cancellationToken).ConfigureAwait(false); - await _providerManager.SaveImage((BaseItem)item, response.Content, response.ContentType, imageType, null, url, cancellationToken).ConfigureAwait(false); + await _providerManager.SaveImage((BaseItem)item, response.Content, response.ContentType, imageType, null, cancellationToken).ConfigureAwait(false); result.UpdateType = result.UpdateType | ItemUpdateType.ImageUpdate; break; } @@ -404,7 +404,7 @@ namespace MediaBrowser.Providers.Manager { var response = await provider.GetImageResponse(url, cancellationToken).ConfigureAwait(false); - await _providerManager.SaveImage((BaseItem)item, response.Content, response.ContentType, imageType, null, url, cancellationToken).ConfigureAwait(false); + await _providerManager.SaveImage((BaseItem)item, response.Content, response.ContentType, imageType, null, cancellationToken).ConfigureAwait(false); result.UpdateType = result.UpdateType | ItemUpdateType.ImageUpdate; break; } diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs index 47345126db..349a4de97c 100644 --- a/MediaBrowser.Providers/Manager/MetadataService.cs +++ b/MediaBrowser.Providers/Manager/MetadataService.cs @@ -56,12 +56,10 @@ namespace MediaBrowser.Providers.Manager public async Task RefreshMetadata(IHasMetadata item, MetadataRefreshOptions refreshOptions, CancellationToken cancellationToken) { var itemOfType = (TItemType)item; - var config = GetMetadataOptions(itemOfType); var updateType = ItemUpdateType.Unspecified; - var lastResult = GetLastResult(item.Id); - var refreshResult = lastResult; + var refreshResult = GetLastResult(item.Id); refreshResult.LastErrorMessage = string.Empty; refreshResult.LastStatus = ProviderRefreshStatus.Success; @@ -90,8 +88,8 @@ namespace MediaBrowser.Providers.Manager if (refreshOptions.MetadataRefreshMode != MetadataRefreshMode.None) { updateType = updateType | BeforeMetadataRefresh(itemOfType); - - var providers = GetProviders(item, lastResult.DateLastMetadataRefresh.HasValue, refreshOptions).ToList(); + + var providers = GetProviders(item, refreshResult.DateLastMetadataRefresh.HasValue, refreshOptions).ToList(); if (providers.Count > 0) { @@ -109,7 +107,7 @@ namespace MediaBrowser.Providers.Manager // Next run remote image providers, but only if local image providers didn't throw an exception if (!localImagesFailed && refreshOptions.ImageRefreshMode != ImageRefreshMode.ValidationOnly) { - var providers = GetNonLocalImageProviders(item, allImageProviders, lastResult.DateLastImagesRefresh.HasValue, refreshOptions).ToList(); + var providers = GetNonLocalImageProviders(item, allImageProviders, refreshResult.DateLastImagesRefresh, refreshOptions).ToList(); if (providers.Count > 0) { @@ -205,13 +203,13 @@ namespace MediaBrowser.Providers.Manager return providers; } - protected virtual IEnumerable GetNonLocalImageProviders(IHasMetadata item, IEnumerable allImageProviders, bool hasRefreshedImages, ImageRefreshOptions options) + protected virtual IEnumerable GetNonLocalImageProviders(IHasMetadata item, IEnumerable allImageProviders, DateTime? dateLastImageRefresh, ImageRefreshOptions options) { // Get providers to refresh var providers = allImageProviders.Where(i => !(i is ILocalImageProvider)).ToList(); // Run all if either of these flags are true - var runAllProviders = options.ImageRefreshMode == ImageRefreshMode.FullRefresh || !hasRefreshedImages; + var runAllProviders = options.ImageRefreshMode == ImageRefreshMode.FullRefresh || !dateLastImageRefresh.HasValue; if (!runAllProviders) { @@ -219,7 +217,7 @@ namespace MediaBrowser.Providers.Manager var currentItem = item; providers = providers.OfType() - .Where(i => i.HasChanged(currentItem, currentItem.DateLastSaved)) + .Where(i => i.HasChanged(currentItem, dateLastImageRefresh.Value)) .Cast() .ToList(); } diff --git a/MediaBrowser.Providers/Manager/ProviderManager.cs b/MediaBrowser.Providers/Manager/ProviderManager.cs index 1eb17d75d2..6b0ea7ed47 100644 --- a/MediaBrowser.Providers/Manager/ProviderManager.cs +++ b/MediaBrowser.Providers/Manager/ProviderManager.cs @@ -364,7 +364,7 @@ namespace MediaBrowser.Providers.Manager }).ConfigureAwait(false); - await SaveImage(item, response.Content, response.ContentType, type, imageIndex, url, cancellationToken) + await SaveImage(item, response.Content, response.ContentType, type, imageIndex, cancellationToken) .ConfigureAwait(false); } @@ -376,12 +376,11 @@ namespace MediaBrowser.Providers.Manager /// Type of the MIME. /// The type. /// Index of the image. - /// The source URL. /// The cancellation token. /// Task. - public Task SaveImage(BaseItem item, Stream source, string mimeType, ImageType type, int? imageIndex, string sourceUrl, CancellationToken cancellationToken) + public Task SaveImage(BaseItem item, Stream source, string mimeType, ImageType type, int? imageIndex, CancellationToken cancellationToken) { - return new ImageSaver(ConfigurationManager, _libraryMonitor, _fileSystem, _logger).SaveImage(item, source, mimeType, type, imageIndex, sourceUrl, cancellationToken); + return new ImageSaver(ConfigurationManager, _libraryMonitor, _fileSystem, _logger).SaveImage(item, source, mimeType, type, imageIndex, cancellationToken); } /// diff --git a/MediaBrowser.Providers/Movies/FanArtMovieProvider.cs b/MediaBrowser.Providers/Movies/FanArtMovieProvider.cs index 8eebf595a6..9fc57c5426 100644 --- a/MediaBrowser.Providers/Movies/FanArtMovieProvider.cs +++ b/MediaBrowser.Providers/Movies/FanArtMovieProvider.cs @@ -251,6 +251,7 @@ namespace MediaBrowser.Providers.Movies } } + private readonly Task _cachedTask = Task.FromResult(true); internal Task EnsureMovieXml(string tmdbId, CancellationToken cancellationToken) { var path = GetFanartXmlPath(tmdbId); @@ -261,7 +262,7 @@ namespace MediaBrowser.Providers.Movies { if (ConfigurationManager.Configuration.EnableFanArtUpdates || (DateTime.UtcNow - _fileSystem.GetLastWriteTimeUtc(fileInfo)).TotalDays <= 7) { - return Task.FromResult(true); + return _cachedTask; } } diff --git a/MediaBrowser.Providers/Movies/MovieDbImagesProvider.cs b/MediaBrowser.Providers/Movies/MovieDbImagesProvider.cs index e6c3a20359..9ef2e1bca1 100644 --- a/MediaBrowser.Providers/Movies/MovieDbImagesProvider.cs +++ b/MediaBrowser.Providers/Movies/MovieDbImagesProvider.cs @@ -202,7 +202,7 @@ namespace MediaBrowser.Providers.Movies }).ConfigureAwait(false); - await _providerManager.SaveImage(item, img, MimeTypes.GetMimeType(url), ImageType.Primary, null, url, cancellationToken) + await _providerManager.SaveImage(item, img, MimeTypes.GetMimeType(url), ImageType.Primary, null, cancellationToken) .ConfigureAwait(false); } @@ -233,7 +233,7 @@ namespace MediaBrowser.Providers.Movies }).ConfigureAwait(false); - await _providerManager.SaveImage(item, img, MimeTypes.GetMimeType(url), ImageType.Backdrop, null, url, cancellationToken) + await _providerManager.SaveImage(item, img, MimeTypes.GetMimeType(url), ImageType.Backdrop, null, cancellationToken) .ConfigureAwait(false); if (item.BackdropImagePaths.Count >= backdropLimit) diff --git a/MediaBrowser.Providers/Movies/MovieDbProvider.cs b/MediaBrowser.Providers/Movies/MovieDbProvider.cs index c6c47e198f..87e6be1f7c 100644 --- a/MediaBrowser.Providers/Movies/MovieDbProvider.cs +++ b/MediaBrowser.Providers/Movies/MovieDbProvider.cs @@ -366,6 +366,7 @@ namespace MediaBrowser.Providers.Movies JsonSerializer.SerializeToFile(mainResult, dataFilePath); } + private readonly Task _cachedTask = Task.FromResult(true); internal Task EnsureMovieInfo(BaseItem item, CancellationToken cancellationToken) { var path = GetDataFilePath(item); @@ -377,7 +378,7 @@ namespace MediaBrowser.Providers.Movies // If it's recent or automatic updates are enabled, don't re-download if ((ConfigurationManager.Configuration.EnableTmdbUpdates) || (DateTime.UtcNow - _fileSystem.GetLastWriteTimeUtc(fileInfo)).TotalDays <= 7) { - return Task.FromResult(true); + return _cachedTask; } } @@ -385,7 +386,7 @@ namespace MediaBrowser.Providers.Movies if (string.IsNullOrEmpty(id)) { - return Task.FromResult(true); + return _cachedTask; } return DownloadMovieInfo(id, item.GetPreferredMetadataLanguage(), cancellationToken); diff --git a/MediaBrowser.Providers/Music/FanArtArtistProvider.cs b/MediaBrowser.Providers/Music/FanArtArtistProvider.cs index 2b4a814c5d..446c809207 100644 --- a/MediaBrowser.Providers/Music/FanArtArtistProvider.cs +++ b/MediaBrowser.Providers/Music/FanArtArtistProvider.cs @@ -391,6 +391,7 @@ namespace MediaBrowser.Providers.Music return false; } + private readonly Task _cachedTask = Task.FromResult(true); internal Task EnsureMovieXml(string musicBrainzId, CancellationToken cancellationToken) { var xmlPath = GetArtistXmlPath(_config.ApplicationPaths, musicBrainzId); @@ -401,7 +402,7 @@ namespace MediaBrowser.Providers.Music { if (_config.Configuration.EnableFanArtUpdates || (DateTime.UtcNow - _fileSystem.GetLastWriteTimeUtc(fileInfo)).TotalDays <= 7) { - return Task.FromResult(true); + return _cachedTask; } } diff --git a/MediaBrowser.Providers/Music/SoundtrackPostScanTask.cs b/MediaBrowser.Providers/Music/SoundtrackPostScanTask.cs index a14f387b1f..1fd3fb9d9f 100644 --- a/MediaBrowser.Providers/Music/SoundtrackPostScanTask.cs +++ b/MediaBrowser.Providers/Music/SoundtrackPostScanTask.cs @@ -21,11 +21,12 @@ namespace MediaBrowser.Providers.Music _libraryManager = libraryManager; } + private readonly Task _cachedTask = Task.FromResult(true); public Task Run(IProgress progress, CancellationToken cancellationToken) { RunInternal(progress, cancellationToken); - return Task.FromResult(true); + return _cachedTask; } private void RunInternal(IProgress progress, CancellationToken cancellationToken) diff --git a/MediaBrowser.Providers/TV/FanArtTVProvider.cs b/MediaBrowser.Providers/TV/FanArtTVProvider.cs index baadf350fa..db71d0db8f 100644 --- a/MediaBrowser.Providers/TV/FanArtTVProvider.cs +++ b/MediaBrowser.Providers/TV/FanArtTVProvider.cs @@ -278,6 +278,7 @@ namespace MediaBrowser.Providers.TV } } + private readonly Task _cachedTask = Task.FromResult(true); internal Task EnsureSeriesXml(string tvdbId, CancellationToken cancellationToken) { var xmlPath = GetSeriesDataPath(ConfigurationManager.ApplicationPaths, tvdbId); @@ -288,7 +289,7 @@ namespace MediaBrowser.Providers.TV { if (ConfigurationManager.Configuration.EnableFanArtUpdates || (DateTime.UtcNow - _fileSystem.GetLastWriteTimeUtc(fileInfo)).TotalDays <= 7) { - return Task.FromResult(true); + return _cachedTask; } } diff --git a/MediaBrowser.Providers/TV/TvdbPrescanTask.cs b/MediaBrowser.Providers/TV/TvdbPrescanTask.cs index 24d231192d..af4c27278d 100644 --- a/MediaBrowser.Providers/TV/TvdbPrescanTask.cs +++ b/MediaBrowser.Providers/TV/TvdbPrescanTask.cs @@ -329,7 +329,7 @@ namespace MediaBrowser.Providers.TV /// Task. private Task UpdateSeries(string id, string seriesDataPath, long? lastTvDbUpdateTime, string preferredMetadataLanguage, CancellationToken cancellationToken) { - _logger.Info("Updating movie from tmdb " + id + ", language " + preferredMetadataLanguage); + _logger.Info("Updating series from tvdb " + id + ", language " + preferredMetadataLanguage); seriesDataPath = Path.Combine(seriesDataPath, id); diff --git a/MediaBrowser.Server.Implementations/LiveTv/RecordingImageProvider.cs b/MediaBrowser.Server.Implementations/LiveTv/RecordingImageProvider.cs index ce7c1286b5..1f5610f679 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/RecordingImageProvider.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/RecordingImageProvider.cs @@ -133,7 +133,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv // Dummy up the original url var url = item.ServiceName + recordingInfo.Id; - await _providerManager.SaveImage((BaseItem)item, imageStream, contentType, ImageType.Primary, null, url, cancellationToken).ConfigureAwait(false); + await _providerManager.SaveImage((BaseItem)item, imageStream, contentType, ImageType.Primary, null, cancellationToken).ConfigureAwait(false); return true; } diff --git a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs index 6b463bbdfc..71cf587851 100644 --- a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs +++ b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs @@ -320,6 +320,7 @@ namespace MediaBrowser.Server.Implementations.Persistence } } + private readonly Task _cachedTask = Task.FromResult(true); /// /// Saves the critic reviews. /// @@ -334,7 +335,7 @@ namespace MediaBrowser.Server.Implementations.Persistence _jsonSerializer.SerializeToFile(criticReviews.ToList(), path); - return Task.FromResult(true); + return _cachedTask; } /// diff --git a/MediaBrowser.Server.Implementations/Roku/RokuSessionController.cs b/MediaBrowser.Server.Implementations/Roku/RokuSessionController.cs index b9e8b7950f..0e2f9e1b57 100644 --- a/MediaBrowser.Server.Implementations/Roku/RokuSessionController.cs +++ b/MediaBrowser.Server.Implementations/Roku/RokuSessionController.cs @@ -91,10 +91,11 @@ namespace MediaBrowser.Server.Implementations.Roku }, cancellationToken); } + private readonly Task _cachedTask = Task.FromResult(true); public Task SendLibraryUpdateInfo(LibraryUpdateInfo info, CancellationToken cancellationToken) { // Roku probably won't care about this - return Task.FromResult(true); + return _cachedTask; } public Task SendRestartRequiredNotification(CancellationToken cancellationToken) @@ -110,7 +111,7 @@ namespace MediaBrowser.Server.Implementations.Roku public Task SendUserDataChangeInfo(UserDataChangeInfo info, CancellationToken cancellationToken) { // Roku probably won't care about this - return Task.FromResult(true); + return _cachedTask; } public Task SendServerShutdownNotification(CancellationToken cancellationToken) diff --git a/MediaBrowser.Server.Implementations/WebSocket/AlchemyWebSocket.cs b/MediaBrowser.Server.Implementations/WebSocket/AlchemyWebSocket.cs index de998254cc..2918c7ecd4 100644 --- a/MediaBrowser.Server.Implementations/WebSocket/AlchemyWebSocket.cs +++ b/MediaBrowser.Server.Implementations/WebSocket/AlchemyWebSocket.cs @@ -81,7 +81,8 @@ namespace MediaBrowser.Server.Implementations.WebSocket OnReceive(json); } } - + + private readonly Task _cachedTask = Task.FromResult(true); /// /// Sends the async. /// @@ -94,7 +95,7 @@ namespace MediaBrowser.Server.Implementations.WebSocket { UserContext.Send(bytes); - return Task.FromResult(true); + return _cachedTask; } ///