浏览代码

update built in studio images

Luke Pulverenti 11 年之前
父节点
当前提交
858be5d788

+ 3 - 6
MediaBrowser.Api/Playback/Hls/HlsSegmentService.cs

@@ -145,16 +145,13 @@ namespace MediaBrowser.Api.Playback.Hls
             }
         }
 
-        private void ExtendPlaylistTimer(string playlist)
+        private async void ExtendPlaylistTimer(string playlist)
         {
             ApiEntryPoint.Instance.OnTranscodeBeginRequest(playlist, TranscodingJobType.Hls);
 
-            Task.Run(async () =>
-            {
-                await Task.Delay(20000).ConfigureAwait(false);
+            await Task.Delay(20000).ConfigureAwait(false);
 
-                ApiEntryPoint.Instance.OnTranscodeEndRequest(playlist, TranscodingJobType.Hls);
-            });
+            ApiEntryPoint.Instance.OnTranscodeEndRequest(playlist, TranscodingJobType.Hls);
         }
     }
 }

+ 5 - 0
MediaBrowser.Controller/Entities/BaseItem.cs

@@ -1135,6 +1135,11 @@ namespace MediaBrowser.Controller.Entities
             {
                 throw new ArgumentNullException();
             }
+            if (IsInMixedFolder != copy.IsInMixedFolder)
+            {
+                Logger.Debug(Name + " changed due to different value for IsInMixedFolder.");
+                return true;
+            }
 
             var changed = copy.DateModified != DateModified;
             if (changed)

+ 1 - 0
MediaBrowser.Controller/Entities/Folder.cs

@@ -413,6 +413,7 @@ namespace MediaBrowser.Controller.Entities
                                 EntityResolutionHelper.EnsureDates(FileSystem, currentChild, child.ResolveArgs, false);
                             }
 
+                            currentChild.IsInMixedFolder = child.IsInMixedFolder;
                             validChildren.Add(new Tuple<BaseItem, bool>(currentChild, true));
                         }
                         else

+ 1 - 1
MediaBrowser.Mono.userprefs

@@ -2,7 +2,7 @@
   <MonoDevelop.Ide.Workspace ActiveConfiguration="Release Mono" />
   <MonoDevelop.Ide.Workbench ActiveDocument="MediaBrowser.Server.Mono\app.config">
     <Files>
-      <File FileName="MediaBrowser.Server.Mono\app.config" Line="11" Column="68" />
+      <File FileName="MediaBrowser.Server.Mono\app.config" Line="5" Column="20" />
     </Files>
   </MonoDevelop.Ide.Workbench>
   <MonoDevelop.Ide.DebuggingService.Breakpoints>

+ 1 - 1
MediaBrowser.Providers/Studios/StudioImageProvider.cs

@@ -69,7 +69,7 @@ namespace MediaBrowser.Providers.Studios
         {
             get
             {
-                return "3";
+                return "5";
             }
         }
 

+ 0 - 2
MediaBrowser.Providers/Studios/thumbs.txt

@@ -29,7 +29,6 @@ Animal Planet
 Animation Domination High-Def
 Anime Network
 Aniplex
-Anyone But Me, LLC
 Artists Den Entertainment
 Asian Crush
 Atlantic Records
@@ -164,7 +163,6 @@ Food Network
 FORA.tv
 Ford
 FOX
-Fox Business
 Fox College Sports
 Fox Movie Channel
 Fox News

+ 6 - 7
MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs

@@ -529,27 +529,26 @@ namespace MediaBrowser.Server.Implementations.IO
                 return;
             }
 
-            await Task.WhenAll(itemsToRefresh.Select(i => Task.Run(async () =>
+            foreach (var item in itemsToRefresh)
             {
-                Logger.Info(i.Name + " (" + i.Path + ") will be refreshed.");
+                Logger.Info(item.Name + " (" + item.Path + ") will be refreshed.");
 
                 try
                 {
-                    await i.ChangedExternally().ConfigureAwait(false);
+                    await item.ChangedExternally().ConfigureAwait(false);
                 }
                 catch (IOException ex)
                 {
                     // For now swallow and log. 
                     // Research item: If an IOException occurs, the item may be in a disconnected state (media unavailable)
                     // Should we remove it from it's parent?
-                    Logger.ErrorException("Error refreshing {0}", ex, i.Name);
+                    Logger.ErrorException("Error refreshing {0}", ex, item.Name);
                 }
                 catch (Exception ex)
                 {
-                    Logger.ErrorException("Error refreshing {0}", ex, i.Name);
+                    Logger.ErrorException("Error refreshing {0}", ex, item.Name);
                 }
-
-            }))).ConfigureAwait(false);
+            }
         }
 
         /// <summary>

