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 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 }); }