public byte[] GetMovieCover(MovieDbMovie movieDto) { if (string.IsNullOrEmpty(movieDto.CoverUri)) { return(null); } string url = $"https://image.tmdb.org/t/p/w500/{movieDto.CoverUri}"; HttpWebRequest webRequest; WebResponse webResponse = null; LogManager.GetCurrentClassLogger().Info($"Getting cover from MovieDb for '{movieDto.Title}'..."); try { webRequest = (HttpWebRequest)HttpWebRequest.Create(url); webRequest.AllowWriteStreamBuffering = true; webRequest.Timeout = 30000; webResponse = webRequest.GetResponse(); Stream stream = webResponse.GetResponseStream(); return(Utils.GetImageBytes(stream)); } catch (Exception ex) { LogManager.GetCurrentClassLogger().Error(ex); } finally { webResponse?.Close(); LogManager.GetCurrentClassLogger().Info($"Finished getting cover from MovieDb for '{movieDto.Title}'..."); } return(null); }
public async Task FillMovieDetails(MovieDbMovie movieDto) { string url = $"https://api.themoviedb.org/3/movie/{movieDto.ProviderMovieId}"; var client = new RestClient(url); var request = new RestRequest(Method.GET); request.AddParameter("api_key", Settings.MovieDb_ApiKey); request.AddParameter("language", Settings.MovieDb_Language); LogManager.GetCurrentClassLogger().Info($"Searching MovieDb for details on '{movieDto.Title}'..."); try { IRestResponse <MovieDbDetails> details = await client.ExecuteAsync <MovieDbDetails>(request); if (details.Data != null) { movieDto.Runtime = details.Data.runtime; movieDto.Homepage = details.Data.homepage; } LogManager.GetCurrentClassLogger().Info($"Finished searching MovieDb for details on '{movieDto.Title}'..."); } catch (Exception ex) { LogManager.GetCurrentClassLogger().Error(ex); throw; } }
private async Task ApplyMovieSelection(MovieDbMovie movieDto) { Movie = await MovieService.ApplyDtoData(Movie, movieDto); OnMovieChanged?.Invoke(this, Movie); RaisePropertyChanged(nameof(Movie)); RaisePropertyChanged(nameof(Genres)); }
public async Task <Movie> ApplyDtoData(Movie movie, MovieDbMovie movieDto) { movie.Title = movieDto.Title; movie.Description = movieDto.Overview; movie.ReleaseDate = movieDto.ReleaseDate; movie.LastSeen = MoviekusDefines.MinDate; movie.Rating = 0; movie.Runtime = movieDto.Runtime; movie.Cover = movieDto.Cover; movie.Homepage = movieDto.Homepage; movie.Trailer = movieDto.TrailerUrl; movie.MovieGenres = await AddMovieGenres(movie, movieDto.Genres); return(movie); }
public async Task FillMovieTrailer(MovieDbMovie movieDto) { string url = $"https://api.themoviedb.org/3/movie/{movieDto.ProviderMovieId}/videos"; var client = new RestClient(url); var request = new RestRequest(Method.GET); request.AddParameter("api_key", Settings.MovieDb_ApiKey); LogManager.GetCurrentClassLogger().Info($"Searching MovieDb for trailer on '{movieDto.Title}'..."); try { IRestResponse <MovieDbVideos> details = await client.ExecuteAsync <MovieDbVideos>(request); string trailerKey = string.Empty; if (details.Data != null) { // Gibt es deutsche YouTube-Videos, nehmen wir das größte deutsche, sonst das größte englische, sonst gar nichts if (details.Data.results.Any(d => d.iso_639_1 == "de")) { trailerKey = details.Data.results.Where(d => d.site == "YouTube" && d.iso_639_1 == "de").OrderByDescending(r => r.size).First().key; } else if (details.Data.results.Any(d => d.iso_639_1 == "en")) { trailerKey = details.Data.results.Where(d => d.site == "YouTube" && d.iso_639_1 == "en").OrderByDescending(r => r.size).First().key; } if (!string.IsNullOrEmpty(trailerKey)) { movieDto.TrailerUrl = $"https://www.youtube.com/watch?v={trailerKey}"; } } LogManager.GetCurrentClassLogger().Info($"Finished searching MovieDb for trailer on '{movieDto.Title}'."); } catch (Exception ex) { LogManager.GetCurrentClassLogger().Error(ex); throw; } }
private MovieDbMovie BuildMovieDto(MovieDbDetails movieDbDetails) { MovieDbMovie movieDto = new MovieDbMovie() { ProviderMovieId = movieDbDetails.id, Overview = movieDbDetails.overview, Title = movieDbDetails.title, ReleaseDate = movieDbDetails.release_date, CoverUri = movieDbDetails.poster_path, Runtime = movieDbDetails.runtime, Homepage = movieDbDetails.homepage }; foreach (var genre in movieDbDetails.Genres) { movieDto.Genres.Add(genre.name); } return(movieDto); }
private MovieDbMovie BuildMovieDto(MovieDbResult movieDbResult, MovieDbGenres movieDbGenres) { MovieDbMovie movieDto = new MovieDbMovie() { ProviderMovieId = movieDbResult.id, Overview = movieDbResult.overview, Title = movieDbResult.title, ReleaseDate = movieDbResult.release_date, CoverUri = movieDbResult.poster_path }; foreach (string genreId in movieDbResult.genre_ids) { var genre = movieDbGenres.genres.Where(g => g.id == genreId).FirstOrDefault(); if (genre != null) { movieDto.Genres.Add(genre.name); } } return(movieDto); }