Esempio n. 1
0
        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());
                }
            }
        }
Esempio n. 2
0
        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
            });
        }