aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers/ImageFromMediaLocationProvider.cs
diff options
context:
space:
mode:
authorEric Reed <ebr@mediabrowser3.com>2013-11-07 12:27:21 -0500
committerEric Reed <ebr@mediabrowser3.com>2013-11-07 12:27:21 -0500
commitbda3a301e70b8cdca8af06e6395701ec98a89e09 (patch)
treec32ec5d48a48a64bb9e06dd827da9fbc04ce6406 /MediaBrowser.Providers/ImageFromMediaLocationProvider.cs
parent63554bde5be929588e9073415ea811170264508b (diff)
parent01f1ed05b9a401939ccbd586e07951c144232608 (diff)
Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser
Diffstat (limited to 'MediaBrowser.Providers/ImageFromMediaLocationProvider.cs')
-rw-r--r--MediaBrowser.Providers/ImageFromMediaLocationProvider.cs40
1 files changed, 38 insertions, 2 deletions
diff --git a/MediaBrowser.Providers/ImageFromMediaLocationProvider.cs b/MediaBrowser.Providers/ImageFromMediaLocationProvider.cs
index 9943c7ab8..aa0dcc9d4 100644
--- a/MediaBrowser.Providers/ImageFromMediaLocationProvider.cs
+++ b/MediaBrowser.Providers/ImageFromMediaLocationProvider.cs
@@ -1,4 +1,5 @@
-using MediaBrowser.Controller.Configuration;
+using MediaBrowser.Common.IO;
+using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Entities.TV;
@@ -21,9 +22,12 @@ namespace MediaBrowser.Providers
/// </summary>
public class ImageFromMediaLocationProvider : BaseMetadataProvider
{
- public ImageFromMediaLocationProvider(ILogManager logManager, IServerConfigurationManager configurationManager)
+ protected readonly IFileSystem FileSystem;
+
+ public ImageFromMediaLocationProvider(ILogManager logManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem)
: base(logManager, configurationManager)
{
+ FileSystem = fileSystem;
}
public override ItemUpdateType ItemUpdateType
@@ -543,5 +547,37 @@ namespace MediaBrowser.Providers
item.ScreenshotImagePaths = screenshotFiles;
}
}
+
+ protected FileSystemInfo GetImageFromLocation(string path, string filenameWithoutExtension)
+ {
+ try
+ {
+ var files = new DirectoryInfo(path)
+ .EnumerateFiles()
+ .Where(i =>
+ {
+ var fileName = Path.GetFileNameWithoutExtension(i.FullName);
+
+ if (!string.Equals(fileName, filenameWithoutExtension, StringComparison.OrdinalIgnoreCase))
+ {
+ return false;
+ }
+
+ var ext = i.Extension;
+
+ return !string.IsNullOrEmpty(ext) &&
+ BaseItem.SupportedImageExtensions.Contains(ext, StringComparer.OrdinalIgnoreCase);
+ })
+ .ToList();
+
+ return BaseItem.SupportedImageExtensions
+ .Select(ext => files.FirstOrDefault(i => string.Equals(ext, i.Extension, StringComparison.OrdinalIgnoreCase)))
+ .FirstOrDefault(file => file != null);
+ }
+ catch (DirectoryNotFoundException)
+ {
+ return null;
+ }
+ }
}
}