예제 #1
0
 public function getPossibleBookings($url, $movie)
 {
     $this->movie = $movie;
     $this->convertedDay = $this->convertDay();
     $this->convertedTime = $this->convertTime();
     $availableForBooking = array();
     try {
         $scraper = new \models\Scraper($url);
         $this->result = $scraper->scrape($url);
         $dom = $scraper->getDOMDocument($this->result);
         $checkDays = $dom->query('//p[@class="MsoNormal"]//input[@type="radio"]');
         foreach ($checkDays as $day) {
             $dayToCheckFor = $day->getAttribute("value")[0] . $day->getAttribute("value")[1];
             $startTime = mb_substr($day->getAttribute("value"), 3, 2);
             if ($dayToCheckFor == $this->convertedDay) {
                 if ($startTime >= $this->convertedTime + 2) {
                     $possibleObject = new \models\PossibleDate($this->movie->getDay(), $day->getAttribute("value"), $this->movie->getName());
                     array_push($availableForBooking, serialize($possibleObject));
                 }
             }
         }
     } catch (\Exception $e) {
         $e->getMessage();
     }
     return $availableForBooking;
 }
예제 #2
0
 /**
  * @param $url (passed in from StartController and generated i StartScraper)
  * @return array with possible movies that fits $daysToMeet
  * @throws Exception
  */
 public function getPossibleMovies($url)
 {
     try {
         $scraper = new \models\Scraper($url);
         $result = $scraper->scrape($url);
         $dom = $scraper->getDOMDocument($result);
     } catch (\Exception $e) {
         $e->getMessage();
     }
     $selectedDays = $this->getDayValue($dom);
     $selectedMovies = $this->getMovieValues($dom);
     $possibleMovies = $this->getMovies($url, $selectedDays, $selectedMovies);
     return $possibleMovies;
 }
예제 #3
0
 /**
  * called in $this->getCalendars()
  * @param $newUrl
  * @throws Exception
  */
 private function setCalendars($newUrl)
 {
     $newDay = new Day();
     try {
         $scraper = new \models\Scraper($newUrl);
         $result = $scraper->scrape($newUrl);
         $dom = $scraper->getDOMDocument($result);
     } catch (\Exception $e) {
         $e->getMessage();
     }
     $days = $dom->query('//table//thead//tr/th');
     $statuses = $dom->query('//table//tbody//tr/td');
     foreach ($days as $day) {
         $dayToUpper = strtoupper($day->nodeValue);
         foreach ($statuses as $status) {
             $statusToUpper = strtoupper($status->nodeValue);
             if ($statusToUpper == 'OK') {
                 $newDay->day = $dayToUpper;
                 $newDay->available = $statusToUpper;
             }
         }
     }
     array_push($this->days, $newDay);
 }
예제 #4
0
 private function getUrls($url)
 {
     try {
         $scraper = new \models\Scraper();
         $result = $scraper->scrape($url);
         $dom = $scraper->getDOMDocument($result);
     } catch (\Exception $e) {
         $e->getMessage();
     }
     $items = $dom->query('//ol//li/a');
     foreach ($items as $item) {
         $trimmed = trim($item->getAttribute('href'), " /");
         $newUrl = $url . $trimmed;
         if ($trimmed == 'calendar') {
             $this->calendarUrl = $newUrl;
         }
         if ($trimmed == 'cinema') {
             $this->movieUrl = $newUrl;
         }
         if ($trimmed == 'dinner') {
             $this->restaurantUrl = $newUrl;
         }
     }
 }