Exemple #1
0
 public void ImdbWithSeriesTest()
 {
     //Walking Dead: tt1520211
     //Game Of Thrones: tt0944947
     var scrapper = new ImdbScrapper(_xPathRepository);
     var movie    = scrapper.GetMovie("tt0944947");
 }
Exemple #2
0
 public void ImdbNormalLayout()
 {
     //Spiderman: tt0468569
     //Dial M For Murder (old movie): tt0046912
     var scrapper = new ImdbScrapper(_xPathRepository);
     var movie    = scrapper.GetMovie("tt0381838");
 }
Exemple #3
0
 public void ImdbWithPosterTest()
 {
     //Spiderman: tt0145487
     //Inception: tt1375666
     var scrapper = new ImdbScrapper(_xPathRepository);
     var movie    = scrapper.GetMovie("tt0046912");
 }
        public ActionResult SearchImdbTitle(string key)
        {
            var scrapper = new ImdbScrapper(_movieXPathRepository);
            var movies   = scrapper.SearchMovieByTitle(key);

            return(View(movies));
        }
        public JsonResult GetHdImage(string url, string imdbId)
        {
            var scrapper = new ImdbScrapper(_movieXPathRepository);
            var hdUrl    = scrapper.GetHdImage(url, imdbId);

            return(Json(hdUrl));
        }
Exemple #6
0
 public MovieBase()
 {
     _databaseFactory      = new DatabaseFactory(new MovieContext());
     _unitOfWork           = new UnitOfWork(_databaseFactory);
     _movieXPathRepository = new MovieXPathRepository(_databaseFactory, null);
     _movieRepository      = new MovieRepository(_databaseFactory);
     _imdbScrapper         = new ImdbScrapper(_movieXPathRepository);
 }
        public void Process()
        {
            var movieInfoDirectoryPath    = ConfigurationManager.AppSettings["MovieInfoDownloadedPath"];
            var movieRemarksDirectoryPath = ConfigurationManager.AppSettings["MovieRemarksDownloadedPath"];
            var downloadMovieInfo         = Convert.ToBoolean(ConfigurationManager.AppSettings["DownloadMovieInfo"]);
            var downloadMovieRemarks      = Convert.ToBoolean(ConfigurationManager.AppSettings["DownloadMovieRemarks"]);

            if (!Directory.Exists(movieInfoDirectoryPath))
            {
                Directory.CreateDirectory(movieInfoDirectoryPath);
            }

            var dirMovieInfo        = new DirectoryInfo(movieInfoDirectoryPath);
            var dirMovieRemarks     = new DirectoryInfo(movieRemarksDirectoryPath);
            var downloadedMovieInfo = downloadMovieInfo ? dirMovieInfo.GetFiles().Select(fileInfo => fileInfo.Name).ToList() : new List <string>();
            var downloadedRemarks   = downloadMovieRemarks ? dirMovieRemarks.GetFiles().Select(fileInfo => fileInfo.Name).ToList() : new List <string>();

            var scrapper = new ImdbScrapper(_movieXPathRepository);
            var movies   = _movieRepository.GetAll().Where(x => String.IsNullOrEmpty(x.Poster)).OrderBy(x => x.Title).Take(250).ToList();

            foreach (var movie in movies)
            {
                if (downloadMovieInfo && !downloadedMovieInfo.Contains(movie.ImdbId))
                {
                    try
                    {
                        Console.WriteLine("*****Downloading {0}.  {1}/{2}", movie.ImdbId, downloadedMovieInfo.Count, movies.Count);
                        var document = _imdbScrapper.GetMovieDocument(movie.ImdbId);
                        var fullPath = String.Format("{0}/{1}.txt", movieInfoDirectoryPath, movie.ImdbId);
                        using (var outputFile = new StreamWriter(fullPath))
                        {
                            outputFile.WriteLine(document);
                        }

                        downloadedMovieInfo.Add(movie.ImdbId);
                        Console.WriteLine("*****Movie {0} has been successfully downloaded", movie.ImdbId);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("Error downloading movie {0}\n{1}", movie.ImdbId, ex.Message);
                        Console.WriteLine("*****");
                    }
                }

                if (downloadMovieRemarks && !downloadedRemarks.Contains(movie.ImdbId))
                {
                    //download from rotten tomato
                    //save

                    downloadedRemarks.Add(movie.ImdbId);
                }
            }
        }
        public Movie Get(string imdbId)
        {
            var movie = _movieRepository.GetByImdbId(imdbId);

            //Get from IMDB website
            if (movie == null)
            {
                var scrapper = new ImdbScrapper(_movieXPathRepository);
                movie = scrapper.GetMovie(imdbId);
            }

            return(movie);
        }
