Преглед на файлове

Merge pull request #1635 from MediaBrowser/dev

Dev
Luke преди 9 години
родител
ревизия
22e0df5349

+ 10 - 5
MediaBrowser.Api/ItemLookupService.cs

@@ -202,14 +202,19 @@ namespace MediaBrowser.Api
             //    }
             //}
             Logger.Info("Setting provider id's to item {0}-{1}: {2}", item.Id, item.Name, _json.SerializeToString(request.ProviderIds));
+
+            // Since the refresh process won't erase provider Ids, we need to set this explicitly now.
             item.ProviderIds = request.ProviderIds;
+            //item.ProductionYear = request.ProductionYear;
+            //item.Name = request.Name;
 
-			var task = _providerManager.RefreshFullItem(item, new MetadataRefreshOptions(_fileSystem)
+            var task = _providerManager.RefreshFullItem(item, new MetadataRefreshOptions(_fileSystem)
             {
                 MetadataRefreshMode = MetadataRefreshMode.FullRefresh,
                 ImageRefreshMode = ImageRefreshMode.FullRefresh,
                 ReplaceAllMetadata = true,
-                ReplaceAllImages = request.ReplaceAllImages
+                ReplaceAllImages = request.ReplaceAllImages,
+                SearchResult = request
 
             }, CancellationToken.None);
             Task.WaitAll(task);
@@ -234,7 +239,7 @@ namespace MediaBrowser.Api
                     contentPath = await reader.ReadToEndAsync().ConfigureAwait(false);
                 }
 
-				if (_fileSystem.FileExists(contentPath))
+                if (_fileSystem.FileExists(contentPath))
                 {
                     return ToStaticFileResult(contentPath);
                 }
@@ -275,7 +280,7 @@ namespace MediaBrowser.Api
 
             var fullCachePath = GetFullCachePath(urlHash + "." + ext);
 
-			_fileSystem.CreateDirectory(Path.GetDirectoryName(fullCachePath));
+            _fileSystem.CreateDirectory(Path.GetDirectoryName(fullCachePath));
             using (var stream = result.Content)
             {
                 using (var filestream = _fileSystem.GetFileStream(fullCachePath, FileMode.Create, FileAccess.Write, FileShare.Read, true))
@@ -284,7 +289,7 @@ namespace MediaBrowser.Api
                 }
             }
 
-			_fileSystem.CreateDirectory(Path.GetDirectoryName(pointerCachePath));
+            _fileSystem.CreateDirectory(Path.GetDirectoryName(pointerCachePath));
             using (var writer = new StreamWriter(pointerCachePath))
             {
                 await writer.WriteAsync(fullCachePath).ConfigureAwait(false);

+ 1 - 1
MediaBrowser.Controller/Channels/ChannelMediaInfo.cs

@@ -65,7 +65,7 @@ namespace MediaBrowser.Controller.Channels
                 Name = id,
                 Id = id,
                 ReadAtNativeFramerate = ReadAtNativeFramerate,
-                SupportsDirectStream = Protocol == MediaProtocol.File || Protocol == MediaProtocol.Http,
+                SupportsDirectStream = Protocol == MediaProtocol.File,
                 SupportsDirectPlay = SupportsDirectPlay
             };
 

+ 3 - 0
MediaBrowser.Controller/Providers/MetadataRefreshOptions.cs

@@ -1,5 +1,6 @@
 using System.Linq;
 using CommonIO;
+using MediaBrowser.Model.Providers;
 
 namespace MediaBrowser.Controller.Providers
 {
@@ -13,6 +14,7 @@ namespace MediaBrowser.Controller.Providers
         public bool IsPostRecursiveRefresh { get; set; }
 
         public MetadataRefreshMode MetadataRefreshMode { get; set; }
+        public RemoteSearchResult SearchResult { get; set; }
 
         public bool ForceSave { get; set; }
 
@@ -37,6 +39,7 @@ namespace MediaBrowser.Controller.Providers
             ImageRefreshMode = copy.ImageRefreshMode;
             ReplaceAllImages = copy.ReplaceAllImages;
             ReplaceImages = copy.ReplaceImages.ToList();
+            SearchResult = copy.SearchResult;
         }
     }
 }

