aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-03-03 00:11:03 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-03-03 00:11:03 -0500
commit6efb78b8b2c023369d18097ba8d17c396faabce1 (patch)
tree487a5caef53728e40f8046bfdca9503cd32b4152 /MediaBrowser.Providers
parent2db452f68f64fe4182e8ef3e83cc236c61fa8d82 (diff)
fixes #697 - Support xbmc offline discs
Diffstat (limited to 'MediaBrowser.Providers')
-rw-r--r--MediaBrowser.Providers/Games/GameMetadataService.cs13
-rw-r--r--MediaBrowser.Providers/Manager/MetadataService.cs14
-rw-r--r--MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs7
-rw-r--r--MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs2
4 files changed, 27 insertions, 9 deletions
diff --git a/MediaBrowser.Providers/Games/GameMetadataService.cs b/MediaBrowser.Providers/Games/GameMetadataService.cs
index 1586414ea2..1e184bb063 100644
--- a/MediaBrowser.Providers/Games/GameMetadataService.cs
+++ b/MediaBrowser.Providers/Games/GameMetadataService.cs
@@ -1,25 +1,19 @@
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
-using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging;
using MediaBrowser.Providers.Manager;
using System.Collections.Generic;
-using System.Threading;
-using System.Threading.Tasks;
namespace MediaBrowser.Providers.Games
{
public class GameMetadataService : MetadataService<Game, GameInfo>
{
- private readonly ILibraryManager _libraryManager;
-
- public GameMetadataService(IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IProviderRepository providerRepo, IFileSystem fileSystem, ILibraryManager libraryManager)
+ public GameMetadataService(IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IProviderRepository providerRepo, IFileSystem fileSystem)
: base(serverConfigurationManager, logger, providerManager, providerRepo, fileSystem)
{
- _libraryManager = libraryManager;
}
/// <summary>
@@ -38,6 +32,11 @@ namespace MediaBrowser.Providers.Games
{
target.GameSystem = source.GameSystem;
}
+
+ if (replaceData || !target.PlayersSupported.HasValue)
+ {
+ target.PlayersSupported = source.PlayersSupported;
+ }
}
}
}
diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs
index 24f4b3b2f1..2ecc6c9dd8 100644
--- a/MediaBrowser.Providers/Manager/MetadataService.cs
+++ b/MediaBrowser.Providers/Manager/MetadataService.cs
@@ -386,6 +386,9 @@ namespace MediaBrowser.Providers.Manager
{
TIdType id = null;
+ var unidentifiedCount = 0;
+ var identifiedCount = 0;
+
foreach (var provider in providers)
{
var providerName = provider.GetType().Name;
@@ -410,9 +413,11 @@ namespace MediaBrowser.Providers.Manager
refreshResult.UpdateType = refreshResult.UpdateType | ItemUpdateType.MetadataDownload;
+ identifiedCount++;
}
else
{
+ unidentifiedCount++;
Logger.Debug("{0} returned no metadata for {1}", providerName, item.Path ?? item.Name);
}
}
@@ -422,11 +427,20 @@ namespace MediaBrowser.Providers.Manager
}
catch (Exception ex)
{
+ unidentifiedCount++;
refreshResult.Status = ProviderRefreshStatus.CompletedWithErrors;
refreshResult.ErrorMessage = ex.Message;
Logger.ErrorException("Error in {0}", ex, provider.Name);
}
}
+
+ var isUnidentified = unidentifiedCount > 0 && identifiedCount == 0;
+
+ if (item.IsUnidentified != isUnidentified)
+ {
+ item.IsUnidentified = isUnidentified;
+ refreshResult.UpdateType = refreshResult.UpdateType | ItemUpdateType.MetadataImport;
+ }
}
private void MergeNewData(TItemType source, TIdType lookupInfo)
diff --git a/MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs b/MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs
index bb417536af..55d09b68b7 100644
--- a/MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs
+++ b/MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs
@@ -126,6 +126,11 @@ namespace MediaBrowser.Providers.MediaInfo
return _cachedTask;
}
+ if (item.IsPlaceHolder)
+ {
+ return _cachedTask;
+ }
+
var prober = new FFProbeVideoInfo(_logger, _isoManager, _mediaEncoder, _itemRepo, _blurayExaminer, _localization, _appPaths, _json, _encodingManager);
return prober.ProbeVideo(item, directoryService, cancellationToken);
@@ -155,7 +160,7 @@ namespace MediaBrowser.Providers.MediaInfo
{
var video = item as Video;
- if (video != null)
+ if (video != null && !video.IsPlaceHolder)
{
var prober = new FFProbeVideoInfo(_logger, _isoManager, _mediaEncoder, _itemRepo, _blurayExaminer, _localization, _appPaths, _json, _encodingManager);
diff --git a/MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs b/MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs
index 68216c6e17..3547584979 100644
--- a/MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs
+++ b/MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs
@@ -56,7 +56,7 @@ namespace MediaBrowser.Providers.MediaInfo
var video = (Video)item;
// No support for this
- if (video.VideoType == VideoType.HdDvd)
+ if (video.VideoType == VideoType.HdDvd || video.IsPlaceHolder)
{
return Task.FromResult(new DynamicImageResponse { HasImage = false });
}