aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers/BaseXmlProvider.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-06-29 23:04:50 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-06-29 23:04:50 -0400
commit3d47b495a96fce84c03d9f3177dc6dbc8a4afa3c (patch)
tree9d03bc06b30fec5695bb7a89094387ecbdd8e3e9 /MediaBrowser.Providers/BaseXmlProvider.cs
parent1a5a75854bd3ec4cdd771c9afdaefe0acb62c03c (diff)
fixes #795 - Support reading Xbmc nfo's
Diffstat (limited to 'MediaBrowser.Providers/BaseXmlProvider.cs')
-rw-r--r--MediaBrowser.Providers/BaseXmlProvider.cs89
1 files changed, 0 insertions, 89 deletions
diff --git a/MediaBrowser.Providers/BaseXmlProvider.cs b/MediaBrowser.Providers/BaseXmlProvider.cs
deleted file mode 100644
index a5a3ba146a..0000000000
--- a/MediaBrowser.Providers/BaseXmlProvider.cs
+++ /dev/null
@@ -1,89 +0,0 @@
-using MediaBrowser.Common.IO;
-using MediaBrowser.Controller.Entities;
-using MediaBrowser.Controller.Providers;
-using MediaBrowser.Model.Logging;
-using System;
-using System.IO;
-using System.Threading;
-using System.Threading.Tasks;
-
-namespace MediaBrowser.Providers
-{
- public abstract class BaseXmlProvider<T> : ILocalMetadataProvider<T>, IHasChangeMonitor
- where T : IHasMetadata, new()
- {
- protected IFileSystem FileSystem;
-
- public async Task<LocalMetadataResult<T>> GetMetadata(ItemInfo info, CancellationToken cancellationToken)
- {
- var result = new LocalMetadataResult<T>();
-
- var file = GetXmlFile(info, new DirectoryService(new NullLogger()));
-
- if (file == null)
- {
- return result;
- }
-
- var path = file.FullName;
-
- await XmlProviderUtils.XmlParsingResourcePool.WaitAsync(cancellationToken).ConfigureAwait(false);
-
- try
- {
- result.Item = new T();
-
- Fetch(result, path, cancellationToken);
- result.HasMetadata = true;
- }
- catch (FileNotFoundException)
- {
- result.HasMetadata = false;
- }
- catch (DirectoryNotFoundException)
- {
- result.HasMetadata = false;
- }
- finally
- {
- XmlProviderUtils.XmlParsingResourcePool.Release();
- }
-
- return result;
- }
-
- protected abstract void Fetch(LocalMetadataResult<T> result, string path, CancellationToken cancellationToken);
-
- protected BaseXmlProvider(IFileSystem fileSystem)
- {
- FileSystem = fileSystem;
- }
-
- protected abstract FileSystemInfo GetXmlFile(ItemInfo info, IDirectoryService directoryService);
-
- public bool HasChanged(IHasMetadata item, IDirectoryService directoryService, DateTime date)
- {
- var file = GetXmlFile(new ItemInfo { IsInMixedFolder = item.IsInMixedFolder, Path = item.Path }, directoryService);
-
- if (file == null)
- {
- return false;
- }
-
- return file.Exists && FileSystem.GetLastWriteTimeUtc(file) > date;
- }
-
- public string Name
- {
- get
- {
- return "Media Browser Xml";
- }
- }
- }
-
- static class XmlProviderUtils
- {
- internal static readonly SemaphoreSlim XmlParsingResourcePool = new SemaphoreSlim(4, 4);
- }
-}