diff options
Diffstat (limited to 'MediaBrowser.Providers/Games/GameXmlProvider.cs')
| -rw-r--r-- | MediaBrowser.Providers/Games/GameXmlProvider.cs | 45 |
1 files changed, 8 insertions, 37 deletions
diff --git a/MediaBrowser.Providers/Games/GameXmlProvider.cs b/MediaBrowser.Providers/Games/GameXmlProvider.cs index e2a67de8d..644fe3e42 100644 --- a/MediaBrowser.Providers/Games/GameXmlProvider.cs +++ b/MediaBrowser.Providers/Games/GameXmlProvider.cs @@ -4,11 +4,10 @@ using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Logging; using System.IO; using System.Threading; -using System.Threading.Tasks; namespace MediaBrowser.Providers.Games { - public class GameXmlProvider : BaseXmlProvider, ILocalMetadataProvider<Game> + public class GameXmlProvider : BaseXmlProvider<Game> { private readonly ILogger _logger; @@ -18,57 +17,29 @@ namespace MediaBrowser.Providers.Games _logger = logger; } - public async Task<MetadataResult<Game>> GetMetadata(string path, CancellationToken cancellationToken) + protected override void Fetch(Game item, string path, CancellationToken cancellationToken) { - path = GetXmlFile(path).FullName; - - var result = new MetadataResult<Game>(); - - await XmlParsingResourcePool.WaitAsync(cancellationToken).ConfigureAwait(false); - - try - { - var item = new Game(); - - new GameXmlParser(_logger).Fetch(item, path, cancellationToken); - result.HasMetadata = true; - result.Item = item; - } - catch (FileNotFoundException) - { - result.HasMetadata = false; - } - finally - { - XmlParsingResourcePool.Release(); - } - - return result; - } - - public string Name - { - get { return "Media Browser Xml"; } + new GameXmlParser(_logger).Fetch(item, path, cancellationToken); } - protected override FileInfo GetXmlFile(string path) + protected override FileInfo GetXmlFile(ItemInfo info) { - var fileInfo = FileSystem.GetFileSystemInfo(path); + var fileInfo = FileSystem.GetFileSystemInfo(info.Path); var directoryInfo = fileInfo as DirectoryInfo; if (directoryInfo == null) { - directoryInfo = new DirectoryInfo(Path.GetDirectoryName(path)); + directoryInfo = new DirectoryInfo(Path.GetDirectoryName(info.Path)); } var directoryPath = directoryInfo.FullName; - var specificFile = Path.Combine(directoryPath, Path.GetFileNameWithoutExtension(path) + ".xml"); + var specificFile = Path.Combine(directoryPath, Path.GetFileNameWithoutExtension(info.Path) + ".xml"); var file = new FileInfo(specificFile); - return file.Exists ? file : new FileInfo(Path.Combine(directoryPath, "game.xml")); + return info.IsInMixedFolder || file.Exists ? file : new FileInfo(Path.Combine(directoryPath, "game.xml")); } } } |
