示例#1
0
        public void TestSearchMulti()
        {
            TestHelpers.SearchPages(i => Config.Client.SearchMultiAsync("Arrow", i).Result);

            SearchContainer <SearchBase> result = Config.Client.SearchMultiAsync("Arrow").Result;

            Assert.True(result.Results.Any());
            SearchTv item = result.Results.OfType <SearchTv>().SingleOrDefault(s => s.Id == 1412);

            Assert.NotNull(item);
            Assert.Equal(1412, item.Id);
            Assert.True(TestImagesHelpers.TestImagePath(item.BackdropPath), "item.BackdropPath was not a valid image path, was: " + item.BackdropPath);
            Assert.Equal(new DateTime(2012, 10, 10), item.FirstAirDate);
            Assert.Equal(MediaType.Tv, item.MediaType);
            Assert.Equal("Arrow", item.Name);
            Assert.Equal("Arrow", item.OriginalName);
            Assert.True(TestImagesHelpers.TestImagePath(item.PosterPath), "item.PosterPath was not a valid image path, was: " + item.PosterPath);
            Assert.True(item.Popularity > 0);
            Assert.True(item.VoteAverage > 0);
            Assert.True(item.VoteCount > 0);

            Assert.NotNull(item.OriginCountry);
            Assert.Equal(2, item.OriginCountry.Count);
            Assert.True(item.OriginCountry.Contains("US"));
            Assert.True(item.OriginCountry.Contains("CA"));
        }
示例#2
0
        public void TestSearchTvShow()
        {
            TestHelpers.SearchPages(i => _config.Client.SearchTvShow("Breaking Bad", i).Result);

            SearchContainer <SearchTv> result = _config.Client.SearchTvShow("Breaking Bad").Result;

            Assert.IsTrue(result.Results.Any());
            SearchTv item = result.Results.SingleOrDefault(s => s.Id == 1396);

            Assert.IsNotNull(item);
            Assert.AreEqual(1396, item.Id);
            Assert.AreEqual("/eSzpy96DwBujGFj0xMbXBcGcfxX.jpg", item.BackdropPath);
            Assert.AreEqual(new DateTime(2008, 1, 19), item.FirstAirDate);
            Assert.AreEqual("Breaking Bad", item.Name);
            Assert.AreEqual("Breaking Bad", item.OriginalName);
            Assert.AreEqual("en", item.OriginalLanguage);
            // has been replaced
            // Assert.AreEqual("/4yMXf3DW6oCL0lVPZaZM2GypgwE.jpg", item.PosterPath);
            Assert.IsNotNull(item.PosterPath);
            Assert.AreEqual("Breaking Bad is an American crime drama television series created and produced by Vince Gilligan. Set and produced in Albuquerque, New Mexico, Breaking Bad is the story of Walter White, a struggling high school chemistry teacher who is diagnosed with inoperable lung cancer at the beginning of the series. He turns to a life of crime, producing and selling methamphetamine, in order to secure his family's financial future before he dies, teaming with his former student, Jesse Pinkman. Heavily serialized, the series is known for positioning its characters in seemingly inextricable corners and has been labeled a contemporary western by its creator.", item.Overview);
            Assert.IsTrue(item.Popularity > 0);
            Assert.IsTrue(item.VoteAverage > 0);
            Assert.IsTrue(item.VoteCount > 0);

            Assert.IsNotNull(item.GenreIds);
            Assert.AreEqual(1, item.GenreIds.Count);
            Assert.AreEqual(18, item.GenreIds[0]);

            Assert.IsNotNull(item.OriginCountry);
            Assert.AreEqual(1, item.OriginCountry.Count);
            Assert.AreEqual("US", item.OriginCountry[0]);
        }
