protected virtual ImportListMovie ProcessItem(XElement item, ImportListMovie releaseInfo) { var title = GetTitle(item); // Loosely allow movies (will work with IMDB) if (title.ContainsIgnoreCase("TV Series") || title.ContainsIgnoreCase("Mini-Series") || title.ContainsIgnoreCase("TV Episode")) { return(null); } releaseInfo.Title = title; var result = Parser.Parser.ParseMovieTitle(title); //Depreciated anyways if (result != null) { releaseInfo.Title = result.PrimaryMovieTitle; releaseInfo.Year = result.Year; releaseInfo.ImdbId = result.ImdbId; } try { if (releaseInfo.ImdbId.IsNullOrWhiteSpace()) { releaseInfo.ImdbId = GetImdbId(item); } } catch (Exception) { _logger.Debug("Unable to extract Imdb Id :(."); } return(releaseInfo); }
private void ProcessMovieReport(ImportListDefinition importList, ImportListMovie report, List <ImportExclusion> listExclusions, List <int> dbMovies, List <Movie> moviesToAdd) { if (report.TmdbId == 0 || !importList.EnableAuto) { return; } // Check to see if movie in DB if (dbMovies.Contains(report.TmdbId)) { _logger.Debug("{0} [{1}] Rejected, Movie Exists in DB", report.TmdbId, report.Title); AddTagsToExistingMovie(importList, report); return; } // Check to see if movie excluded var excludedMovie = listExclusions.Where(s => s.TmdbId == report.TmdbId).SingleOrDefault(); if (excludedMovie != null) { _logger.Debug("{0} [{1}] Rejected due to list exlcusion", report.TmdbId, report.Title); return; } // Append Artist if not already in DB or already on add list if (moviesToAdd.All(s => s.TmdbId != report.TmdbId)) { var monitored = importList.ShouldMonitor; moviesToAdd.Add(new Movie { Monitored = monitored, RootFolderPath = importList.RootFolderPath, ProfileId = importList.ProfileId, MinimumAvailability = importList.MinimumAvailability, Tags = importList.Tags, TmdbId = report.TmdbId, Title = report.Title, Year = report.Year, ImdbId = report.ImdbId, AddOptions = new AddMovieOptions { SearchForMovie = monitored && importList.SearchOnAdd, } }); } }
private void AddTagsToExistingMovie(ImportListDefinition importList, ImportListMovie report) { _logger.Debug("{0} [{1}] Checking if necessary to add new tag/s to existing Movie.", report.TmdbId, report.Title); var movie = _movieService.FindByTmdbId(report.TmdbId); if (movie != null) { foreach (var tag in importList.Tags) { if (!movie.Tags.Contains(tag)) { movie.Tags.Add(tag); } } _movieService.UpdateMovie(movie); } }
protected ImportListMovie MapListMovie(MovieResultResource movieResult) { var movie = new ImportListMovie { TmdbId = movieResult.Id, Overview = movieResult.Overview, Title = movieResult.Title, SortTitle = Parser.Parser.NormalizeTitle(movieResult.Title), Images = new List <MediaCover.MediaCover>(), }; if (movieResult.ReleaseDate.IsNotNullOrWhiteSpace()) { DateTime.TryParse(movieResult.ReleaseDate, out var releaseDate); movie.Year = releaseDate.Year; } movie.Images.AddIfNotNull(MapPosterImage(movieResult.PosterPath)); return(movie); }
public static ImportListMoviesResource ToResource(this ImportListMovie model) { if (model == null) { return(null); } return(new ImportListMoviesResource { TmdbId = model.TmdbId, Title = model.Title, SortTitle = model.SortTitle, InCinemas = model.InCinemas, PhysicalRelease = model.PhysicalRelease, DigitalRelease = model.DigitalRelease, Status = model.Status, Overview = model.Overview, Images = model.Images, Year = model.Year, Runtime = model.Runtime, ImdbId = model.ImdbId, Certification = model.Certification, Website = model.Website, Genres = model.Genres, Ratings = model.Ratings, YouTubeTrailerId = model.YouTubeTrailerId, Studio = model.Studio, Collection = model.Collection, Lists = new HashSet <int> { model.ListId } }); }
private ImportListMovie MapMovieReport(ImportListMovie report) { var mappedMovie = _movieSearch.MapMovieToTmdbMovie(new Movie { Title = report.Title, TmdbId = report.TmdbId, ImdbId = report.ImdbId, Year = report.Year }); var mappedListMovie = new ImportListMovie { ListId = report.ListId }; if (mappedMovie != null) { mappedListMovie.TmdbId = mappedMovie.TmdbId; mappedListMovie.ImdbId = mappedMovie.ImdbId; mappedListMovie.Title = mappedMovie.Title; mappedListMovie.SortTitle = mappedMovie?.SortTitle; mappedListMovie.Year = mappedMovie.Year; mappedListMovie.Overview = mappedMovie.Overview; mappedListMovie.Ratings = mappedMovie.Ratings; mappedListMovie.Studio = mappedMovie.Studio; mappedListMovie.Certification = mappedMovie.Certification; mappedListMovie.Collection = mappedMovie.Collection; mappedListMovie.Status = mappedMovie.Status; mappedListMovie.Images = mappedMovie.Images; mappedListMovie.Website = mappedMovie.Website; mappedListMovie.YouTubeTrailerId = mappedMovie.YouTubeTrailerId; mappedListMovie.Translations = mappedMovie.Translations; mappedListMovie.InCinemas = mappedMovie.InCinemas; mappedListMovie.PhysicalRelease = mappedMovie.PhysicalRelease; mappedListMovie.DigitalRelease = mappedMovie.DigitalRelease; mappedListMovie.Genres = mappedMovie.Genres; mappedListMovie.Runtime = mappedMovie.Runtime; mappedListMovie.OriginalTitle = mappedMovie.OriginalTitle; } return(mappedListMovie); }
protected virtual ImportListMovie PostProcess(XElement item, ImportListMovie releaseInfo) { return(releaseInfo); }