示例#1
0
        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);
            }
        }
示例#4
0
        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);
        }
示例#7
0
 protected virtual ImportListMovie PostProcess(XElement item, ImportListMovie releaseInfo)
 {
     return(releaseInfo);
 }