Exemplo n.º 1
0
        //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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
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());
                }
            }
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
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
            });
        }
Exemplo n.º 7
0
 public HomeController(ILogger <HomeController> logger, OMDbClient oMDbClient)
 {
     _logger     = logger;
     _oMDbClient = oMDbClient;
 }