示例#3
0
        public void TestTvShowSimilars()
        {
            SearchContainer <SearchTv> tvShow = _config.Client.GetTvShowSimilarAsync(1668).Result;

            Assert.IsNotNull(tvShow);
            Assert.IsNotNull(tvShow.Results);

            SearchTv item = tvShow.Results.SingleOrDefault(s => s.Id == 1100);

            Assert.IsNotNull(item);

            Assert.IsTrue(TestImagesHelpers.TestImagePath(item.BackdropPath), "item.BackdropPath was not a valid image path, was: " + item.BackdropPath);
            Assert.AreEqual(1100, item.Id);
            Assert.AreEqual("How I Met Your Mother", item.OriginalName);
            Assert.AreEqual(new DateTime(2005, 09, 19), item.FirstAirDate);
            Assert.IsTrue(TestImagesHelpers.TestImagePath(item.PosterPath), "item.PosterPath was not a valid image path, was: " + item.PosterPath);
            Assert.IsTrue(item.Popularity > 0);
            Assert.AreEqual("How I Met Your Mother", item.Name);
            Assert.IsTrue(item.VoteAverage > 0);
            Assert.IsTrue(item.VoteCount > 0);

            Assert.IsNotNull(item.OriginCountry);
            Assert.AreEqual(1, item.OriginCountry.Count);
            Assert.IsTrue(item.OriginCountry.Contains("US"));
        }
示例#4
0
        public void TestSearchTvShow()
        {
            // Ignore missing json
            IgnoreMissingJson("results[array] / media_type");

            TestHelpers.SearchPages(i => Config.Client.SearchTvShowAsync("Breaking Bad", i).Result);

            SearchContainer <SearchTv> result = Config.Client.SearchTvShowAsync("Breaking Bad").Result;

            Assert.True(result.Results.Any());
            SearchTv item = result.Results.SingleOrDefault(s => s.Id == 1396);

            Assert.NotNull(item);
            Assert.Equal(1396, item.Id);
            Assert.True(TestImagesHelpers.TestImagePath(item.BackdropPath), "item.BackdropPath was not a valid image path, was: " + item.BackdropPath);
            Assert.Equal(new DateTime(2008, 1, 19), item.FirstAirDate);
            Assert.Equal("Breaking Bad", item.Name);
            Assert.Equal("Breaking Bad", item.OriginalName);
            Assert.Equal("en", item.OriginalLanguage);
            Assert.True(TestImagesHelpers.TestImagePath(item.PosterPath), "item.PosterPath was not a valid image path, was: " + item.PosterPath);
            Assert.Equal("Breaking Bad is an American crime drama television series created and produced by Vince Gilligan. Set and produced in Albuquerque, New Mexico, Breaking Bad is the story of Walter White, a struggling high school chemistry teacher who is diagnosed with inoperable lung cancer at the beginning of the series. He turns to a life of crime, producing and selling methamphetamine, in order to secure his family's financial future before he dies, teaming with his former student, Jesse Pinkman. Heavily serialized, the series is known for positioning its characters in seemingly inextricable corners and has been labeled a contemporary western by its creator.", item.Overview);
            Assert.True(item.Popularity > 0);
            Assert.True(item.VoteAverage > 0);
            Assert.True(item.VoteCount > 0);

            Assert.NotNull(item.GenreIds);
            Assert.Equal(1, item.GenreIds.Count);
            Assert.Equal(18, item.GenreIds[0]);

            Assert.NotNull(item.OriginCountry);
            Assert.Equal(1, item.OriginCountry.Count);
            Assert.Equal("US", item.OriginCountry[0]);
        }
