public void SetUp() { Subject.Settings = new NewznabSettings() { BaseUrl = "http://127.0.0.1:1234/", Categories = new[] { 1, 2 }, ApiKey = "abcd", }; _movieSearchCriteria = new MovieSearchCriteria { Movie = new Movies.Movie { ImdbId = "tt0076759", Title = "Star Wars", Year = 1977, TmdbId = 11 }, SceneTitles = new List <string> { "Star Wars" } }; _capabilities = new NewznabCapabilities(); Mocker.GetMock <INewznabCapabilitiesProvider>() .Setup(v => v.GetCapabilities(It.IsAny <NewznabSettings>())) .Returns(_capabilities); }
public void SetUp() { Subject.Settings = new NewznabSettings() { BaseUrl = "http://127.0.0.1:1234/", ApiKey = "abcd", }; _movieSearchCriteria = new MovieSearchCriteria { SearchTerm = "Star Wars", Categories = new int[] { 2000 } }; _tvSearchCriteria = new TvSearchCriteria { SearchTerm = "Star Wars", Categories = new int[] { 5000 }, Season = 0 }; _capabilities = new IndexerCapabilities(); Mocker.GetMock <INewznabCapabilitiesProvider>() .Setup(v => v.GetCapabilities(It.IsAny <NewznabSettings>(), It.IsAny <IndexerDefinition>())) .Returns(_capabilities); }
public void Setup() { Subject.Settings = new HDBitsSettings() { ApiKey = "abcd", Username = "******" }; Subject.Capabilities = new IndexerCapabilities { TvSearchParams = new List <TvSearchParam> { TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.TvdbId }, MovieSearchParams = new List <MovieSearchParam> { MovieSearchParam.Q, MovieSearchParam.ImdbId }, }; Subject.Capabilities.Categories.AddCategoryMapping(6, NewznabStandardCategory.Audio, "Audio Track"); Subject.Capabilities.Categories.AddCategoryMapping(3, NewznabStandardCategory.TVDocumentary, "Documentary"); Subject.Capabilities.Categories.AddCategoryMapping(8, NewznabStandardCategory.Other, "Misc/Demo"); Subject.Capabilities.Categories.AddCategoryMapping(1, NewznabStandardCategory.Movies, "Movie"); Subject.Capabilities.Categories.AddCategoryMapping(4, NewznabStandardCategory.Audio, "Music"); Subject.Capabilities.Categories.AddCategoryMapping(5, NewznabStandardCategory.TVSport, "Sport"); Subject.Capabilities.Categories.AddCategoryMapping(2, NewznabStandardCategory.TV, "TV"); Subject.Capabilities.Categories.AddCategoryMapping(7, NewznabStandardCategory.XXX, "XXX"); _movieSearchCriteria = new MovieSearchCriteria { Categories = new int[] { 2000, 2010 }, ImdbId = "0076759" }; }
public virtual IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria searchCriteria) { var pageableRequests = new IndexerPageableRequestChain(); var query = new TorrentQuery(); var imdbId = ParseUtil.GetImdbID(searchCriteria.ImdbId).GetValueOrDefault(0); if (searchCriteria.Categories?.Length > 0) { query.Category = Capabilities.Categories.MapTorznabCapsToTrackers(searchCriteria.Categories).Select(int.Parse).ToArray(); } if (imdbId == 0 && searchCriteria.SearchTerm.IsNotNullOrWhiteSpace()) { query.Search = searchCriteria.SanitizedSearchTerm; } if (imdbId != 0) { query.ImdbInfo = query.ImdbInfo ?? new ImdbInfo(); query.ImdbInfo.Id = imdbId; } pageableRequests.Add(GetRequest(query)); return(pageableRequests); }
public async Task <List <Movie> > SearchMoviesAsync(MovieSearchCriteria movieSearchCritera) { IQueryable <Repo.Movie> query = _context.MovieDbSet .OrderBy(m => m.Title); if (!string.IsNullOrWhiteSpace(movieSearchCritera.Title)) { query = query.Where(m => m.Title.Contains(movieSearchCritera.Title)); } if (movieSearchCritera.YearOfRelease > 0) { query = query.Where(m => m.YearOfRelease == movieSearchCritera.YearOfRelease); } if (movieSearchCritera.Genres != null && movieSearchCritera.Genres.Any()) { var genreList = movieSearchCritera.Genres.Cast <int>().ToList(); query = query.Where(m => genreList.Contains(m.GenreId)); } return(await query.Select(m => new Movie { AverageRating = m.AverageRating, Genre = (Genres)m.GenreId, Id = m.Id, RunningTime = m.RunningTime, Title = m.Title, YearOfRelease = m.YearOfRelease }) .ToListAsync()); }
private IEnumerable <IndexerRequest> GetMovieRequest(MovieSearchCriteria searchCriteria) { var requestBuilder = new HttpRequestBuilder(Settings.BaseUrl) .Resource("/pubapi_v2.php") .Accept(HttpAccept.Json); if (Settings.CaptchaToken.IsNotNullOrWhiteSpace()) { requestBuilder.UseSimplifiedUserAgent = true; requestBuilder.SetCookie("cf_clearance", Settings.CaptchaToken); } requestBuilder.AddQueryParam("mode", "search"); requestBuilder.AddQueryParam("search_imdb", searchCriteria.Movie.ImdbId); if (!Settings.RankedOnly) { requestBuilder.AddQueryParam("ranked", "0"); } requestBuilder.AddQueryParam("category", "movies"); requestBuilder.AddQueryParam("limit", "100"); requestBuilder.AddQueryParam("token", _tokenProvider.GetToken(Settings)); requestBuilder.AddQueryParam("format", "json_extended"); requestBuilder.AddQueryParam("app_id", "Bonarr"); yield return(new IndexerRequest(requestBuilder.Build())); }
protected static IEnumerable MixFilterData() { TestCaseData result; var filter = new MovieSearchCriteria { Genres = new List <Genres> { Genres.Action }, YearOfRelease = 1999 }; result = new TestCaseData(filter, 4); yield return(result); filter = new MovieSearchCriteria { Title = "test", YearOfRelease = 2000 }; result = new TestCaseData(filter, 2); yield return(result); filter = new MovieSearchCriteria { Title = "test", Genres = new List <Genres> { Genres.Horror } }; result = new TestCaseData(filter, 1); yield return(result); }
public void Search(MovieSearchCriteria criteria) { window.Get <TextBox>("nameTextbox").Text = criteria.Name; window.Get <TextBox>("directorTextbox").Text = criteria.Director; window.Get <Button>("search").Click(); window.Get <Button>("select").Click(); }
public IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria searchCriteria) { var pageableRequests = new IndexerPageableRequestChain(); if (!Settings.SearchByTitle && SupportsMovieSearch && searchCriteria.Movie.ImdbId.IsNotNullOrWhiteSpace()) { pageableRequests.Add(GetPagedRequests(MaxPages, Settings.Categories, "movie", $"&imdbid={searchCriteria.Movie.ImdbId.Substring(2)}")); } else { var altTitles = searchCriteria.Movie.AlternativeTitles.Take(5).Select(t => t.Title).ToList(); altTitles.Add(searchCriteria.Movie.Title); var realMaxPages = (int)MaxPages / (altTitles.Count()); //pageableRequests.Add(GetPagedRequests(MaxPages - (altTitles.Count() * realMaxPages), Settings.Categories, "search", $"&q={searchTitle}%20{searchCriteria.Movie.Year}")); //Also use alt titles for searching. foreach (String altTitle in altTitles) { var searchAltTitle = System.Web.HttpUtility.UrlPathEncode(Parser.Parser.ReplaceGermanUmlauts(Parser.Parser.NormalizeTitle(altTitle))); var queryString = $"&q={searchAltTitle}"; if (!Settings.RemoveYear) { queryString += $"%20{searchCriteria.Movie.Year}"; } pageableRequests.Add(GetPagedRequests(realMaxPages, Settings.Categories, "search", queryString)); } } return(pageableRequests); }
private IEnumerable <IndexerRequest> GetMovieRequest(MovieSearchCriteria searchCriteria) { var requestBuilder = new HttpRequestBuilder(Settings.BaseUrl) .Accept(HttpAccept.Json); requestBuilder.AddQueryParam("passkey", Settings.Passkey); if (!string.IsNullOrWhiteSpace(Settings.User)) { requestBuilder.AddQueryParam("user", Settings.User); } else { requestBuilder.AddQueryParam("user", ""); } if (searchCriteria.Movie.ImdbId.IsNotNullOrWhiteSpace()) { requestBuilder.AddQueryParam("imdbid", searchCriteria.Movie.ImdbId); } else { requestBuilder.AddQueryParam("search", $"{searchCriteria.Movie.Title} {searchCriteria.Movie.Year}"); } yield return(new IndexerRequest(requestBuilder.Build())); }
public IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria searchCriteria) { var pageableRequests = new IndexerPageableRequestChain(); pageableRequests.Add(GetPagedRequests(string.Format("{0}", searchCriteria.SanitizedSearchTerm), searchCriteria)); return(pageableRequests); }
public ISpecification <Movie> CreateSpecification(MovieSearchCriteria searchCriteria) { ISpecification <Movie> specification = new EmptySpecification <Movie>(); if (!string.IsNullOrEmpty(searchCriteria.Title)) { specification = specification.And(new TitleIncludesSpecification(searchCriteria.Title)); } if (searchCriteria.Genre.HasValue) { specification = specification.And(new GenreIsSpecification(searchCriteria.Genre)); } if (searchCriteria.MinYearOfRelease.HasValue || searchCriteria.MaxYearOfRelease.HasValue) { specification = specification.And(new YearOfReleaseBetweenSpecification(searchCriteria.MinYearOfRelease, searchCriteria.MaxYearOfRelease)); } if (searchCriteria.MinRunningTimeInMinutes.HasValue || searchCriteria.MaxRunningTimeInMinutes.HasValue) { specification = specification.And(new RunningTimeBetweenSpecification(searchCriteria.MinRunningTimeInMinutes, searchCriteria.MaxRunningTimeInMinutes)); } if (specification.GetType() == typeof(EmptySpecification <Movie>)) { throw new EmptySpecificationException("No filter criteria procided"); } return(specification); }
public ActionResult <List <DTO.Movie> > Get([FromQuery] MovieSearchCriteria sc) { if (!sc.IsValid()) { _logger.LogError("Bad request was recieved"); return(BadRequest($"Data provided was : {sc}")); } try { var results = _movieService.GetMatchingMovies(sc); if (!results.Any()) { return(NotFound(new ProblemDetails() { Detail = "No data found for search criteria {sc}" })); } return(Ok(_mapper.Map <List <DTO.Movie> >(results))); } catch (Exception ex) { return(ExceptionHandlingCode(ex)); } }
public IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria searchCriteria) { var pageableRequests = new IndexerPageableRequestChain(); pageableRequests.Add(GetMovieRequest(searchCriteria)); return(pageableRequests); }
public IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria searchCriteria) { var pageableRequests = new IndexerPageableRequestChain(); pageableRequests.Add(GetPagedRequests(string.Format("{0}", searchCriteria.SearchTerm), searchCriteria.Categories, searchCriteria.FullImdbId)); return(pageableRequests); }
public void OnGet([FromQuery] MovieSearchCriteria searchCriteria) { PageIndex = searchCriteria.PageIndex; PageSize = searchCriteria.PageSize; MovieName = searchCriteria.MovieName; Movies = _movieService.SearchMovies(searchCriteria); }
public IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria searchCriteria) { var pageableRequests = new IndexerPageableRequestChain(); AddMovieIdPageableRequests(pageableRequests, MaxPages, Settings.Categories, searchCriteria); return(pageableRequests); }
public IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria searchCriteria) { var pageableRequests = new IndexerPageableRequestChain(); pageableRequests.Add(GetPagedRequests(string.Format("{0}", searchCriteria.SanitizedSearchTerm), searchCriteria.Categories, searchCriteria.FullImdbId, searchCriteria.TmdbId.GetValueOrDefault(0))); return(pageableRequests); }
public void Setup() { _movie = Builder <Movie> .CreateNew() .With(m => m.Title = "Fack Ju Göthe 2") .With(m => m.CleanTitle = "fackjugoethe2") .With(m => m.Year = 2015) .With(m => m.AlternativeTitles = new LazyList <AlternativeTitle>(new List <AlternativeTitle> { new AlternativeTitle("Fack Ju Göthe 2: Same same") })) .Build(); _parsedMovieInfo = new ParsedMovieInfo { MovieTitle = _movie.Title, Year = _movie.Year, }; _wrongYearInfo = new ParsedMovieInfo { MovieTitle = _movie.Title, Year = 1900, }; _wrongTitleInfo = new ParsedMovieInfo { MovieTitle = "Other Title", Year = 2015 }; _alternativeTitleInfo = new ParsedMovieInfo { MovieTitle = _movie.AlternativeTitles.First().Title, Year = _movie.Year, }; _romanTitleInfo = new ParsedMovieInfo { MovieTitle = "Fack Ju Göthe II", Year = _movie.Year, }; _umlautInfo = new ParsedMovieInfo { MovieTitle = "Fack Ju Goethe 2", Year = _movie.Year }; _umlautAltInfo = new ParsedMovieInfo { MovieTitle = "Fack Ju Goethe 2: Same same", Year = _movie.Year }; _movieSearchCriteria = new MovieSearchCriteria { Movie = _movie }; }
public void SetUp() { UseRealHttp(); _singleSearchCriteria = new MovieSearchCriteria() { SearchTerm = "Person of Interest", }; }
public override Task <IndexerPageableQueryResult> Fetch(MovieSearchCriteria searchCriteria) { if (!SupportsSearch) { return(Task.FromResult(new IndexerPageableQueryResult())); } return(FetchReleases(g => SetCookieFunctions(g).GetSearchRequests(searchCriteria))); }
public override IList <ReleaseInfo> Fetch(MovieSearchCriteria searchCriteria) { if (!SupportsSearch) { return(new List <ReleaseInfo>()); } return(FetchReleases(g => g.GetSearchRequests(searchCriteria))); }
public IEnumerable <Movie> Find(MovieSearchCriteria searchCriteria, int limit) { IEnumerable <Movie> movies = _repository.Find( filter: _movieSpecificationFactory.CreateSpecification(searchCriteria), orderBy: r => r.OrderBy(m => m.Title), limit: limit ); return(movies); }
public ActionResult <IEnumerable <MovieViewModel> > Find([FromQuery] MovieSearchCriteria searchCriteria, int limit = 5) { IList <Movie> movies = _movieService.Find(searchCriteria, limit).ToList(); if (!movies.Any()) { return(NotFound("No movie found")); } return(viewModel(movies)); }
public void SetUp() { UseRealHttp(); _singleSearchCriteria = new MovieSearchCriteria() { SceneTitles = new List <string> { "Person of Interest" }, }; }
public override IList <ReleaseInfo> Fetch(MovieSearchCriteria searchCriteria) { if (!SupportsSearch) { return(new List <ReleaseInfo>()); } var generator = GetRequestGenerator(); return(FetchReleases(generator.GetSearchRequests(searchCriteria))); }
public IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria searchCriteria) { var pageableRequests = new IndexerPageableRequestChain(); foreach (var queryTitle in searchCriteria.QueryTitles) { pageableRequests.Add(GetPagedRequests(MaxPages, PrepareQuery(string.Format("{0} {1}", queryTitle, searchCriteria.Movie.Year)))); } return(pageableRequests); }
public void Test_ReturnNonEmptySpecificationForNonEmptySearchCriteria() { MovieSearchCriteria searchCriteria = new MovieSearchCriteria() { Title = "godfather" }; ISpecification <Movie> specification = factory.CreateSpecification(searchCriteria); Assert.IsNotAssignableFrom <EmptySpecification <Movie> >(specification); }
public List <Dto.Movie> GetList(MovieSearchCriteria criteria, int page, int pageSize) { var criteriaEntity = new Framework.Model.Criteria.MovieSearchCriteria() { Name = criteria.Name }; var result = _movieRepository.GetList(criteriaEntity, page, pageSize); var entity = _mapper.Map <List <Entities.Movie>, List <Dto.Movie> >(result); return(entity); }
public virtual IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria searchCriteria) { var pageableRequests = new IndexerPageableRequestChain(); var query = new TorrentQuery(); if (TryAddSearchParameters(query, searchCriteria)) { pageableRequests.Add(GetRequest(query)); } return(pageableRequests); }