+ 6 - 0
MediaBrowser.Server.Implementations/Library/CoreResolutionIgnoreRule.cs

@@ -114,6 +114,12 @@ namespace MediaBrowser.Server.Implementations.Library
                     {
                         return true;
                     }
+
+                    // Don't misidentify xbmc trailers as a movie
+                    if (filename.IndexOf(BaseItem.XbmcTrailerFileSuffix, StringComparison.OrdinalIgnoreCase) != -1)
+                    {
+                        return true;
+                    }
                 }
             }
 

+ 9 - 7
MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs

@@ -91,31 +91,31 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
                 if (args.Path.IndexOf("[trailers]", StringComparison.OrdinalIgnoreCase) != -1 ||
                     string.Equals(collectionType, CollectionType.Trailers, StringComparison.OrdinalIgnoreCase))
                 {
-                    return FindMovie<Trailer>(args.Path, args.FileSystemChildren);
+                    return FindMovie<Trailer>(args.Path, args.Parent, args.FileSystemChildren);
                 }
 
                 if (args.Path.IndexOf("[musicvideos]", StringComparison.OrdinalIgnoreCase) != -1 ||
                     string.Equals(collectionType, CollectionType.MusicVideos, StringComparison.OrdinalIgnoreCase))
                 {
-                    return FindMovie<MusicVideo>(args.Path, args.FileSystemChildren);
+                    return FindMovie<MusicVideo>(args.Path, args.Parent, args.FileSystemChildren);
                 }
 
                 if (args.Path.IndexOf("[adultvideos]", StringComparison.OrdinalIgnoreCase) != -1 ||
                     string.Equals(collectionType, CollectionType.AdultVideos, StringComparison.OrdinalIgnoreCase))
                 {
-                    return FindMovie<AdultVideo>(args.Path, args.FileSystemChildren);
+                    return FindMovie<AdultVideo>(args.Path, args.Parent, args.FileSystemChildren);
                 }
 
                 if (string.Equals(collectionType, CollectionType.HomeVideos, StringComparison.OrdinalIgnoreCase))
                 {
-                    return FindMovie<Video>(args.Path, args.FileSystemChildren);
+                    return FindMovie<Video>(args.Path, args.Parent, args.FileSystemChildren);
                 }
                 
                 if (string.IsNullOrEmpty(collectionType) ||
                     string.Equals(collectionType, CollectionType.Movies, StringComparison.OrdinalIgnoreCase) ||
                     string.Equals(collectionType, CollectionType.BoxSets, StringComparison.OrdinalIgnoreCase))
                 {
-                    return FindMovie<Movie>(args.Path, args.FileSystemChildren);
+                    return FindMovie<Movie>(args.Path, args.Parent, args.FileSystemChildren);
                 }
 
                 return null;
@@ -199,9 +199,10 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
         /// </summary>
         /// <typeparam name="T"></typeparam>
         /// <param name="path">The path.</param>
+        /// <param name="parent">The parent.</param>
         /// <param name="fileSystemEntries">The file system entries.</param>
         /// <returns>Movie.</returns>
-        private T FindMovie<T>(string path, IEnumerable<FileSystemInfo> fileSystemEntries)
+        private T FindMovie<T>(string path, Folder parent, IEnumerable<FileSystemInfo> fileSystemEntries)
             where T : Video, new()
         {
             var movies = new List<T>();
@@ -249,7 +250,8 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
                 var childArgs = new ItemResolveArgs(_applicationPaths, _libraryManager)
                 {
                     FileInfo = child,
-                    Path = child.FullName
+                    Path = child.FullName,
+                    Parent = parent
                 };
 
                 var item = ResolveVideo<T>(childArgs);

+ 1 - 1
MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs

@@ -172,7 +172,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
 
             var channel = GetInternalChannel(id);
 
-            return await service.GetRecordingStream(channel.ChannelInfo.Id, cancellationToken).ConfigureAwait(false);
+            return await service.GetChannelStream(channel.ChannelInfo.Id, cancellationToken).ConfigureAwait(false);
         }
 
         private async Task<LiveTvChannel> GetChannel(ChannelInfo channelInfo, string serviceName, CancellationToken cancellationToken)

