/// <summary> /// Saves the movie. /// </summary> /// <param name="movieModel"> /// The movie model. /// </param> public void SaveMovie(MovieModel movieModel) { string actualTrailerFileName = ""; string actualTrailerFileNameExt = ""; string actualFilePath = movieModel.AssociatedFiles.Media[0].FileModel.Path; string actualFileName = movieModel.AssociatedFiles.Media[0].FileModel.FilenameWithOutExt; string currentTrailerUrl = movieModel.CurrentTrailerUrl; MovieSaveSettings movieSaveSettings = Get.InOutCollection.CurrentMovieSaveSettings; string nfoPath = string.IsNullOrEmpty(movieSaveSettings.NfoPath) ? actualFilePath : movieSaveSettings.NfoPath; string posterPath = Downloader.ProcessDownload( movieModel.CurrentPosterImageUrl, DownloadType.Binary, Section.Movies); string fanartPathFrom = Downloader.ProcessDownload( movieModel.CurrentFanartImageUrl, DownloadType.Binary, Section.Movies); string trailerPathFrom = Downloader.ProcessDownload( movieModel.CurrentTrailerUrl, DownloadType.AppleBinary, Section.Movies); string nfoXml = GenerateOutput.GenerateMovieOutput(movieModel); string nfoTemplate; string posterTemplate; string fanartTemplate; string trailerTemplate; string setPosterTemplate; string setFanartTemplate; if (MovieNaming.IsDVD(movieModel.GetBaseFilePath)) { actualFilePath = MovieNaming.GetDvdPath(movieModel.GetBaseFilePath); actualFileName = MovieNaming.GetDvdName(movieModel.GetBaseFilePath); nfoTemplate = movieSaveSettings.DvdNfoNameTemplate; posterTemplate = movieSaveSettings.DvdPosterNameTemplate; fanartTemplate = movieSaveSettings.DvdFanartNameTemplate; trailerTemplate = movieSaveSettings.DvdTrailerNameTemplate; setPosterTemplate = movieSaveSettings.DvdSetPosterNameTemplate; setFanartTemplate = movieSaveSettings.DvdSetFanartNameTemplate; } else if (MovieNaming.IsBluRay(movieModel.GetBaseFilePath)) { actualFilePath = MovieNaming.GetBluRayPath(movieModel.GetBaseFilePath); actualFileName = MovieNaming.GetBluRayName(movieModel.GetBaseFilePath); nfoTemplate = movieSaveSettings.BlurayNfoNameTemplate; posterTemplate = movieSaveSettings.BlurayPosterNameTemplate; fanartTemplate = movieSaveSettings.BlurayFanartNameTemplate; trailerTemplate = movieSaveSettings.BlurayTrailerNameTemplate; setPosterTemplate = movieSaveSettings.BluraySetPosterNameTemplate; setFanartTemplate = movieSaveSettings.BluraySetFanartNameTemplate; } else { nfoTemplate = movieSaveSettings.NormalNfoNameTemplate; posterTemplate = movieSaveSettings.NormalPosterNameTemplate; fanartTemplate = movieSaveSettings.NormalFanartNameTemplate; trailerTemplate = movieSaveSettings.NormalTrailerNameTemplate; setPosterTemplate = movieSaveSettings.NormalSetPosterNameTemplate; setFanartTemplate = movieSaveSettings.NormalSetFanartNameTemplate; } if (!string.IsNullOrEmpty(currentTrailerUrl)) { actualTrailerFileName = currentTrailerUrl.Substring(currentTrailerUrl.LastIndexOf('/') + 1, currentTrailerUrl.LastIndexOf('.') - currentTrailerUrl.LastIndexOf('/') - 1); actualTrailerFileNameExt = currentTrailerUrl.Substring(currentTrailerUrl.LastIndexOf('.') + 1); } string nfoOutputName = nfoTemplate.Replace("<path>", actualFilePath).Replace("<filename>", actualFileName); string posterOutputName = posterTemplate.Replace("<path>", actualFilePath).Replace("<filename>", actualFileName).Replace( "<ext>", "jpg"); string fanartOutputName = fanartTemplate.Replace("<path>", actualFilePath).Replace("<filename>", actualFileName).Replace( "<ext>", "jpg"); string trailerOutputName = trailerTemplate.Replace("<path>", actualFilePath).Replace("<filename>", actualFileName).Replace( "<trailername>", actualTrailerFileName).Replace("<ext>", actualTrailerFileNameExt); string setPosterOutputPath = setPosterTemplate.Replace("<path>", actualFilePath).Replace( "<filename>", actualFileName); string setFanartOutputPath = setFanartTemplate.Replace("<path>", actualFilePath).Replace( "<filename>", actualFileName); // Handle Set Images List <string> sets = MovieSetManager.GetSetsContainingMovie(movieModel); if (sets.Count > 0) { foreach (string setName in sets) { MovieSetModel set = MovieSetManager.GetSet(setName); MovieSetObjectModel setObjectModel = (from s in set.Movies where s.MovieUniqueId == movieModel.MovieUniqueId select s). SingleOrDefault(); string currentSetPosterPath = setPosterOutputPath.Replace("<setname>", setName).Replace( "<ext>", ".jpg"); string currentSetFanartPath = setFanartOutputPath.Replace("<setname>", setName).Replace( "<ext>", ".jpg"); if (setObjectModel.Order == 1) { if (File.Exists(set.PosterUrl)) { File.Copy(set.PosterUrl, currentSetPosterPath); } if (File.Exists(set.FanartUrl)) { File.Copy(set.FanartUrl, currentSetFanartPath); } } else { if (File.Exists(set.PosterUrl) && File.Exists(currentSetPosterPath)) { File.Delete(currentSetPosterPath); } if (File.Exists(set.FanartUrl) && File.Exists(currentSetFanartPath)) { File.Delete(currentSetFanartPath); } } } } if (movieSaveSettings.IoType == MovieIOType.All || movieSaveSettings.IoType == MovieIOType.Nfo) { try { this.WriteNFO(nfoXml, nfoOutputName); movieModel.ChangedText = false; Log.WriteToLog( LogSeverity.Info, 0, "NFO Saved To Disk for " + movieModel.Title, nfoPath + nfoOutputName); } catch (Exception ex) { Log.WriteToLog(LogSeverity.Error, 0, "Saving NFO Failed for " + movieModel.Title, ex.Message); } } if (movieSaveSettings.IoType == MovieIOType.All || movieSaveSettings.IoType == MovieIOType.Poster || movieSaveSettings.IoType == MovieIOType.Images) { try { if (!string.IsNullOrEmpty(movieModel.CurrentPosterImageUrl)) { this.CopyFile(posterPath, posterOutputName); movieModel.ChangedPoster = false; Log.WriteToLog( LogSeverity.Info, 0, "Poster Saved To Disk for " + movieModel.Title, posterPath + " -> " + posterOutputName); } } catch (Exception ex) { Log.WriteToLog(LogSeverity.Error, 0, "Saving Poster Failed for " + movieModel.Title, ex.Message); } } if (movieSaveSettings.IoType == MovieIOType.All || movieSaveSettings.IoType == MovieIOType.Fanart || movieSaveSettings.IoType == MovieIOType.Images) { try { if (!string.IsNullOrEmpty(movieModel.CurrentFanartImageUrl)) { this.CopyFile(fanartPathFrom, fanartOutputName); movieModel.ChangedFanart = false; Log.WriteToLog( LogSeverity.Info, 0, "Fanart Saved To Disk for " + movieModel.Title, fanartPathFrom + " -> " + fanartOutputName); } } catch (Exception ex) { Log.WriteToLog(LogSeverity.Error, 0, "Saving Fanart Failed for " + movieModel.Title, ex.Message); } } if (movieSaveSettings.IoType == MovieIOType.All || movieSaveSettings.IoType == MovieIOType.Trailer) { try { if (!string.IsNullOrEmpty(movieModel.CurrentTrailerUrl)) { this.CopyFile(trailerPathFrom, trailerOutputName); movieModel.ChangedTrailer = false; Log.WriteToLog( LogSeverity.Info, 0, "Trailer Saved To Disk for " + movieModel.Title, trailerPathFrom + " -> " + trailerOutputName); } } catch (Exception ex) { Log.WriteToLog(LogSeverity.Error, 0, "Saving Trailer Failed for " + movieModel.Title, ex.Message); } } }
/// <summary> /// Gets the super tip for the movie /// </summary> /// <returns> /// A supertip object /// </returns> public SuperToolTip GetMovieSuperTip() { var superTip = new SuperToolTip { AllowHtmlText = DefaultBoolean.True }; string yearValue; if (string.IsNullOrEmpty(this.Year.ToString())) { yearValue = " (No year found)"; } else { yearValue = " (" + this.year + ")"; } superTip.Items.AddTitle(this.Title + yearValue); var item = new ToolTipTitleItem { Image = this.SmallPoster }; var sb = new StringBuilder(); if (item.Image == null) { sb.Append("<b>No Poster Found</b>" + Environment.NewLine); } sb.Append(Environment.NewLine); if (!string.IsNullOrEmpty(this.ImdbId)) { sb.Append("<b>Imdb ID:</b> " + this.ImdbId + Environment.NewLine); } if (!string.IsNullOrEmpty(this.TmdbId)) { sb.Append("<b>Tmdb ID:</b> " + this.TmdbId + Environment.NewLine); } sb.Append(Environment.NewLine); if (this.ChangedText) { sb.Append("<b>Text</b> not saved." + Environment.NewLine); } if (this.ChangedPoster) { sb.Append("<b>Poster</b> not saved." + Environment.NewLine); } if (this.ChangedPoster) { sb.Append("<b>Fanart</b> not saved." + Environment.NewLine); } List <string> sets = MovieSetManager.GetSetsContainingMovie(this); if (sets.Count > 0) { sb.Append(Environment.NewLine + "<b>In the following sets:</b>" + Environment.NewLine); foreach (string set in sets) { sb.Append(set + Environment.NewLine); } } item.Text = sb.ToString(); superTip.Items.Add(item); if (this.smallFanart != null) { superTip.Items.Add(new ToolTipTitleItem { Image = this.smallFanart }); } else { superTip.Items.Add("<b>No Fanart Found</b>"); } return(superTip); }
/// <summary> /// The generate movies in set. /// </summary> private void GenerateMoviesInSet() { var setList = MovieSetManager.GetSetsContainingMovie(MovieDBFactory.GetCurrentMovie()); this.txtMovieIsSets.Text = string.Join(Environment.NewLine, setList); }