示例#5
0
        public void TestTvShowSimilars()
        {
            SearchContainer <SearchTv> tvShow = _config.Client.GetTvShowSimilar(1668).Result;

            Assert.IsNotNull(tvShow);
            Assert.IsNotNull(tvShow.Results);

            SearchTv item = tvShow.Results.SingleOrDefault(s => s.Id == 1100);

            Assert.IsNotNull(item);

            Assert.AreEqual("/wfe7Xf7tc0zmnkoNyN3xor0xR8m.jpg", item.BackdropPath);
            Assert.AreEqual(1100, item.Id);
            Assert.AreEqual("How I Met Your Mother", item.OriginalName);
            Assert.AreEqual(new DateTime(2005, 09, 19), item.FirstAirDate);
            Assert.AreEqual("/izncB6dCLV7LBQ5MsOPyMx9mUDa.jpg", item.PosterPath);
            Assert.IsTrue(item.Popularity > 0);
            Assert.AreEqual("How I Met Your Mother", item.Name);
            Assert.IsTrue(item.VoteAverage > 0);
            Assert.IsTrue(item.VoteCount > 0);

            Assert.IsNotNull(item.OriginCountry);
            Assert.AreEqual(1, item.OriginCountry.Count);
            Assert.IsTrue(item.OriginCountry.Contains("US"));
        }
        public void TaggedImageConverter_Tv()
        {
            JsonSerializerSettings settings = new JsonSerializerSettings();

            settings.Converters.Add(new TaggedImageConverter());

            SearchTv originalMedia = new SearchTv {
                OriginalName = "Hello world"
            };

            TaggedImage original = new TaggedImage();

            original.MediaType = MediaType.Tv;
            original.Media     = originalMedia;

            string      json   = JsonConvert.SerializeObject(original, settings);
            TaggedImage result = JsonConvert.DeserializeObject <TaggedImage>(json, settings);

            Assert.NotNull(result);
            Assert.NotNull(result.Media);
            Assert.IsType <SearchTv>(result.Media);
            Assert.Equal(original.MediaType, result.MediaType);
            Assert.Equal(original.MediaType, result.Media.MediaType);

            SearchTv resultMedia = (SearchTv)result.Media;

            Assert.Equal(originalMedia.OriginalName, resultMedia.OriginalName);
        }
示例#7
0
 public PopularItem(SearchTv s)
 {
     Id              = s.Id;
     MediaType       = s.MediaType;
     Poster          = Utils.ModelUtils.GetSmallImageUri(s.PosterPath);
     PopularItemName = s.Name;
 }
示例#8
0
        public Series(SearchTv apiSeries, IEnumerable <TvSeason> apiSeasons) : base(apiSeries)
        {
            Title       = apiSeries.Name;
            ReleaseDate = apiSeries.FirstAirDate;

            Seasons = apiSeasons.Select(s => new Season(s)).ToList();
        }
示例#9
0
        public void TestTvShowRecommendations()
        {
            // Ignore missing json
            IgnoreMissingJson("results[array] / media_type");

            SearchContainer <SearchTv> tvShow = Config.Client.GetTvShowRecommendationsAsync(1668).Result;

            Assert.NotNull(tvShow);
            Assert.NotNull(tvShow.Results);

            SearchTv item = tvShow.Results.SingleOrDefault(s => s.Id == 1100);

            Assert.NotNull(item);

            Assert.True(TestImagesHelpers.TestImagePath(item.BackdropPath), "item.BackdropPath was not a valid image path, was: " + item.BackdropPath);
            Assert.Equal(1100, item.Id);
            Assert.Equal("How I Met Your Mother", item.OriginalName);
            Assert.Equal(new DateTime(2005, 09, 19), item.FirstAirDate);
            Assert.True(TestImagesHelpers.TestImagePath(item.PosterPath), "item.PosterPath was not a valid image path, was: " + item.PosterPath);
            Assert.True(item.Popularity > 0);
            Assert.Equal("How I Met Your Mother", item.Name);
            Assert.True(item.VoteAverage > 0);
            Assert.True(item.VoteCount > 0);

            Assert.NotNull(item.OriginCountry);
            Assert.Equal(1, item.OriginCountry.Count);
            Assert.True(item.OriginCountry.Contains("US"));
        }
示例#10
0
        public void TestAccountGetFavoriteTv()
        {
            // Ignore missing json
            IgnoreMissingJson("results[array] / media_type");

            Config.Client.SetSessionInformation(Config.UserSessionId, SessionType.UserSession);
            TestHelpers.SearchPages(i => Config.Client.AccountGetFavoriteTvAsync(i).Result);
            SearchTv tvShow = Config.Client.AccountGetFavoriteTvAsync().Sync().Results[0];

            // Requires that you have marked at least one movie as favorite else this test will fail
            Assert.True(tvShow.Id > 0);
            Assert.NotNull(tvShow.Name);
            Assert.NotNull(tvShow.PosterPath);
            Assert.NotNull(tvShow.BackdropPath);
            Assert.NotNull(tvShow.OriginalName);
            Assert.NotNull(tvShow.Overview);
            Assert.NotNull(tvShow.OriginalLanguage);
            Assert.NotNull(tvShow.FirstAirDate);
            Assert.True(tvShow.VoteCount > 0);
            Assert.True(tvShow.VoteAverage > 0);
            Assert.True(tvShow.Popularity > 0);

            Assert.NotNull(tvShow.GenreIds);
            Assert.True(tvShow.GenreIds.Any());
        }
