diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-03-26 19:10:34 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-03-26 19:10:34 -0400 |
| commit | 5e07bdf93c227bc98874ad333de4a6025fc53d6e (patch) | |
| tree | 741e581c66eeb9fd6acab633ee959d960fb8a017 /MediaBrowser.Server.Implementations | |
| parent | 7e312e75bbb1324748319b29c9353716ed93a8da (diff) | |
sync fixes
Diffstat (limited to 'MediaBrowser.Server.Implementations')
4 files changed, 38 insertions, 11 deletions
diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs index 64e5d20c9..f9fa1aae3 100644 --- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs +++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs @@ -1713,11 +1713,15 @@ namespace MediaBrowser.Server.Implementations.Library isNew = true; } - var refresh = isNew || (DateTime.UtcNow - item.DateLastSaved).TotalHours >= 6; + var refresh = isNew || (DateTime.UtcNow - item.DateLastSaved).TotalHours >= 12; if (refresh) { - _providerManagerFactory().QueueRefresh(item.Id, new MetadataRefreshOptions()); + _providerManagerFactory().QueueRefresh(item.Id, new MetadataRefreshOptions + { + // Need to force save to increment DateLastSaved + ForceSave = true + }); } return item; diff --git a/MediaBrowser.Server.Implementations/Photos/BaseDynamicImageProvider.cs b/MediaBrowser.Server.Implementations/Photos/BaseDynamicImageProvider.cs index eac0cd96d..1063fde53 100644 --- a/MediaBrowser.Server.Implementations/Photos/BaseDynamicImageProvider.cs +++ b/MediaBrowser.Server.Implementations/Photos/BaseDynamicImageProvider.cs @@ -125,7 +125,7 @@ namespace MediaBrowser.Server.Implementations.Photos protected abstract Task<List<BaseItem>> GetItemsWithImages(IHasImages item); - private const string Version = "4"; + private const string Version = "5"; protected string GetConfigurationCacheKey(List<BaseItem> items, string itemName) { var parts = Version + "_" + (itemName ?? string.Empty) + "_" + @@ -223,8 +223,8 @@ namespace MediaBrowser.Server.Implementations.Photos protected virtual List<BaseItem> GetFinalItems(List<BaseItem> items, int limit) { - // Rotate the images once every 7 days - var random = DateTime.Now.DayOfYear % 7; + // Rotate the images once every x days + var random = DateTime.Now.DayOfYear % 4; return items .OrderBy(i => (random + "" + items.IndexOf(i)).GetMD5()) diff --git a/MediaBrowser.Server.Implementations/Sync/MediaSync.cs b/MediaBrowser.Server.Implementations/Sync/MediaSync.cs index 429b72489..815756f9b 100644 --- a/MediaBrowser.Server.Implementations/Sync/MediaSync.cs +++ b/MediaBrowser.Server.Implementations/Sync/MediaSync.cs @@ -176,6 +176,8 @@ namespace MediaBrowser.Server.Implementations.Sync mediaSource.Path = sendFileResult.Path; mediaSource.Protocol = sendFileResult.Protocol; mediaSource.SupportsTranscoding = false; + + await SendSubtitles(localItem, mediaSource, provider, dataProvider, target, cancellationToken).ConfigureAwait(false); } } @@ -205,16 +207,37 @@ namespace MediaBrowser.Server.Implementations.Sync private async Task SendSubtitles(LocalItem localItem, MediaSourceInfo mediaSource, IServerSyncProvider provider, ISyncDataProvider dataProvider, SyncTarget target, CancellationToken cancellationToken) { + var failedSubtitles = new List<MediaStream>(); + var requiresSave = false; + foreach (var mediaStream in mediaSource.MediaStreams .Where(i => i.Type == MediaStreamType.Subtitle && i.IsExternal) .ToList()) { - var sendFileResult = await SendFile(provider, mediaStream.Path, localItem, target, cancellationToken).ConfigureAwait(false); + try + { + var sendFileResult = await SendFile(provider, mediaStream.Path, localItem, target, cancellationToken).ConfigureAwait(false); - mediaStream.Path = sendFileResult.Path; - + mediaStream.Path = sendFileResult.Path; + requiresSave = true; + } + catch (Exception ex) + { + _logger.ErrorException("Error sending subtitle stream", ex); + failedSubtitles.Add(mediaStream); + } + } + + if (failedSubtitles.Count > 0) + { + mediaSource.MediaStreams = mediaSource.MediaStreams.Except(failedSubtitles).ToList(); + requiresSave = true; + } + + if (requiresSave) + { await dataProvider.AddOrUpdate(target, localItem).ConfigureAwait(false); - } + } } private async Task RemoveItem(IServerSyncProvider provider, @@ -374,7 +397,7 @@ namespace MediaBrowser.Server.Implementations.Sync var name = Path.GetFileNameWithoutExtension(item.LocalPath); - foreach (var file in list.Where(f => f.Name.Contains(name))) + foreach (var file in list.Where(f => f.Name.IndexOf(name, StringComparison.OrdinalIgnoreCase) != -1)) { var itemFile = new ItemFileInfo { diff --git a/MediaBrowser.Server.Implementations/UserViews/StripCollageBuilder.cs b/MediaBrowser.Server.Implementations/UserViews/StripCollageBuilder.cs index af2e01457..0bf4d8e4a 100644 --- a/MediaBrowser.Server.Implementations/UserViews/StripCollageBuilder.cs +++ b/MediaBrowser.Server.Implementations/UserViews/StripCollageBuilder.cs @@ -162,7 +162,7 @@ namespace MediaBrowser.Server.Implementations.UserViews wandList.AddImage(mwr); int ex = (int)(wand.CurrentImage.Width - mwg.CurrentImage.Width) / 2; - wand.CurrentImage.CompositeImage(wandList.AppendImages(true), CompositeOperator.AtopCompositeOp, ex, Convert.ToInt32(height * .08)); + wand.CurrentImage.CompositeImage(wandList.AppendImages(true), CompositeOperator.AtopCompositeOp, ex, Convert.ToInt32(height * .085)); } } } |