+ 4 - 1
MediaBrowser.Dlna/Didl/DidlBuilder.cs

@@ -979,7 +979,10 @@ namespace MediaBrowser.Dlna.Didl
 
             if (item != null)
             {
-                return GetImageInfo(item, ImageType.Primary);
+                if (item.HasImage(ImageType.Primary))
+                {
+                    return GetImageInfo(item, ImageType.Primary);
+                }
             }
 
             return null;

+ 13 - 0
MediaBrowser.Providers/Manager/MetadataService.cs

@@ -13,6 +13,7 @@ using System.Threading.Tasks;
 using CommonIO;
 using MediaBrowser.Controller.Entities.Audio;
 using MediaBrowser.Controller.Entities.Movies;
+using MediaBrowser.Model.Providers;
 
 namespace MediaBrowser.Providers.Manager
 {
@@ -136,6 +137,11 @@ namespace MediaBrowser.Providers.Manager
                 {
                     var id = itemOfType.GetLookupInfo();
 
+                    if (refreshOptions.SearchResult != null)
+                    {
+                        ApplySearchResult(id, refreshOptions.SearchResult);
+                    }
+
                     //await FindIdentities(id, cancellationToken).ConfigureAwait(false);
                     id.IsAutomated = refreshOptions.IsAutomated;
 
@@ -207,6 +213,13 @@ namespace MediaBrowser.Providers.Manager
             return updateType;
         }
 
+        private void ApplySearchResult(ItemLookupInfo lookupInfo, RemoteSearchResult result)
+        {
+            lookupInfo.ProviderIds = result.ProviderIds;
+            lookupInfo.Name = result.Name;
+            lookupInfo.Year = result.ProductionYear;
+        }
+
         private async Task FindIdentities(TIdType id, CancellationToken cancellationToken)
         {
             try

+ 2 - 4
MediaBrowser.Providers/Omdb/OmdbItemProvider.cs

@@ -60,9 +60,8 @@ namespace MediaBrowser.Providers.Omdb
             return GetSearchResultsInternal(searchInfo, type, true, cancellationToken);
         }
 
-        private async Task<IEnumerable<RemoteSearchResult>> GetSearchResultsInternal(ItemLookupInfo searchInfo, string type, bool enableMultipleResults, CancellationToken cancellationToken)
+        private async Task<IEnumerable<RemoteSearchResult>> GetSearchResultsInternal(ItemLookupInfo searchInfo, string type, bool isSearch, CancellationToken cancellationToken)
         {
-            bool isSearch = false;
             var episodeSearchInfo = searchInfo as EpisodeInfo;
 
             var list = new List<RemoteSearchResult>();
@@ -95,10 +94,9 @@ namespace MediaBrowser.Providers.Omdb
                 }
 
                 // &s means search and returns a list of results as opposed to t
-                if (enableMultipleResults)
+                if (isSearch)
                 {
                     url += "&s=" + WebUtility.UrlEncode(name);
-                    isSearch = true;
                 }
                 else
                 {

+ 1 - 1
MediaBrowser.Providers/People/MovieDbPersonProvider.cs

@@ -97,7 +97,7 @@ namespace MediaBrowser.Providers.People
 
                     var requestCount = _requestCount;
 
-                    if (requestCount >= 20)
+                    if (requestCount >= 30)
                     {
                         //_logger.Debug("Throttling Tmdb people");
 

+ 13 - 2
MediaBrowser.Server.Implementations/Connect/ConnectManager.cs

@@ -62,6 +62,17 @@ namespace MediaBrowser.Server.Implementations.Connect
             {
                 var address = _config.Configuration.WanDdns;
 
+                if (!string.IsNullOrWhiteSpace(address))
+                {
+                    try
+                    {
+                        address = new Uri(address).Host;
+                    }
+                    catch
+                    {
+                    }
+                }
+
                 if (string.IsNullOrWhiteSpace(address) && DiscoveredWanIpAddress != null)
                 {
                     if (DiscoveredWanIpAddress.AddressFamily == AddressFamily.InterNetworkV6)
@@ -237,8 +248,8 @@ namespace MediaBrowser.Server.Implementations.Connect
 
             var postData = new Dictionary<string, string>
             {
-                {"name", _appHost.FriendlyName}, 
-                {"url", wanApiAddress}, 
+                {"name", _appHost.FriendlyName},
+                {"url", wanApiAddress},
                 {"systemId", _appHost.SystemId}
             };
 

+ 13 - 10
MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs

@@ -344,6 +344,19 @@ namespace MediaBrowser.Server.Implementations.HttpServer
                 LoggerUtils.LogRequest(_logger, urlToLog, httpReq.HttpMethod, httpReq.UserAgent);
             }
 
+            if (string.Equals(localPath, "/emby/", StringComparison.OrdinalIgnoreCase) ||
+                string.Equals(localPath, "/mediabrowser/", StringComparison.OrdinalIgnoreCase))
+            {
+                httpRes.RedirectToUrl(DefaultRedirectPath);
+                return Task.FromResult(true);
+            }
+            if (string.Equals(localPath, "/emby", StringComparison.OrdinalIgnoreCase) ||
+                string.Equals(localPath, "/mediabrowser", StringComparison.OrdinalIgnoreCase))
+            {
+                httpRes.RedirectToUrl("emby/" + DefaultRedirectPath);
+                return Task.FromResult(true);
+            }
+
             if (string.Equals(localPath, "/mediabrowser/", StringComparison.OrdinalIgnoreCase) ||
                 string.Equals(localPath, "/mediabrowser", StringComparison.OrdinalIgnoreCase) ||
                 localPath.IndexOf("mediabrowser/web", StringComparison.OrdinalIgnoreCase) != -1 ||
@@ -363,16 +376,6 @@ namespace MediaBrowser.Server.Implementations.HttpServer
                 }
             }
 
-            if (string.Equals(localPath, "/emby/", StringComparison.OrdinalIgnoreCase))
-            {
-                httpRes.RedirectToUrl(DefaultRedirectPath);
-                return Task.FromResult(true);
-            }
-            if (string.Equals(localPath, "/emby", StringComparison.OrdinalIgnoreCase))
-            {
-                httpRes.RedirectToUrl("emby/" + DefaultRedirectPath);
-                return Task.FromResult(true);
-            }
             if (string.Equals(localPath, "/web", StringComparison.OrdinalIgnoreCase))
             {
                 httpRes.RedirectToUrl(DefaultRedirectPath);

+ 1 - 0
MediaBrowser.Server.Implementations/Library/UserManager.cs

@@ -352,6 +352,7 @@ namespace MediaBrowser.Server.Implementations.Library
                 users.Add(user);
 
                 user.Policy.IsAdministrator = true;
+                user.Policy.EnableContentDeletion = true;
                 user.Policy.EnableRemoteControlOfOtherUsers = true;
                 await UpdateUserPolicy(user, user.Policy, false).ConfigureAwait(false);
             }

+ 1 - 1
MediaBrowser.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs

@@ -75,7 +75,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.HdHomerun
                     lineup = lineup.Where(i => i.Favorite).ToList();
                 }
 
-                return lineup;
+                return lineup.Where(i => !i.DRM).ToList();
             }
         }
 

+ 1 - 1
MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs

@@ -2283,7 +2283,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
 
         private static Dictionary<string, string[]> GetTypeMapDictionary()
         {
-            var dict = new Dictionary<string, string[]>();
+            var dict = new Dictionary<string, string[]>(StringComparer.OrdinalIgnoreCase);
 
             foreach (var t in KnownTypes)
             {