aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs')
-rw-r--r--MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs104
1 files changed, 85 insertions, 19 deletions
diff --git a/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs b/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs
index 56a2c271f..2901f51d5 100644
--- a/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs
+++ b/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs
@@ -9,6 +9,7 @@ using System.Globalization;
using System.Linq;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;
+using MediaBrowser.Controller.Entities.Movies;
namespace MediaBrowser.LocalMetadata.Images
{
@@ -131,35 +132,91 @@ namespace MediaBrowser.LocalMetadata.Images
PopulatePrimaryImages(item, images, files, imagePrefix, isInMixedFolder);
- AddImage(files, images, "logo", imagePrefix, isInMixedFolder, ImageType.Logo);
- AddImage(files, images, "clearart", imagePrefix, isInMixedFolder, ImageType.Art);
+ var added = false;
+ var isEpisode = item is Episode;
+ var isSong = item.GetType() == typeof(Audio);
+ var isGame = item is Game;
+ var isPerson = item is Person;
+
+ // Logo
+ if (!isEpisode && !isSong && !isPerson)
+ {
+ added = AddImage(files, images, "logo", imagePrefix, isInMixedFolder, ImageType.Logo);
+ if (!added)
+ {
+ added = AddImage(files, images, "clearlogo", imagePrefix, isInMixedFolder, ImageType.Logo);
+ }
+ }
+
+ // Art
+ if (!isEpisode && !isSong && !isPerson)
+ {
+ AddImage(files, images, "clearart", imagePrefix, isInMixedFolder, ImageType.Art);
+ }
// For music albums, prefer cdart before disc
if (item is MusicAlbum)
{
- AddImage(files, images, "cdart", imagePrefix, isInMixedFolder, ImageType.Disc);
- AddImage(files, images, "disc", imagePrefix, isInMixedFolder, ImageType.Disc);
+ added = AddImage(files, images, "cdart", imagePrefix, isInMixedFolder, ImageType.Disc);
+
+ if (!added)
+ {
+ added = AddImage(files, images, "disc", imagePrefix, isInMixedFolder, ImageType.Disc);
+ }
}
- else
+ else if (isGame || item is Video || item is BoxSet)
{
- AddImage(files, images, "disc", imagePrefix, isInMixedFolder, ImageType.Disc);
- AddImage(files, images, "cdart", imagePrefix, isInMixedFolder, ImageType.Disc);
+ added = AddImage(files, images, "disc", imagePrefix, isInMixedFolder, ImageType.Disc);
+
+ if (!added)
+ {
+ added = AddImage(files, images, "cdart", imagePrefix, isInMixedFolder, ImageType.Disc);
+ }
+
+ if (!added)
+ {
+ added = AddImage(files, images, "discart", imagePrefix, isInMixedFolder, ImageType.Disc);
+ }
}
- AddImage(files, images, "box", imagePrefix, isInMixedFolder, ImageType.Box);
- AddImage(files, images, "back", imagePrefix, isInMixedFolder, ImageType.BoxRear);
- AddImage(files, images, "boxrear", imagePrefix, isInMixedFolder, ImageType.BoxRear);
- AddImage(files, images, "menu", imagePrefix, isInMixedFolder, ImageType.Menu);
+ if (isGame)
+ {
+ AddImage(files, images, "box", imagePrefix, isInMixedFolder, ImageType.Box);
+ AddImage(files, images, "menu", imagePrefix, isInMixedFolder, ImageType.Menu);
+
+ added = AddImage(files, images, "back", imagePrefix, isInMixedFolder, ImageType.BoxRear);
+
+ if (!added)
+ {
+ added = AddImage(files, images, "boxrear", imagePrefix, isInMixedFolder, ImageType.BoxRear);
+ }
+ }
// Banner
- AddImage(files, images, "banner", imagePrefix, isInMixedFolder, ImageType.Banner);
+ if (!isEpisode && !isSong && !isPerson)
+ {
+ AddImage(files, images, "banner", imagePrefix, isInMixedFolder, ImageType.Banner);
+ }
// Thumb
- AddImage(files, images, "landscape", imagePrefix, isInMixedFolder, ImageType.Thumb);
- AddImage(files, images, "thumb", imagePrefix, isInMixedFolder, ImageType.Thumb);
+ if (!isEpisode && !isSong && !isPerson)
+ {
+ added = AddImage(files, images, "landscape", imagePrefix, isInMixedFolder, ImageType.Thumb);
+ if (!added)
+ {
+ added = AddImage(files, images, "thumb", imagePrefix, isInMixedFolder, ImageType.Thumb);
+ }
+ }
+
+ if (!isEpisode && !isSong && !isPerson)
+ {
+ PopulateBackdrops(item, images, files, imagePrefix, isInMixedFolder, directoryService);
+ }
- PopulateBackdrops(item, images, files, imagePrefix, isInMixedFolder, directoryService);
- PopulateScreenshots(images, files, imagePrefix, isInMixedFolder);
+ if (item is IHasScreenshots)
+ {
+ PopulateScreenshots(images, files, imagePrefix, isInMixedFolder);
+ }
}
private static readonly string[] CommonImageFileNames = new[]
@@ -232,19 +289,28 @@ namespace MediaBrowser.LocalMetadata.Images
var fileNameWithoutExtension = item.FileNameWithoutExtension;
if (!string.IsNullOrEmpty(fileNameWithoutExtension))
{
- AddImage(files, images, fileNameWithoutExtension, ImageType.Primary);
+ if (AddImage(files, images, fileNameWithoutExtension, ImageType.Primary))
+ {
+ return;
+ }
}
foreach (var name in imageFileNames)
{
- AddImage(files, images, imagePrefix + name, ImageType.Primary);
+ if (AddImage(files, images, imagePrefix + name, ImageType.Primary))
+ {
+ return;
+ }
}
if (!isInMixedFolder)
{
foreach (var name in imageFileNames)
{
- AddImage(files, images, name, ImageType.Primary);
+ if (AddImage(files, images, name, ImageType.Primary))
+ {
+ return;
+ }
}
}
}