コード例 #1
0
        bool IScraperTown.HasChanged()
        {
            try
            {
                if (!Directory.Exists(PathProcessed))
                {
                    Directory.CreateDirectory(PathProcessed);
                    return(true);
                }

                var file = new CinevoFiles
                {
                    Scraper     = this,
                    OldFilePath = PathProcessed,
                    Path        = Path,
                    HasChanged  = false,
                    Type        = CinevoEnums.PageTypes.Town
                };

                file.MakeComparision();
                Console.WriteLine("CINEVO TOWN SCRAPPER: Has content changed? => " + file.HasChanged);
                HasChanged = file.HasChanged;
                return(HasChanged);
            }
            catch (Exception ex)
            {
                new Error().SendError(ex);
                return(false);
            }
        }
コード例 #2
0
 public void Shoud_delete_a_file()
 {
     CinevoFiles.DeleteAllFiles(path);
     string[] files = Directory.GetFiles(path);
     Assert.IsTrue(files.Length == 0);
     Directory.Delete(path);
 }
コード例 #3
0
ファイル: IndexScraper.cs プロジェクト: apkouk/vo-film-finder
        public void ScrapeHtml(string path)
        {
            JsonContent = "NO CONTENT";
            var    addLine             = false;
            string getLastHtmlFullName = CinevoFiles.GetLastHtmlPath(path);

            if (getLastHtmlFullName != null && !getLastHtmlFullName.Equals(string.Empty))
            {
                Cinemas = new List <Cinema>();
                var linesPerCinema = new ArrayList();
                var fileReader     = new StreamReader(getLastHtmlFullName);

                string line;
                var    counter     = 0;
                var    cinemaAdded = 2;

                while ((line = fileReader.ReadLine()) != null)
                {
                    if (line.Contains("<!-- /listado CINES -->"))
                    {
                        break;
                    }

                    if (!line.Trim().Equals(string.Empty) && line.Trim().Length > 20)
                    {
                        if (line.Contains("col-xs-12 col-sm-6 col-md-6 info-cine"))
                        {
                            addLine = true;
                            counter++;
                        }

                        if (addLine)
                        {
                            if (counter - cinemaAdded == 0)
                            {
                                Cinema cinema = ConvertToObject(linesPerCinema);
                                if (cinema.Name != null)
                                {
                                    Cinemas.Add(cinema);
                                }
                                counter     = 0;
                                cinemaAdded = 1;
                                linesPerCinema.Clear();
                                linesPerCinema.Add(line);
                            }
                            else
                            {
                                linesPerCinema.Add(line);
                            }
                        }
                    }
                }

                fileReader.Close();
                fileReader.Dispose();
                JsonContent = JsonConvert.SerializeObject(Cinemas).Trim().TrimEnd().TrimStart();
            }
        }
コード例 #4
0
 public void GetHtmlFromUrl()
 {
     try
     {
         if (ForceRequest)
         {
             HtmlContent = CinevoRequests.GetContent(Url).Trim().TrimEnd().TrimStart();
             CinevoFiles.SaveToFile(Path, CinevoEnums.PageTypes.Town.ToString(), "html", HtmlContent);
         }
     }
     catch (Exception ex)
     {
         new Error().SendError(ex);
     }
 }
コード例 #5
0
 public void GetHtmlFromUrl()
 {
     try
     {
         if (ForceRequest)
         {
             HtmlContent = CinevoRequests.GetContent(Cinema.Url).Trim().TrimEnd().TrimStart();
             CinevoFiles.SaveToFile(Path, Cinema.Tag, "html", HtmlContent);
         }
         ScrapeHtml(Path);
     }
     catch (Exception ex)
     {
         new Error().SendError(ex);
     }
 }
コード例 #6
0
ファイル: IndexScraper.cs プロジェクト: apkouk/vo-film-finder
        public void GetHtmlFromUrl()
        {
            try
            {
                if (ForceRequest)
                {
                    HtmlContent = CinevoRequests.GetContent(Url).Trim().TrimEnd().TrimStart();
                    CinevoFiles.SaveToFile(Path, CinevoEnums.PageTypes.CinemasIndex.ToString(), "html", HtmlContent);
                }

                Console.WriteLine("Scraping cinemas index");
                Console.WriteLine("----\n");
                ScrapeHtml(Path);
            }
            catch (Exception ex)
            {
                new Error().SendError(ex);
            }
        }
コード例 #7
0
        public void ScrapeHtml(string path)
        {
            JsonContent = "NO CONTENT";
            var    addLine             = false;
            string getLastHtmlFullName = CinevoFiles.GetLastHtmlPath(path);

            if (getLastHtmlFullName != null && !getLastHtmlFullName.Equals(string.Empty))
            {
                Towns = new List <Town>();
                var fileReader = new StreamReader(getLastHtmlFullName);

                string line;
                while ((line = fileReader.ReadLine()) != null)
                {
                    if (line.Contains("</select>"))
                    {
                        break;
                    }

                    if (line.Contains("id=\"dropdown-listado-poblacion\" class=\"form-control\""))
                    {
                        addLine = true;
                    }

                    if (addLine)
                    {
                        if (line.Contains("data-name"))
                        {
                            Towns.Add(ConvertToObject(line));
                        }
                    }
                }

                fileReader.Close();
                fileReader.Dispose();
            }
            JsonContent = JsonConvert.SerializeObject(Towns).Trim().TrimEnd().TrimStart();
            Console.WriteLine("CINEVO TOWN SCRAPPER: JsconContent added...");
        }
コード例 #8
0
ファイル: FilmScraper.cs プロジェクト: apkouk/vo-film-finder
        public void GetHtmlFromUrl()
        {
            try
            {
                if (ForceRequest && Film.IsOriginalVersion)
                {
                    if (!Directory.Exists(Path))
                    {
                        Directory.CreateDirectory(Path);
                    }

                    if (new DirectoryInfo(Path).GetFiles().Where(x => x.FullName.Contains(Film.Tag)).ToList().Count == 0)
                    {
                        HtmlContent = CinevoRequests.GetContent(Film.FilmUrl).Trim().TrimEnd().TrimStart();
                        CinevoFiles.SaveToFile(Path, Film.Tag, "html", HtmlContent);
                    }
                }
                ScrapeFilm();
            }
            catch (Exception ex)
            {
                new Error().SendError(ex);
            }
        }
コード例 #9
0
 public void Shoud_save_a_file()
 {
     CinevoFiles.SaveToFile(path, CinevoEnums.PageTypes.Town.ToString(), extension, content);
     Assert.IsTrue(Directory.GetFiles(path)[0].Contains(CinevoEnums.PageTypes.Town.ToString()));
 }