示例#11
0
 public LetsWatchItem(SearchTv s, bool rated = false, bool favorite = false, bool watchlist = false)
 {
     Id        = s.Id;
     MediaType = s.MediaType;
     Poster    = Utils.ModelUtils.GetSmallImageUri(s.PosterPath);
     Name      = s.Name;
     Rated     = rated;
     Favorite  = favorite;
     Watchlist = watchlist;
 }
示例#12
0
 public SearchItem(SearchTv show)
 {
     MediaType   = MediaType.Tv;
     Id          = show.Id;
     ResultName  = show.OriginalName;
     ReleaseDate = show.FirstAirDate;
     Overview    = show.Overview;
     Rating      = show.VoteAverage;
     ImageUri    = ModelUtils.GetImageUri(show?.PosterPath);
 }
示例#13
0
        public async Task TestTvShowRecommendationsAsync()
        {
            SearchContainer <SearchTv> tvShows = await TMDbClient.GetTvShowRecommendationsAsync(IdHelper.BreakingBad);

            Assert.NotEmpty(tvShows.Results);

            SearchTv tvShow = tvShows.Results.Single(s => s.Id == 63351);

            await Verify(tvShow);
        }
 private void AddRatedItemToCollection(SearchTv tv)
 {
     if (LetsWatchItems.ContainsKey(tv.Id))
     {
         LetsWatchItems[tv.Id].Item.Rated = true;
     }
     else
     {
         LetsWatchItems.Add(tv.Id, new LetsWatchItemViewModel(new LetsWatchItem(tv, rated: true)));
     }
 }
示例#15
0
        private TvShowContainer GetContainer(SearchTv item)
        {
            TvShowContainer container = TvShows.FindById(item.Id);

            if (container == null)
            {
                container = new TvShowContainer(item);
            }

            return(container);
        }
 private void AddFavoriteItemToCollection(SearchTv tv)
 {
     if (LetsWatchItems.ContainsKey(tv.Id))
     {
         LetsWatchItems[tv.Id].Item.Favorite = true;
     }
     else
     {
         LetsWatchItems.Add(tv.Id, new LetsWatchItemViewModel(new LetsWatchItem(tv, favorite: true)));
     }
 }
示例#17
0
        public async Task TestAccountGetTvWatchlist()
        {
            await TMDbClient.SetSessionInformationAsync(TestConfig.UserSessionId, SessionType.UserSession);

            await TestHelpers.SearchPagesAsync(i => TMDbClient.AccountGetTvWatchlistAsync(i));

            SearchContainer <SearchTv> tvShows = await TMDbClient.AccountGetTvWatchlistAsync();

            SearchTv tvShow = tvShows.Results.Single(s => s.Id == 2691);

            await Verify(tvShow);
        }
示例#18
0
        public async Task TestAccountGetFavoriteTv()
        {
            await TMDbClient.SetSessionInformationAsync(TestConfig.UserSessionId, SessionType.UserSession);

            await TestHelpers.SearchPagesAsync(i => TMDbClient.AccountGetFavoriteTvAsync(i));

            SearchContainer <SearchTv> tvShows = await TMDbClient.AccountGetFavoriteTvAsync();

            SearchTv tvShow = tvShows.Results.Single(s => s.Id == IdHelper.BreakingBad);

            await Verify(tvShow);
        }
示例#19
0
        public async Task TestSearchTvShowAsync()
        {
            await TestHelpers.SearchPagesAsync(i => TMDbClient.SearchTvShowAsync("Breaking Bad", i));

            SearchContainer <SearchTv> result = await TMDbClient.SearchTvShowAsync("Breaking Bad");

            SearchTv item = result.Results.Single(s => s.Id == 1396);

            await Verify(item);

            TestImagesHelpers.TestImagePaths(new[] { item.BackdropPath, item.PosterPath });
        }
