Exemplo n.º 1
0
    def __derive_flight(self, flight, leg):
        flight_item = FlightItem()
        flight_item["leg"] = leg
        flight_item["airline"] = flight.xpath("./td/img/@alt").extract_first()
        flight_item["flight_no"] = flight.xpath(
            "./td[@class='flight']/text()").extract_first()
        flight_actual_time = flight.xpath(
            "./td[@style='line-height: normal;']/text()").extract()[1]
        flight_item["expected_time"] = self.date + datetime.strftime(
            datetime.strptime(flight_actual_time.strip(), "%I:%M %p"),
            "T%H:%M:%SZ")
        flight_status_time = flight.xpath("./td/em/text()").extract()
        if flight_status_time is None:
            flight_item["actual_time"] = flight_item["expected_time"]
        else:
            if len(flight_status_time) == 0:
                flight_item["actual_time"] = flight_item["expected_time"]
            else:
                flight_item["actual_time"] = self.date + datetime.strftime(
                    datetime.strptime(flight_status_time[1].strip(),
                                      "%I:%M %p"), "T%H:%M:%SZ")
        flight_item["status"] = flight.xpath("./td/em/text()").extract_first().strip() if flight.xpath("./td/em/text()").extract_first() is not None \
        else flight.xpath("./td[@class='status']/text()").extract_first()
        flight_item["terminal"] = AirportSpider.MAIN
        flight_item["gate"] = flight.xpath(
            "./td[@style='text-align: center;']/text()").extract_first()
        flight_item["city"] = flight.xpath(
            "./td[@class='city']/text()").extract_first()

        return flight_item
Exemplo n.º 2
0
 def __derive_flight(self, flight, leg):
     flight_data = flight.xpath("./td/text()").extract()
     flight_item = FlightItem()
     flight_item["leg"] = leg
     flight_item["airline"] = flight.xpath("./td/div/@class").extract_first()[len(YTZSpider.LOGO):]
     flight_item["flight_no"] = flight_data[2].strip()
     flight_item["city"] = flight_data[3].strip().upper()
     flight_item["expected_time"] = self.date + "T" + flight_data[4].strip() + AirportSpider.SECONDS_SUFFIX
     flight_item["actual_time"] = self.date + "T" + flight_data[5].strip() + AirportSpider.SECONDS_SUFFIX
     flight_item["status"] = flight_data[6].strip()
     flight_item["terminal"] = YTZSpider.MAIN
     flight_item["gate"] = AirportSpider.UNKNOWN
     return flight_item
Exemplo n.º 3
0
 def __derive_flight(self, flight, leg):
     flight_item = FlightItem()
     flight_info = flight.xpath("./td/text()").extract()
     flight_item["leg"] = leg
     flight_item["airline"] = flight_info[1]
     flight_item["flight_no"] = flight_info[0]
     flight_item["city"] = flight_info[2]
     flight_item["expected_time"] = flight_info[3]
     flight_item["actual_time"] = flight_info[4]
     flight_item["status"] = flight.xpath(
         "./td/span/text()").extract_first()
     flight_item["gate"] = AirportSpider.UNKNOWN
     return flight_item
Exemplo n.º 4
0
    def __derive_flight(self, flight, leg):
        flight_item = FlightItem()
        flight_item["leg"] = leg
        flight_item["airline"] = flight["FlightAirlineName"]
        flight_item["flight_no"] = flight["FlightNumber"]
        flight_item["expected_time"] = flight["FlightScheduledTime"]
        flight_item["actual_time"] = flight["FlightEstimatedTime"]
        flight_item["status"] = flight["FlightStatus"]
        flight_item["terminal"] = AirportSpider.MAIN
        flight_item["gate"] = flight["FlightGate"]
        flight_item["city"] = flight["FlightCity"]

        return flight_item
