コード例 #1
0
        /// <summary>
        /// Tries to populate any empty fanart types in the specified <see cref="FanArtPathCollection"/> with image paths
        /// contained in <paramref name="potentialFanArtFiles"/> that start with 'season-all', 'season{<paramref name="seasonNumber"/>}'
        /// or, if <paramref name="seasonNumber"/> is 0, 'season-specials'.
        /// </summary>
        /// <param name="paths">The <see cref="FanArtPathCollection"/> to add matching paths to.</param>
        /// <param name="potentialFanArtFiles">Collection of potential fanart paths.</param>
        /// <param name="seasonNumber">The season number.</param>
        protected void GetAdditionalSeasonFolderFanArt(FanArtPathCollection paths, ICollection <ResourcePath> potentialFanArtFiles, int?seasonNumber)
        {
            if (!seasonNumber.HasValue)
            {
                return;
            }
            if (potentialFanArtFiles == null || potentialFanArtFiles.Count == 0)
            {
                return;
            }

            string[] prefixes = LocalFanartHelper.GetAdditionalSeasonPrefixes(seasonNumber);

            if (paths.Count(FanArtTypes.Thumbnail) == 0)
            {
                paths.AddRange(FanArtTypes.Thumbnail, LocalFanartHelper.FilterPotentialFanArtFilesByName(potentialFanArtFiles,
                                                                                                         LocalFanartHelper.THUMB_FILENAMES.SelectMany(f => prefixes.Select(p => p + "-" + f))));
            }

            if (paths.Count(FanArtTypes.Poster) == 0)
            {
                paths.AddRange(FanArtTypes.Poster, LocalFanartHelper.FilterPotentialFanArtFilesByName(potentialFanArtFiles,
                                                                                                      LocalFanartHelper.POSTER_FILENAMES.SelectMany(f => prefixes.Select(p => p + "-" + f))));
            }

            if (paths.Count(FanArtTypes.Logo) == 0)
            {
                paths.AddRange(FanArtTypes.Logo, LocalFanartHelper.FilterPotentialFanArtFilesByName(potentialFanArtFiles,
                                                                                                    LocalFanartHelper.LOGO_FILENAMES.SelectMany(f => prefixes.Select(p => p + "-" + f))));
            }

            if (paths.Count(FanArtTypes.ClearArt) == 0)
            {
                paths.AddRange(FanArtTypes.ClearArt, LocalFanartHelper.FilterPotentialFanArtFilesByName(potentialFanArtFiles,
                                                                                                        LocalFanartHelper.CLEARART_FILENAMES.SelectMany(f => prefixes.Select(p => p + "-" + f))));
            }

            if (paths.Count(FanArtTypes.DiscArt) == 0)
            {
                paths.AddRange(FanArtTypes.DiscArt, LocalFanartHelper.FilterPotentialFanArtFilesByName(potentialFanArtFiles,
                                                                                                       LocalFanartHelper.DISCART_FILENAMES.SelectMany(f => prefixes.Select(p => p + "-" + f))));
            }

            if (paths.Count(FanArtTypes.Banner) == 0)
            {
                paths.AddRange(FanArtTypes.Banner, LocalFanartHelper.FilterPotentialFanArtFilesByName(potentialFanArtFiles,
                                                                                                      LocalFanartHelper.BANNER_FILENAMES.SelectMany(f => prefixes.Select(p => p + "-" + f))));
            }

            if (paths.Count(FanArtTypes.FanArt) == 0)
            {
                paths.AddRange(FanArtTypes.FanArt, LocalFanartHelper.FilterPotentialFanArtFilesByPrefix(potentialFanArtFiles,
                                                                                                        LocalFanartHelper.BACKDROP_FILENAMES.SelectMany(f => prefixes.Select(p => p + "-" + f))));
            }
        }
コード例 #2
0
        private void AddSpecialSeasonFolderFanArt(List <ResourcePath> fanArtPaths, string fanArtType, string systemId, ResourcePath directory, int?seasonNumber)
        {
            if (!seasonNumber.HasValue)
            {
                return;
            }

            using (IResourceAccessor directoryRa = new ResourceLocator(systemId, directory).CreateAccessor())
            {
                var directoryFsra = directoryRa as IFileSystemResourceAccessor;
                if (directoryFsra != null)
                {
                    var potentialFanArtFiles = LocalFanartHelper.GetPotentialFanArtFiles(directoryFsra);

                    string[] prefixes = LocalFanartHelper.GetAdditionalSeasonPrefixes(seasonNumber);

                    if (fanArtType == FanArtTypes.Undefined || fanArtType == FanArtTypes.Thumbnail)
                    {
                        fanArtPaths.AddRange(LocalFanartHelper.FilterPotentialFanArtFilesByName(potentialFanArtFiles,
                                                                                                LocalFanartHelper.THUMB_FILENAMES.SelectMany(f => prefixes.Select(p => p + "-" + f))));
                    }

                    if (fanArtType == FanArtTypes.Poster)
                    {
                        fanArtPaths.AddRange(LocalFanartHelper.FilterPotentialFanArtFilesByName(potentialFanArtFiles,
                                                                                                LocalFanartHelper.POSTER_FILENAMES.SelectMany(f => prefixes.Select(p => p + "-" + f))));
                    }

                    if (fanArtType == FanArtTypes.Logo)
                    {
                        fanArtPaths.AddRange(LocalFanartHelper.FilterPotentialFanArtFilesByName(potentialFanArtFiles,
                                                                                                LocalFanartHelper.LOGO_FILENAMES.SelectMany(f => prefixes.Select(p => p + "-" + f))));
                    }

                    if (fanArtType == FanArtTypes.ClearArt)
                    {
                        fanArtPaths.AddRange(LocalFanartHelper.FilterPotentialFanArtFilesByName(potentialFanArtFiles,
                                                                                                LocalFanartHelper.CLEARART_FILENAMES.SelectMany(f => prefixes.Select(p => p + "-" + f))));
                    }

                    if (fanArtType == FanArtTypes.Banner)
                    {
                        fanArtPaths.AddRange(LocalFanartHelper.FilterPotentialFanArtFilesByName(potentialFanArtFiles,
                                                                                                LocalFanartHelper.BANNER_FILENAMES.SelectMany(f => prefixes.Select(p => p + "-" + f))));
                    }

                    if (fanArtType == FanArtTypes.FanArt)
                    {
                        fanArtPaths.AddRange(LocalFanartHelper.FilterPotentialFanArtFilesByPrefix(potentialFanArtFiles,
                                                                                                  LocalFanartHelper.BACKDROP_FILENAMES.SelectMany(f => prefixes.Select(p => p + "-" + f))));
                    }
                }
            }
        }