コード例 #1
0
        public void CreateFiles(EntityBase entity, bool overwrite, UserConfiguration configuration)
        {
            Season season            = (Season)entity;
            string metadataDirectory = System.IO.Path.Combine(season.Path, "metadata");

            if (!Directory.Exists(metadataDirectory))
            {
                DirectoryInfo dir = Directory.CreateDirectory(metadataDirectory);
                dir.Attributes = FileAttributes.Hidden;
            }

            // Download banner images
            string bannerFilePath = string.Concat(season.Path, "\\banner.jpg");

            if (!File.Exists(bannerFilePath))
            {
                Library.Entities.Image image = this.GetBannerImage(season);
                if (image != null && !string.IsNullOrWhiteSpace(image.URL))
                {
                    EpisodeService.DownloadImage(image.URL, bannerFilePath);
                }
                else
                {
                    TraceManager.TraceFormat("Unable to find a suitable banner image for {0}.", season.Name);
                }
            }

            foreach (Episode episode in season.Episodes)
            {
                if (!string.IsNullOrEmpty(episode.Path))
                {
                    new EpisodeService().CreateFiles(episode, overwrite, configuration);
                }
            }
        }
コード例 #2
0
        private void SetPosterImage_Execute(object sender, ExecutedRoutedEventArgs e)
        {
            Library.Entities.Image image = (Library.Entities.Image) this.listMovieImages.SelectedItem;
            Movie movie = (Movie)image.ParentEntity;

            Library.Entities.Image posterImage = movie.Images.Where(i => i.ID == image.ID).OrderByDescending(i => i.Width).First();

            var service = new MovieService();

            service.SetPosterImage(movie, posterImage);
        }
コード例 #3
0
        public void CreateFiles(EntityBase entity, bool overwrite, UserConfiguration configuration)
        {
            Show          show      = (Show)entity;
            DirectoryInfo directory = new DirectoryInfo(show.Path);

            if (directory.Exists)
            {
                string filePath = string.Concat(directory.FullName, "\\series.xml");
                if (File.Exists(filePath))
                {
                    if (overwrite)
                    {
                        File.Delete(filePath);
                    }
                    else
                    {
                        return;
                    }
                }

                XmlDocument doc      = new XmlDocument();
                XmlNode     rootNode = doc.AddNode("Series");
                rootNode.AddNode("id", show.ID.ToString());
                rootNode.AddNode("Actors", string.Concat("|", string.Join("|", show.Actors), "|"));
                rootNode.AddNode("ContentRating", show.ContentRating);
                rootNode.AddNode("FirstAired", show.Created.ToString("yyyy-MM-dd"));
                rootNode.AddNode("Genre", string.Concat("|", string.Join("|", show.Genres), "|"));
                rootNode.AddNode("IMDbId", show.IMDB_ID);
                rootNode.AddNode("IMDB_ID", show.IMDB_ID);
                rootNode.AddNode("Overview", show.Description);
                rootNode.AddNode("Network", show.Network);
                rootNode.AddNode("Rating", show.Rating);
                rootNode.AddNode("Runtime", show.Runtime.ToString());
                rootNode.AddNode("SeriesName", show.Name);
                rootNode.AddNode("Status", show.Status);

                // Save the file
                doc.Save(filePath);

                // Download banner images
                string bannerFilePath = System.IO.Path.Combine(show.Path, "banner.jpg");
                if (!File.Exists(bannerFilePath))
                {
                    Library.Entities.Image image = this.GetBannerImage(show);
                    if (image != null && !string.IsNullOrWhiteSpace(image.URL))
                    {
                        EpisodeService.DownloadImage(image.URL, bannerFilePath);
                    }
                    else
                    {
                        TraceManager.TraceFormat("Unable to find a suitable banner image for {0}.", show.Name);
                    }
                }

                // Download poster image
                string posterFile = System.IO.Path.Combine(show.Path, "folder.jpg");
                if (!File.Exists(posterFile))
                {
                    Image poster = show.Images.Where((i) => i.MappedType == ImageType.Poster).OrderByDescending((i) => i.Height).ToList().FirstOrDefault();
                    if (poster != null)
                    {
                        TraceManager.Trace("Downloading poster image ...", TraceTypes.OperationStarted);
                        EpisodeService.DownloadImage(poster.URL, posterFile);
                    }
                    else
                    {
                        TraceManager.Trace(string.Format("Unable to find a poster file for {0}.", show.Name), TraceTypes.Error);
                    }
                }

                foreach (Season season in show.Seasons)
                {
                    if (!string.IsNullOrEmpty(season.Path))
                    {
                        new SeasonService().CreateFiles(season, overwrite, configuration);
                    }
                }
            }
            else
            {
                throw new DirectoryNotFoundException(string.Format("Directory {0} was not found.", directory.FullName));
            }
        }