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); } } }
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); }
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)); } }