diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-10-07 11:08:13 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-10-07 11:08:13 -0400 |
| commit | 50e66869872579d2cbd8337c4b114cf68dff814a (patch) | |
| tree | e1ec36eb7bb83a70d5430348f7321140325d26ef /MediaBrowser.XbmcMetadata | |
| parent | d22b7817a468be0dce6ab0891c8aaaeef2ea54ee (diff) | |
update live stream management
Diffstat (limited to 'MediaBrowser.XbmcMetadata')
| -rw-r--r-- | MediaBrowser.XbmcMetadata/Images/XbmcImageSaver.cs | 272 | ||||
| -rw-r--r-- | MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.csproj | 1 |
2 files changed, 0 insertions, 273 deletions
diff --git a/MediaBrowser.XbmcMetadata/Images/XbmcImageSaver.cs b/MediaBrowser.XbmcMetadata/Images/XbmcImageSaver.cs deleted file mode 100644 index 01eeb5f3b3..0000000000 --- a/MediaBrowser.XbmcMetadata/Images/XbmcImageSaver.cs +++ /dev/null @@ -1,272 +0,0 @@ -using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.Entities.Audio; -using MediaBrowser.Controller.Entities.TV; -using MediaBrowser.Controller.Providers; -using MediaBrowser.Model.Drawing; -using MediaBrowser.Model.Entities; -using System; -using System.Collections.Generic; -using System.Globalization; -using System.IO; -using System.Linq; - -namespace MediaBrowser.XbmcMetadata.Images -{ - public class XbmcImageSaver : IImageFileSaver - { - private readonly CultureInfo _usCulture = new CultureInfo("en-US"); - - public IEnumerable<string> GetSavePaths(IHasImages item, ImageType type, ImageFormat format, int index) - { - var season = item as Season; - - if (!SupportsItem(item, type, season)) - { - return new string[] { }; - } - - var extension = "." + format.ToString().ToLower(); - - // Backdrop paths - if (type == ImageType.Backdrop) - { - if (index == 0) - { - if (item.IsInMixedFolder) - { - return new[] { GetSavePathForItemInMixedFolder(item, type, "fanart", extension) }; - } - - if (season != null && season.IndexNumber.HasValue) - { - var seriesFolder = season.SeriesPath; - - var seasonMarker = season.IndexNumber.Value == 0 - ? "-specials" - : season.IndexNumber.Value.ToString("00", _usCulture); - - var imageFilename = "season" + seasonMarker + "-fanart" + extension; - - return new[] { Path.Combine(seriesFolder, imageFilename) }; - } - - return new[] - { - Path.Combine(item.ContainingFolderPath, "fanart" + extension) - }; - } - - if (item.IsInMixedFolder) - { - return new[] { GetSavePathForItemInMixedFolder(item, type, "fanart" + index.ToString(_usCulture), extension) }; - } - - var extraFanartFilename = GetBackdropSaveFilename(item.GetImages(ImageType.Backdrop), "fanart", "fanart", index); - - return new[] - { - Path.Combine(item.ContainingFolderPath, "extrafanart", extraFanartFilename + extension), - Path.Combine(item.ContainingFolderPath, "extrathumbs", "thumb" + index.ToString(_usCulture) + extension) - }; - } - - if (type == ImageType.Primary) - { - if (season != null && season.IndexNumber.HasValue) - { - var seriesFolder = season.SeriesPath; - - var seasonMarker = season.IndexNumber.Value == 0 - ? "-specials" - : season.IndexNumber.Value.ToString("00", _usCulture); - - var imageFilename = "season" + seasonMarker + "-poster" + extension; - - return new[] { Path.Combine(seriesFolder, imageFilename) }; - } - - if (item is Episode) - { - var seasonFolder = Path.GetDirectoryName(item.Path); - - var imageFilename = Path.GetFileNameWithoutExtension(item.Path) + "-thumb" + extension; - - return new[] { Path.Combine(seasonFolder, imageFilename) }; - } - - if (item.IsInMixedFolder || item is MusicVideo) - { - return new[] { GetSavePathForItemInMixedFolder(item, type, string.Empty, extension) }; - } - - if (item is MusicAlbum || item is MusicArtist) - { - return new[] { Path.Combine(item.ContainingFolderPath, "folder" + extension) }; - } - - return new[] { Path.Combine(item.ContainingFolderPath, "poster" + extension) }; - } - - if (type == ImageType.Banner) - { - if (season != null && season.IndexNumber.HasValue) - { - var seriesFolder = season.SeriesPath; - - var seasonMarker = season.IndexNumber.Value == 0 - ? "-specials" - : season.IndexNumber.Value.ToString("00", _usCulture); - - var imageFilename = "season" + seasonMarker + "-banner" + extension; - - return new[] { Path.Combine(seriesFolder, imageFilename) }; - } - } - - if (type == ImageType.Thumb) - { - if (season != null && season.IndexNumber.HasValue) - { - var seriesFolder = season.SeriesPath; - - var seasonMarker = season.IndexNumber.Value == 0 - ? "-specials" - : season.IndexNumber.Value.ToString("00", _usCulture); - - var imageFilename = "season" + seasonMarker + "-landscape" + extension; - - return new[] { Path.Combine(seriesFolder, imageFilename) }; - } - - if (item.IsInMixedFolder) - { - return new[] { GetSavePathForItemInMixedFolder(item, type, "landscape", extension) }; - } - - return new[] { Path.Combine(item.ContainingFolderPath, "landscape" + extension) }; - } - - return GetStandardSavePaths(item, type, index, extension); - } - - private IEnumerable<string> GetStandardSavePaths(IHasImages item, ImageType type, int imageIndex, string extension) - { - string filename; - - switch (type) - { - case ImageType.Art: - filename = "clearart"; - break; - case ImageType.BoxRear: - filename = "back"; - break; - case ImageType.Disc: - filename = item is MusicAlbum ? "cdart" : "disc"; - break; - case ImageType.Screenshot: - filename = GetBackdropSaveFilename(item.GetImages(type), "screenshot", "screenshot", imageIndex); - break; - default: - filename = type.ToString().ToLower(); - break; - } - - string path = null; - - if (item.IsInMixedFolder) - { - path = GetSavePathForItemInMixedFolder(item, type, filename, extension); - } - - if (string.IsNullOrEmpty(path)) - { - path = Path.Combine(item.ContainingFolderPath, filename + extension); - } - - if (string.IsNullOrEmpty(path)) - { - return new string[] { }; - } - - return new[] { path }; - } - - - private string GetSavePathForItemInMixedFolder(IHasImages item, ImageType type, string imageFilename, string extension) - { - if (type == ImageType.Primary) - { - imageFilename = "poster"; - } - var folder = Path.GetDirectoryName(item.Path); - - return Path.Combine(folder, Path.GetFileNameWithoutExtension(item.Path) + "-" + imageFilename + extension); - } - - private bool SupportsItem(IHasImages item, ImageType type, Season season) - { - if (item.IsOwnedItem || item is Audio || item is User) - { - return false; - } - - if (type != ImageType.Primary && item is Episode) - { - return false; - } - - if (!item.SupportsLocalMetadata) - { - return false; - } - - var locationType = item.LocationType; - if (locationType == LocationType.Remote || locationType == LocationType.Virtual) - { - var allowSaving = false; - - // If season is virtual under a physical series, save locally if using compatible convention - if (season != null) - { - var series = season.Series; - - if (series != null && series.SupportsLocalMetadata) - { - allowSaving = true; - } - } - - if (!allowSaving) - { - return false; - } - } - - return true; - } - - private string GetBackdropSaveFilename(IEnumerable<ItemImageInfo> images, string zeroIndexFilename, string numberedIndexPrefix, int? index) - { - if (index.HasValue && index.Value == 0) - { - return zeroIndexFilename; - } - - var filenames = images.Select(i => Path.GetFileNameWithoutExtension(i.Path)).ToList(); - - var current = 1; - while (filenames.Contains(numberedIndexPrefix + current.ToString(_usCulture), StringComparer.OrdinalIgnoreCase)) - { - current++; - } - - return numberedIndexPrefix + current.ToString(_usCulture); - } - - public string Name - { - get { return "Emby/Plex/Xbmc Images"; } - } - } -} diff --git a/MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.csproj b/MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.csproj index d95d8f12d0..f3147a0653 100644 --- a/MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.csproj +++ b/MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.csproj @@ -52,7 +52,6 @@ </Compile> <Compile Include="Configuration\NfoOptions.cs" /> <Compile Include="EntryPoint.cs" /> - <Compile Include="Images\XbmcImageSaver.cs" /> <Compile Include="Parsers\BaseNfoParser.cs" /> <Compile Include="Parsers\EpisodeNfoParser.cs" /> <Compile Include="Parsers\MovieNfoParser.cs" /> |