示例#20
0
        public async Task TestSearchMultiAsync()
        {
            await TestHelpers.SearchPagesAsync(i => TMDbClient.SearchMultiAsync("Arrow", i));

            SearchContainer <SearchBase> result = await TMDbClient.SearchMultiAsync("Arrow");

            SearchTv item = result.Results.OfType <SearchTv>().Single(s => s.Id == 1412);

            await Verify(item);

            TestImagesHelpers.TestImagePaths(new[] { item.BackdropPath, item.PosterPath });
        }
示例#21
0
        public void TestSearchTvShowWithYear()
        {
            TestHelpers.SearchPages(i => _config.Client.SearchTvShow("Doctor Who", "de", i, 2005).Result);
            SearchContainer <SearchTv> result = _config.Client.SearchTvShow("Doctor Who", "de", 0, 2005).Result;

            Assert.IsTrue(result.Results.Any());
            SearchTv item = result.Results.SingleOrDefault(s => s.Id == 57243);

            TestHelpers.SearchPages(i => _config.Client.SearchTvShow("Doctor Who", "de", i, 1963).Result);
            result = _config.Client.SearchTvShow("Doctor Who", "de", 0, 1963).Result;
            Assert.IsTrue(result.Results.Any());
            item = result.Results.SingleOrDefault(s => s.Id == 57243);
        }
示例#22
0
        public void TestSearchTvShowWithLanguage()
        {
            TestHelpers.SearchPages(i => _config.Client.SearchTvShow("Game of Thrones", "de", i).Result);
            SearchContainer <SearchTv> result = _config.Client.SearchTvShow("Game of Thrones", "de").Result;

            Assert.IsTrue(result.Results.Any());
            SearchTv item = result.Results.SingleOrDefault(s => s.Id == 1399);

            // validate language specific values
            Assert.IsTrue(item.Overview.Contains("Handlung"));
            Assert.IsTrue(item.Overview.Contains("Königreichen"));
            Assert.IsTrue(item.Overview.Contains("Gefahr"));
        }
        public TVShow CreateTvShowToManager(SearchTv item)
        {
            Genres[] newGenres = new Genres[item.GenreIds.Count];
            for (var k = 0; k < item.GenreIds.Count; k++)
            {
                var id = item.GenreIds[k];
                newGenres[k] = new Genres(id, Manager.TVShowGenres.FirstOrDefault(x => x.ID == id)?.Name);
            }

            var moreInfo = Client.GetTvShowAsync(item.Id).Result;

            Manager.TVShows.Add(new TVShow(item.Id, item.Name, item.Overview, item.FirstAirDate, item.Popularity, item.PosterPath, item.VoteAverage, newGenres, moreInfo.Homepage));
            return(Manager.TVShows.Last());
        }
示例#24
0
        private RemoteSearchResult MapSearchTvToRemoteSearchResult(SearchTv series)
        {
            var remoteResult = new RemoteSearchResult
            {
                Name = series.Name ?? series.OriginalName,
                SearchProviderName = Name,
                ImageUrl           = _tmdbClientManager.GetPosterUrl(series.PosterPath),
                Overview           = series.Overview
            };

            remoteResult.SetProviderId(MetadataProvider.Tmdb, series.Id.ToString(CultureInfo.InvariantCulture));
            remoteResult.PremiereDate = series.FirstAirDate?.ToUniversalTime();

            return(remoteResult);
        }