+ 31 - 21
MediaBrowser.Server.Implementations/Providers/ProviderManager.cs

@@ -380,33 +380,43 @@ namespace MediaBrowser.Server.Implementations.Providers
 
             var preferredLanguage = item.GetPreferredMetadataLanguage();
 
-            var tasks = providers.Select(i => Task.Run(async () =>
+            var tasks = providers.Select(i => GetImages(item, cancellationToken, i, preferredLanguage, type));
+
+            var results = await Task.WhenAll(tasks).ConfigureAwait(false);
+
+            return results.SelectMany(i => i);
+        }
+
+        /// <summary>
+        /// Gets the images.
+        /// </summary>
+        /// <param name="item">The item.</param>
+        /// <param name="cancellationToken">The cancellation token.</param>
+        /// <param name="i">The i.</param>
+        /// <param name="preferredLanguage">The preferred language.</param>
+        /// <param name="type">The type.</param>
+        /// <returns>Task{IEnumerable{RemoteImageInfo}}.</returns>
+        private async Task<IEnumerable<RemoteImageInfo>> GetImages(BaseItem item, CancellationToken cancellationToken, IImageProvider i, string preferredLanguage, ImageType? type = null)
+        {
+            try
             {
-                try
+                if (type.HasValue)
                 {
-                    if (type.HasValue)
-                    {
-                        var result = await i.GetImages(item, type.Value, cancellationToken).ConfigureAwait(false);
+                    var result = await i.GetImages(item, type.Value, cancellationToken).ConfigureAwait(false);
 
-                        return FilterImages(result, preferredLanguage);
-                    }
-                    else
-                    {
-                        var result = await i.GetAllImages(item, cancellationToken).ConfigureAwait(false);
-                        return FilterImages(result, preferredLanguage);
-                    }
+                    return FilterImages(result, preferredLanguage);
                 }
-                catch (Exception ex)
+                else
                 {
-                    _logger.ErrorException("{0} failed in GetImages for type {1}", ex, i.GetType().Name, item.GetType().Name);
-                    return new List<RemoteImageInfo>();
+                    var result = await i.GetAllImages(item, cancellationToken).ConfigureAwait(false);
+                    return FilterImages(result, preferredLanguage);
                 }
-
-            }, cancellationToken));
-
-            var results = await Task.WhenAll(tasks).ConfigureAwait(false);
-
-            return results.SelectMany(i => i);
+            }
+            catch (Exception ex)
+            {
+                _logger.ErrorException("{0} failed in GetImages for type {1}", ex, i.GetType().Name, item.GetType().Name);
+                return new List<RemoteImageInfo>();
+            }
         }
 
         private IEnumerable<RemoteImageInfo> FilterImages(IEnumerable<RemoteImageInfo> images, string preferredLanguage)

+ 1 - 1
MediaBrowser.Server.Implementations/ServerManager/ServerManager.cs

@@ -243,7 +243,7 @@ namespace MediaBrowser.Server.Implementations.ServerManager
         /// <param name="dataFunction">The function that generates the data to send, if there are any connected clients</param>
         public void SendWebSocketMessage<T>(string messageType, Func<T> dataFunction)
         {
-            Task.Run(async () => await SendWebSocketMessageAsync(messageType, dataFunction, CancellationToken.None).ConfigureAwait(false));
+            SendWebSocketMessageAsync(messageType, dataFunction, CancellationToken.None);
         }
 
         /// <summary>

+ 2 - 2
MediaBrowser.Server.Implementations/Session/SessionManager.cs

@@ -608,7 +608,7 @@ namespace MediaBrowser.Server.Implementations.Session
                     _logger.ErrorException("Error in SendServerShutdownNotification.", ex);
                 }
 
-            }));
+            }, cancellationToken));
 
             return Task.WhenAll(tasks);
         }
@@ -633,7 +633,7 @@ namespace MediaBrowser.Server.Implementations.Session
                     _logger.ErrorException("Error in SendServerRestartNotification.", ex);
                 }
 
-            }));
+            }, cancellationToken));
 
             return Task.WhenAll(tasks);
         }