Exemplo n.º 5
0
 def __derive_flight(self, flight, leg):
     flight_item = FlightItem()
     flight_item["leg"] = leg
     flight_item["airline"] = flight[0].strip()
     flight_item["flight_no"] = flight[1].strip()
     flight_item["city"] = flight[2].strip()
     flight_item["expected_time"] = self.date + "T" + flight[3].strip(
     ).split()[2] + AirportSpider.SECONDS_SUFFIX
     flight_item["actual_time"] = self.date + "T" + flight[4].strip().split(
     )[2] + AirportSpider.SECONDS_SUFFIX
     flight_item["status"] = flight[5].strip()
     flight_item["terminal"] = flight[6].strip()
     flight_item["gate"] = flight[9].strip()
     return flight_item
Exemplo n.º 6
0
 def __derive_flight(self, flight, leg):
     flight_item = FlightItem()
     flight_item["leg"] = leg
     flight_info = flight.xpath("./td/text()").extract()
     flight_item["airline"] = flight_info[0]
     flight_item["flight_no"] = flight_info[1]
     flight_item["city"] = flight_info[4]
     flight_item["expected_time"] = self.date + "T" + flight_info[
         2] + AirportSpider.SECONDS_SUFFIX
     flight_item["actual_time"] = self.date + "T" + flight_info[
         3] + AirportSpider.SECONDS_SUFFIX
     flight_item["status"] = flight_info[5]
     flight_item["gate"] = AirportSpider.UNKNOWN
     flight_item["terminal"] = AirportSpider.MAIN
     return flight_item
Exemplo n.º 7
0
 def __derive_flight(self, flight, leg):
     flight_item = FlightItem()
     flight_item["leg"] = leg
     flight_item["airline"] = flight.xpath("./ul/li[@class='carrier']/a/span/span/text()").extract_first()
     airline_code = flight.xpath("./ul/li[@class='carrier']/a/span/i/@data-code").extract_first()
     flight_no = flight.xpath("./ul/li[@class='number']/span/text()").extract_first()
     flight_item["flight_no"] = airline_code + flight_no
     flight_item["city"] = flight.xpath("./ul/li[@class='location']/span/text()").extract_first()
     expected_time = flight.xpath("./ul/li[@class='expected-time']/span/text()").extract_first()
     flight_item["expected_time"] = self.date + "T" + expected_time + AirportSpider.SECONDS_SUFFIX
     actual_time = flight.xpath("./ul/li[@class='actual-time']/span/text()").extract_first()
     flight_item["actual_time"] = self.date + "T" + actual_time + AirportSpider.SECONDS_SUFFIX
     flight_item["status"] = flight.xpath("./ul/li[@class='status']/span/text()").extract_first()
     flight_item["gate"] = flight.xpath("./ul/li[@class='gate']/span/text()").extract_first()
     flight_item["terminal"] = AirportSpider.MAIN
     return flight_item
Exemplo n.º 8
0
    def __derive_flight(self, flight, leg):
        flight_item = FlightItem()
        flight_item["leg"] = leg
        flight_item["airline"] = flight.xpath(
            "./AirlineCode/text()").extract_first()
        flight_item["flight_no"] = flight_item["airline"] + flight.xpath(
            "./FlightNumber/text()").extract_first()
        flight_item["expected_time"] = datetime.strftime(datetime.strptime(flight.xpath("./FlightDate/text()").extract_first(), "%Y%m%d"), "%Y-%m-%d") + \
        datetime.strftime(datetime.strptime(flight.xpath("./ScheduleTime/text()").extract_first(), "%H%M"), "T%H:%M") + AirportSpider.SECONDS_SUFFIX
        flight_item["actual_time"] = datetime.strftime(
            datetime.strptime(
                flight.xpath("./EstimatedTime/text()").extract_first(),
                "%Y%m%d%H%M"), "%Y-%m-%dT%H:%M:00Z")
        flight_item["status"] = flight.xpath("./Status/text()").extract_first()
        flight_item["gate"] = flight.xpath("./Gate/text()").extract_first()
        flight_item["city"] = flight.xpath(
            "./ViaAirportCity/text()").extract_first()
        flight_item["terminal"] = AirportSpider.MAIN

        return flight_item
