Example #1
0
        internal CachedMovieInfo DownloadMovieNow(int id, bool showErrorMsgBox)
        {
            Movie downloadedMovie = Client.GetMovieAsync(id, MovieMethods.ExternalIds | MovieMethods.Images | MovieMethods.AlternativeTitles | MovieMethods.ReleaseDates | MovieMethods.Changes | MovieMethods.Videos | MovieMethods.Credits).Result;

            if (downloadedMovie is null)
            {
                throw new ShowNotFoundException(id, "TMDB no longer has this movie", TVDoc.ProviderType.TMDB, TVDoc.ProviderType.TMDB);
            }
            CachedMovieInfo m = new CachedMovieInfo
            {
                Imdb            = downloadedMovie.ExternalIds.ImdbId,
                TmdbCode        = downloadedMovie.Id,
                Name            = downloadedMovie.Title,
                Runtime         = downloadedMovie.Runtime.ToString(),
                FirstAired      = downloadedMovie.ReleaseDate,
                Genres          = downloadedMovie.Genres.Select(genre => genre.Name).ToList(),
                Overview        = downloadedMovie.Overview,
                Network         = downloadedMovie.ProductionCompanies.FirstOrDefault()?.Name,
                Status          = downloadedMovie.Status,
                ShowLanguage    = downloadedMovie.OriginalLanguage,
                SiteRating      = (float)downloadedMovie.VoteAverage,
                SiteRatingVotes = downloadedMovie.VoteCount,
                PosterUrl       = ImageUrl(downloadedMovie.PosterPath),
                SrvLastUpdated  = DateTime.UtcNow.Date.ToUnixTime(),
                CollectionName  = downloadedMovie.BelongsToCollection?.Name,
                CollectionId    = downloadedMovie.BelongsToCollection?.Id,
                TagLine         = downloadedMovie.Tagline,
                Popularity      = downloadedMovie.Popularity,
                TwitterId       = downloadedMovie.ExternalIds.TwitterId,
                InstagramId     = downloadedMovie.ExternalIds.InstagramId,
                FacebookId      = downloadedMovie.ExternalIds.InstagramId,
                FanartUrl       = ImageUrl(downloadedMovie.BackdropPath),
                ContentRating   = GetCertification(downloadedMovie, "AU") ?? GetCertification(downloadedMovie, "US") ?? string.Empty,// todo allow user to choose
                OfficialUrl     = downloadedMovie.Homepage,
                TrailerUrl      = GetYouTubeUrl(downloadedMovie),
                Dirty           = false,
            };

            foreach (string?s in downloadedMovie.AlternativeTitles.Titles.Select(title => title.Title))
            {
                m.AddAlias(s);
            }
            foreach (Cast?s in downloadedMovie.Credits.Cast)
            {
                m.AddActor(new Actor(s.Id, s.ProfilePath, s.Name, s.Character, s.CastId, s.Order));
            }
            foreach (TMDbLib.Objects.General.Crew?s in downloadedMovie.Credits.Crew)
            {
                m.AddCrew(new Crew(s.Id, s.ProfilePath, s.Name, s.Job, s.Department, s.CreditId));
            }

            File(m);

            return(m);
        }