Exemple #9
0
        public void UpdateMoviesFromFiles()
        {
            //get the imdbids from the files
            string documentPath = String.Format("{0}/Documents", Environment.CurrentDirectory);
            var    dirInfo      = new DirectoryInfo(documentPath);
            var    scrapper     = new ImdbScrapper(_xPathRepository);

            foreach (var fileInfo in dirInfo.GetFiles("*.txt"))
            {
                var updatedMovie = scrapper.LoadMovieFromFile(fileInfo.FullName);
                var movie        = _movieRepository.GetByImdbId(fileInfo.Name);

                UpdateMovie(movie, updatedMovie);
                _unitOfWork.Commit();
            }
            //update the data
        }
Exemple #10
0
        public void UpdateNotUpdatedMovies()
        {
            var scrapper       = new ImdbScrapper(_xPathRepository);
            var toUpdateMovies = _movieRepository.GetAll().Where(x => String.IsNullOrEmpty(x.Poster) && String.IsNullOrEmpty(x.Writers)).OrderBy(x => x.Title).Take(529).ToList();

            foreach (var movie in toUpdateMovies)
            {
                string xmlDocument;
                var    updatedMovie = scrapper.GetMovie(movie.ImdbId, out xmlDocument);
                UpdateMovie(movie, updatedMovie);
                var documentPath = String.Format("{0}/Documents", Environment.CurrentDirectory);
                var imagePath    = String.Format("{0}/Images", Environment.CurrentDirectory);
                if (!Directory.Exists(imagePath))
                {
                    Directory.CreateDirectory(imagePath);
                }

                if (!Directory.Exists(documentPath))
                {
                    Directory.CreateDirectory(documentPath);
                }

                var uploadPath       = String.Format("/Resources/images/{0}.jpg", movie.ImdbId);
                var documentFullPath = String.Format("{0}/{1}.txt", documentPath, movie.ImdbId);
                var fullPath         = String.Format("{0}/{1}.jpg", imagePath, movie.ImdbId);

                if (!String.IsNullOrEmpty(updatedMovie.Poster))
                {
                    using (var client = new WebClient())
                    {
                        client.DownloadFile(updatedMovie.Poster, fullPath);
                        movie.Poster = uploadPath;
                    }
                }

                using (var file = new StreamWriter(documentFullPath))
                {
                    file.WriteLine(xmlDocument);
                }

                _unitOfWork.Commit();
            }
        }
        public ActionResult Search(string key)
        {
            Movie movie;

            key = key.Trim();
            if (key.IsIMDB() || key.IsIMDBUrl())
            {
                if (key.IsIMDBUrl())
                {
                    key = ImdbHelper.GetImdbId(key);
                }

                //search for local record
                movie = _movieRepository.GetByImdbId(key);
                if (movie == null)
                {
                    var scrapper = new ImdbScrapper(_movieXPathRepository);
                    //movie = scrapper.LoadMovieFromFile("C:/GOT.txt");
                    movie = scrapper.GetMovie(key);
                }
            }
            else
            {
                movie = _movieRepository.GetByMovieName(key);
                if (movie == null)
                {
                    movie = _movieRepository.GetMovieByAKA(key);
                }
                if (movie == null)
                {
                    movie = new Movie();
                    TempData["NoSearchResult"] = true;
                }
            }

            ViewBag.Search = key;
            var viewModel = movie.MapItem <MovieViewModel>();

            return(View("Index", viewModel));
        }
        public ActionResult MovieUpdate(int id)
        {
            var viewModel = new MovieViewModel();

            if (id > 0)
            {
                var movie         = _movieRepository.GetById(id);
                var scrapper      = new ImdbScrapper(_movieXPathRepository);
                var scrappedMovie = scrapper.GetMovie(movie.ImdbId);

                viewModel             = scrappedMovie.MapItem <MovieViewModel>();
                viewModel.DateCreated = movie.DateCreated;
                viewModel.FileName    = movie.FileName;
                viewModel.Location    = movie.Location;
                viewModel.FileSize    = movie.FileSize;
                viewModel.Remarks     = movie.Remarks;
                viewModel.MovieId     = movie.MovieId;
                viewModel.UpdateImage = true;
            }

            return(View("Index", viewModel));
        }
Exemple #13
0
 public void FilipinoMoviesTest()
 {
     //Ang tanging ina: tt0368323
     var scrapper = new ImdbScrapper(_xPathRepository);
     var movie    = scrapper.GetMovie("tt0368323");
 }
Exemple #14
0
 public void LoadMovieFromFile()
 {
     var scrapper = new ImdbScrapper(_xPathRepository);
     var movie    = scrapper.LoadMovieFromFile(@"C:\tt1038988.txt");
 }
Exemple #15
0
 public void SearchImdbMovieByTitle()
 {
     var key      = "Edge of Tomorrow";
     var scrapper = new ImdbScrapper(_xPathRepository);
     var movies   = scrapper.SearchMovieByTitle(key);
 }