Пример #1
0
        private void AddTvTitle(TvInfo tvInfo)
        {
            var title = "";

            if (!String.IsNullOrEmpty(tvInfo.first_air_date) && tvInfo.first_air_date.Length > 4)
            {
                title = $"{tvInfo.name} ({tvInfo.first_air_date.Remove(4)})";
            }
            else
            {
                title = $"{tvInfo.name}";
            }
            AddTitle($"https://www.themoviedb.org/tv/{tvInfo.id}/", title);
        }
Пример #2
0
        public async Task <TvShowRequestBuilderV2> GetShowInfo(int id)
        {
            TheMovieDbRecord = await MovieDbApi.GetTVInfo(id.ToString());

            BackdropPath = TheMovieDbRecord.Images?.Backdrops?.OrderBy(x => x.VoteCount).ThenBy(x => x.VoteAverage).FirstOrDefault()?.FilePath;;

            DateTime.TryParse(TheMovieDbRecord.first_air_date, out var dt);

            FirstAir = dt;

            // For some reason the poster path is always http
            PosterPath = TheMovieDbRecord.Images?.Posters?.OrderBy(x => x.VoteCount).ThenBy(x => x.VoteAverage).FirstOrDefault()?.FilePath;

            return(this);
        }
Пример #3
0
        private void AddTvEpisodesSummaryGenres(string episodes, TvInfo tvInfo)
        {
            var summary = tvInfo.overview;

            if (summary.Length > 280)
            {
                summary = summary.Remove(280);
                summary = summary + "...</p>";
            }
            AddTvParagraph(episodes, summary);

            if (tvInfo.genres.Any())
            {
                AddGenres($"{Texts.GenresLabel} {string.Join(", ", tvInfo.genres.Select(x => x.name.ToString()).ToArray())}");
            }
        }
Пример #4
0
        private string GetTvEpisodesString(TvInfo tvInfo, ICollection <IMediaServerEpisode> episodes)
        {
            if (episodes.Count >= tvInfo.number_of_episodes)
            {
                // do not list individual episodes when the series is complete
                return(string.Empty);
            }

            var sb = new StringBuilder();
            // Group by the season number
            var seasons = episodes.GroupBy(p => p.SeasonNumber,
                                           (key, g) => new
            {
                SeasonNumber = key,
                Episodes     = g.ToList(),
                Header       = tvInfo?.seasons?.Where(x => x.season_number == key).FirstOrDefault(),
            }
                                           );

            // Group the episodes
            foreach (var season in seasons.OrderBy(x => x.SeasonNumber))
            {
                string episodeList;
                if (season.Episodes.Count >= season.Header.episode_count)
                {
                    // do not list individual episodes when the season is complete
                    episodeList = string.Empty;
                }
                else
                {
                    var orderedEpisodes = season.Episodes.OrderBy(x => x.EpisodeNumber).ToList();
                    episodeList = $"{Texts.EpisodesLabel} {StringHelper.BuildEpisodeList(orderedEpisodes.Select(x => x.EpisodeNumber))}";
                }
                var episodeAirDate = season.Header.air_date;
                sb.Append($"{Texts.SeasonLabel} {season.SeasonNumber} - {episodeList} {episodeAirDate}");
                sb.Append("<br />");
            }
            return(sb.ToString());
        }
Пример #5
0
        public async Task <TvShowRequestBuilderV2> GetShowInfo(int id, string langCode = "en")
        {
            TheMovieDbRecord = await MovieDbApi.GetTVInfo(id.ToString(), langCode);

            // Remove 'Specials Season'
            var firstSeason = TheMovieDbRecord.seasons.OrderBy(x => x.season_number).FirstOrDefault();

            if (firstSeason?.season_number == 0)
            {
                TheMovieDbRecord.seasons.Remove(firstSeason);
            }

            BackdropPath = TheMovieDbRecord.Images?.Backdrops?.OrderBy(x => x.VoteCount).ThenBy(x => x.VoteAverage).FirstOrDefault()?.FilePath;;

            DateTime.TryParse(TheMovieDbRecord.first_air_date, out var dt);

            FirstAir = dt;

            // For some reason the poster path is always http
            PosterPath = TheMovieDbRecord.Images?.Posters?.OrderBy(x => x.VoteCount).ThenBy(x => x.VoteAverage).FirstOrDefault()?.FilePath;

            return(this);
        }