示例#25
0
        public void TestAccountGetRatedTv()
        {
            _config.Client.SetSessionInformation(_config.UserSessionId, SessionType.UserSession);
            TestHelpers.SearchPages(i => _config.Client.AccountGetRatedTvShows(i));
            SearchTv tvShow = _config.Client.AccountGetRatedTvShows().Results[0];

            // Requires that you have rated at least one movie else this test will fail
            Assert.IsTrue(tvShow.Id > 0);
            Assert.IsNotNull(tvShow.Name);
            Assert.IsNotNull(tvShow.PosterPath);
            Assert.IsNotNull(tvShow.BackdropPath);
            Assert.IsNotNull(tvShow.OriginalName);
            Assert.IsNotNull(tvShow.FirstAirDate);
            Assert.IsTrue(tvShow.VoteCount > 0);
            Assert.IsTrue(tvShow.VoteAverage > 0);
            Assert.IsTrue(tvShow.Popularity > 0);
        }
        public void SearchBaseConverter_Tv()
        {
            JsonSerializerSettings settings = new JsonSerializerSettings();

            settings.Converters.Add(new SearchBaseConverter());

            SearchTv original = new SearchTv();

            original.OriginalName = "Hello world";

            string   json   = JsonConvert.SerializeObject(original, settings);
            SearchTv result = JsonConvert.DeserializeObject <SearchBase>(json, settings) as SearchTv;

            Assert.NotNull(result);
            Assert.Equal(original.MediaType, result.MediaType);
            Assert.Equal(original.OriginalName, result.OriginalName);
        }
        public async Task SearchBaseConverter_Tv()
        {
            SearchTv original = new SearchTv();

            original.OriginalName = "Hello world";

            string   json   = Serializer.SerializeToString(original);
            SearchTv result = Serializer.DeserializeFromString <SearchBase>(json) as SearchTv;

            Assert.Equal(original.MediaType, result.MediaType);
            Assert.Equal(original.OriginalName, result.OriginalName);
            await Verify(new
            {
                json,
                result
            });
        }
 public static Show ToShow(this SearchTv tv)
 {
     return(new Show(Utility.ToSlug(tv.Name),
                     tv.Name,
                     null,
                     null,
                     tv.Overview,
                     null,
                     Status.Finished,
                     tv.FirstAirDate?.Year,
                     null,
                     tv.PosterPath != null ? "https://image.tmdb.org/t/p/original" + tv.PosterPath : null,
                     null,
                     tv.BackdropPath != null ? "https://image.tmdb.org/t/p/original" + tv.BackdropPath : null,
                     null)
     {
         IsMovie = false
     });
 }
示例#29
0
        public async Task <ResultDto> AddTvShowAsync(SearchTv tvShow, int id)
        {
            var tmdbClient = new TMDbClient(_tmdbKey);
            var showDate   = Convert.ToDateTime(tvShow.FirstAirDate);

            var seasons = new List <TcRequestSeason>();

            foreach (var s in (await tmdbClient.GetTvShowAsync(tvShow.Id)).Seasons)
            {
                seasons.Add(new TcRequestSeason {
                    SeasonNumber = s.SeasonNumber.ToString(), Monitored = true
                });
            }

            var requestObj = new TcRequest
            {
                TvShowId         = (await tmdbClient.GetTvShowExternalIdsAsync(tvShow.Id)).TvdbId,
                Title            = tvShow.Name,
                QualityProfileId = 0,
                ProfileId        = "6",
                TitleSlug        = GenerateTitleSlug(tvShow.Name, showDate),
                Monitored        = true,
                Seasons          = seasons
            };

            var response = await _tvShowClient.AddTvShowAsync(requestObj);

            if (response.status)
            {
                await LogContentAdditionAsync(tvShow.Name, id, ContentType.TvShow, Convert.ToInt32(requestObj.TvShowId), response.systemId);

                return(GenerateResultDto("Tv Show Added Successfully",
                                         "The Movie has been added 🤩\nYou can track the progress under your account content tab.",
                                         ResultDtoStatus.Successful));
            }
            else
            {
                return(GenerateResultDto("Failed At adding Tv Show",
                                         "Something went wrong 😵\nTry again later!",
                                         ResultDtoStatus.Unsuccessful));
            }
        }
        public SuggestionTorrentDTO MapSingleSearchTvToSuggestionTorrentDTO(SearchTv suggestionTorrent)
        {
            var torrentList =
                new SuggestionTorrentDTO
            {
                Id                = suggestionTorrent.Id,
                Media_type        = suggestionTorrent.MediaType.ToString(),
                Original_language = suggestionTorrent.OriginalLanguage,
                Overview          = suggestionTorrent.Overview,
                Poster_path       = Constants.PosterUrl + suggestionTorrent.PosterPath,
                Release_date      = suggestionTorrent.FirstAirDate,
                Title             = suggestionTorrent.Name,
                Vote_average      = suggestionTorrent.VoteAverage,
                Vote_count        = suggestionTorrent.VoteCount,
                Popularity        = suggestionTorrent.Popularity,
                Backdrop_path     = Constants.PosterUrl + suggestionTorrent.BackdropPath
            };

            return(torrentList);
        }