Exemplo n.º 9
0
    def __derive_flight(self, flight, leg):
        flight_item = FlightItem()
        flight_item["leg"] = leg
        flight_item["airline"] = flight["company"]
        flight_item["flight_no"] = flight["flight"]
        flight_item["expected_time"] = self.date + "T" + flight[
            "planned_hour"] + AirportSpider.SECONDS_SUFFIX
        if type(flight["revised_date"]) is str and type(
                flight["revised_hour"]) is str:
            flight_item["actual_time"] = parser.parse(
                flight["revised_date"]).strftime("%Y%m%d") + "T" + flight[
                    "revised_hour"] + AirportSpider.SECONDS_SUFFIX
        else:
            flight["actual_time"] = self.date
        flight_item["status"] = flight["details"]["status"]
        flight_item["terminal"] = AirportSpider.UNKNOWN
        flight_item["gate"] = flight["terminal_gate"]
        flight_item["city"] = flight["destination_without_accent"]

        return flight_item
Exemplo n.º 10
0
    def __derive_flight(self, flight, leg):
        flight_item = FlightItem()
        times = flight.xpath("./td/time/@datetime").extract()
        flight_item["leg"] = leg
        flight_item["airline"] = flight.xpath("./td/img/@alt").extract_first().strip()
        flight_item["flight_no"] = flight.xpath("./td/span[@class='visible-xs-inline']/text()").extract_first() + \
        flight.xpath("./td[@class='views-field views-field-field-flight-number']/text()").extract()[5].strip()
        flight_item["expected_time"] = datetime.strftime(datetime.strptime(times[0], "%Y-%m-%dT%XZ") - timedelta(hours=5), "%Y-%m-%dT%XZ")
        if len(times) == 2:
             flight_item["actual_time"] = datetime.strftime(datetime.strptime(times[1], "%Y-%m-%dT%XZ") - timedelta(hours=5), "%Y-%m-%dT%XZ")
        else:
            flight_item["actual_time"] = datetime.strftime(datetime.strptime(times[0], "%Y-%m-%dT%XZ") - timedelta(hours=5), "%Y-%m-%dT%XZ")
        flight_item["status"] = flight.xpath("./td[@class='views-field views-field-field-status']/text()").extract()[3].strip()
        flight_item["terminal"] = AirportSpider.MAIN
        gate_info = flight.xpath("./td[@class='views-field views-field-field-gate']/text()").extract()
        if len(gate_info) < 4:
            flight_item["gate"] = AirportSpider.UNKNOWN
        else:
            flight_item["gate"] = gate_info[3].strip()
        flight_item["city"] = flight.xpath("./td/div/div/div/div/div/text()").extract()[3].strip()

        return flight_item
Exemplo n.º 11
0
 def __derive_flight(self, flight, leg):
     flight_item = FlightItem()
     gate = flight["Gate"]["Code"]
     flight_item["leg"] = leg
     flight_item["airline"] = flight["Airline"]["Name"]
     flight_item[
         "flight_no"] = flight["Airline"]["Code"] + flight["FlightNumber"]
     flight_item["city"] = flight["Airport"]["Name"]
     flight_item["expected_time"] = flight["ScheduledTime"]
     flight_item["actual_time"] = flight["ActualTime"]
     flight_item["status"] = flight["YycStatus"]["PrimaryStatus"][
         "ShortEnglishText"]
     flight_item["gate"] = gate
     if (len(gate) > 1):
         if gate[0] in YYCSpider.DOMESTIC_CONCOURSES:
             flight_item["terminal"] = AirportSpider.DOMESTIC
         elif gate[0] in YYCSpider.INTERNATIONAL_CONCOURSES:
             flight_item["terminal"] = AirportSpider.INTERNATIONAL
         else:
             flight_item["terminal"] = AirportSpider.UNKNOWN
     else:
         flight_item["terminal"] = AirportSpider.UNKNOWN
     return flight_item