//za dohvat omdb podataka o filmu, ako se flag stavi na true, znači da se updatea postojeći film public Movie OMDbData(Movie movie, bool refresh = false) { OMDbClient omdb = new OMDbClient(true); try { Item omdbResult = omdb.GetItemByID(movie.IMDbId).Result; if (omdbResult.imdbID != null) { movie.Rated = omdbResult.Rated; movie.Awards = omdbResult.Awards; movie.Country = omdbResult.Country; movie.Language = omdbResult.Language; if (omdbResult.Metascore != "N/A") { movie.Metascore = Int32.Parse(omdbResult.Metascore); } if (omdbResult.tomatoFresh != "N/A") { movie.TomatoFresh = Int32.Parse(omdbResult.tomatoFresh); } if (omdbResult.tomatoRotten != "N/A") { movie.TomatoRotten = Int32.Parse(omdbResult.tomatoRotten); } if (omdbResult.tomatoRating != "N/A") { movie.TomatoRating = Decimal.Parse(omdbResult.tomatoRating); } if (omdbResult.tomatoReviews != "N/A") { movie.TomatoReviews = Int32.Parse(omdbResult.tomatoReviews); } if (omdbResult.tomatoUserMeter != "N/A") { movie.TomatoUserMeter = Int32.Parse(omdbResult.tomatoUserMeter); } if (omdbResult.tomatoUserRating != "N/A") { movie.TomatoUserRating = Decimal.Parse(omdbResult.tomatoUserRating); } if (omdbResult.tomatoUserReviews != "N/A") { movie.TomatoUserReviews = Int32.Parse(omdbResult.tomatoUserReviews); } if (refresh) { baza.updateMovie(movie); } } } catch { } return(movie); }
public IEnumerable <MovieSearchResult> Search(string query) { var client = new OMDbClient(false); var omdbResult = client.GetItemList(query).Result; var result = new List <MovieSearchResult>(); foreach (var si in omdbResult.Search) { result.Add(new MovieSearchResult { ID = si.imdbID, Title = si.Title, Year = int.Parse(si.Year) }); } return(result); }
public async Task OMDB(CommandContext ctx, [RemainingText] string query) { if (string.IsNullOrWhiteSpace(query)) { await BotServices.SendErrorEmbedAsync(ctx, ":warning: A search query is required!"); } else { var service = new BotServices(); var client = new OMDbClient(service.GetAPIToken("omdb"), true); var movie = await client.GetItemByTitle(query.Replace(" ", "+")); if (movie.Response == "False") { await BotServices.SendErrorEmbedAsync(ctx, ":mag: No results found!"); } else { await ctx.TriggerTypingAsync(); var output = new DiscordEmbedBuilder() .WithTitle(movie.Title) .WithDescription(movie.Plot.Length < 500 ? movie.Plot : movie.Plot.Take(500) + "...") .AddField("Released", movie.Released, true) .AddField("Runtime", movie.Runtime, true) .AddField("Genre", movie.Genre, true) .AddField("Country", movie.Country, true) .AddField("Box Office", movie.BoxOffice, true) .AddField("Production", movie.Production, true) .AddField("IMDB Rating", movie.imdbRating, true) .AddField("Metacritic", movie.Metascore, true) .AddField("Rotten Tomatoes", movie.tomatoRating, true) .AddField("Director", movie.Director, true) .AddField("Actors", movie.Actors, true) .WithColor(DiscordColor.Goldenrod); if (movie.Poster != "N/A") { output.WithImageUrl(movie.Poster); } if (movie.tomatoURL != "N/A") { output.WithUrl(movie.tomatoURL); } await ctx.RespondAsync(embed : output.Build()); } } }
public Movie FindById(string id) { var client = new OMDbClient(false); var omdbResult = client.GetItemByID(id).Result; if (omdbResult.imdbID == null) // not found { return(null); } float rating; if (!float.TryParse(omdbResult.imdbRating, NumberStyles.None, new CultureInfo("en-US"), out rating)) { rating = -1; } int year; if (!int.TryParse(omdbResult.Year, out year)) { year = 0; } DateTimeOffset released; if (!DateTimeOffset.TryParse(omdbResult.Released, new CultureInfo("en-US"), DateTimeStyles.None, out released)) { released = DateTimeOffset.MinValue; } var movie = new Movie { ID = omdbResult.imdbID, Title = omdbResult.Title, Plot = omdbResult.Plot, Director = omdbResult.Director, Actors = omdbResult.Actors, Genre = omdbResult.Genre, PosterUrl = omdbResult.Poster, Year = year == 0 ? (int?)null : year }; return(movie); }
public async Task <int> IMDB() { var IMDB = new TMDbClient("2c54085e8a7f520650d65cb78a48555a"); OMDbClient omdb = new OMDbClient(true); int counter = 0; List <BLL.Movie> rez = new List <BLL.Movie>(); // 54001 for (int j = 64852; j <= 624852; j += 100) { for (int i = j; i < j + 100; i++) { TMDbLib.Objects.Movies.Movie pom = new TMDbLib.Objects.Movies.Movie(); try { pom = await IMDB.GetMovieAsync(i, MovieMethods.Credits | MovieMethods.Similar | MovieMethods.Videos | MovieMethods.Reviews | MovieMethods.Keywords); if (pom.ImdbId != "" && pom.ImdbId != null && pom.ImdbId.Length > 0) { var newMovie = new BLL.Movie { IMDbId = pom.ImdbId, Id = pom.Id, Title = pom.Title, Runtime = pom.Runtime, Credits = pom.Credits, Genres = pom.Genres, Keywords = pom.Keywords, Overview = pom.Overview, Popularity = pom.Popularity, PosterPath = pom.PosterPath, ReleaseDate = pom.ReleaseDate, Reviews = pom.Reviews, Similar = pom.Similar, Status = pom.Status, Videos = pom.Videos, VoteAverage = pom.VoteAverage, VoteCount = pom.VoteCount }; newMovie = movieRepo.OMDbData(newMovie); newMovie = movieRepo.SubtitleData(newMovie); rez.Add(newMovie); } } catch { if (rez != null && rez.Count > 0) { baza.saveMovies(rez); rez = new List <BLL.Movie>(); } } } if (rez.Count > 0) { baza.saveMovies(rez); rez = new List <BLL.Movie>(); } counter = j; } return(counter); }
public BLL.MovieDetails AddToDbIfNotExist(FBMovie movie) { //Open connection to database: var db = MongoInstance.GetDatabase; //Initialize OMDb and OSDb clients: OMDbClient omdb = new OMDbClient(true); var osdb = Osdb.Login("eng", "FileBot"); //Prepare database collections: var movies = db.GetCollection <Item>("Movies"); var subtitles = db.GetCollection <Subtitle>("Subtitles"); //If movie is not in the database, add it and the subtitles Item dbMovie = null; Subtitle dbSubtitle = null; var mquery = movies.Find(p => p.Title == movie.Title); if (mquery.Count() > 0) { dbMovie = mquery.First(); var squery = subtitles.Find(p => p.MovieName == movie.Title); if (squery.Count() > 0) { dbSubtitle = squery.First(); } } if (dbMovie == null) { Item omdbResult = omdb.GetItemByTitle(movie.Title).Result; if (omdbResult != null) { movies.ReplaceOne(p => p.Title == omdbResult.Title, omdbResult, new UpdateOptions { IsUpsert = true }); dbMovie = omdbResult; var squery = subtitles.Find(p => p.MovieName == movie.Title); if (squery.Count() > 0) { dbSubtitle = squery.First(); } if (dbSubtitle == null) { var osdbResult = osdb.SearchSubtitlesFromQuery("eng", movie.Title); if (osdbResult.Count > 0) { subtitles.ReplaceOne(p => p.SubtitleId == osdbResult.First().SubtitleId, osdbResult.First(), new UpdateOptions { IsUpsert = true }); dbSubtitle = osdbResult.First(); } } } } Uri link = null; if (dbSubtitle != null) { link = dbSubtitle.SubTitleDownloadLink; } return(new BLL.MovieDetails { item = dbMovie, downloadLink = link }); }
public HomeController(ILogger <HomeController> logger, OMDbClient oMDbClient) { _logger = logger; _oMDbClient = oMDbClient; }