Exemplo n.º 1
0
 def iter_station_departures(self, station_id, arrival_id=None):
     for i, d in enumerate(self.browser.iter_station_departures(station_id, arrival_id)):
         departure = Departure(i, d['type'], d['time'])
         departure.departure_station = d['departure']
         departure.arrival_station = d['arrival']
         departure.late = d['late']
         departure.information = d['late_reason']
         yield departure
Exemplo n.º 2
0
    def iter_station_departures(self, station_id, arrival_id=None, date=None):
        self._populate_stations()

        if arrival_id is None:
            raise UserError('The arrival station is required')

        try:
            station = self.STATIONS[int(station_id)]
            arrival = self.STATIONS[int(arrival_id)]
        except (IndexError, ValueError):
            try:
                station = list(self.iter_station_search(station_id))[0].name
                arrival = list(self.iter_station_search(arrival_id))[0].name
            except IndexError:
                raise UserError('Unknown station')

        with self.browser:
            for i, d in enumerate(
                    self.browser.iter_departures(station, arrival, date,
                                                 self.config['age'].get(),
                                                 self.config['card'].get(),
                                                 self.config['class'].get())):
                departure = Departure(i, d['type'], d['time'])
                departure.departure_station = d['departure']
                departure.arrival_station = d['arrival']
                departure.arrival_time = d['arrival_time']
                departure.price = d['price']
                departure.currency = d['currency']
                departure.information = d['price_info']
                yield departure
Exemplo n.º 3
0
    def iter_station_departures(self, station_id, arrival_id=None, date=None):
        self._populate_stations()

        if arrival_id is None:
            raise UserError("The arrival station is required")

        try:
            station = self.STATIONS[int(station_id)]
            arrival = self.STATIONS[int(arrival_id)]
        except (IndexError, ValueError):
            try:
                station = list(self.iter_station_search(station_id))[0].name
                arrival = list(self.iter_station_search(arrival_id))[0].name
            except IndexError:
                raise UserError("Unknown station")

        with self.browser:
            for i, d in enumerate(
                self.browser.iter_departures(
                    station,
                    arrival,
                    date,
                    self.config["age"].get(),
                    self.config["card"].get(),
                    self.config["class"].get(),
                )
            ):
                departure = Departure(i, d["type"], d["time"])
                departure.departure_station = d["departure"]
                departure.arrival_station = d["arrival"]
                departure.arrival_time = d["arrival_time"]
                departure.price = d["price"]
                departure.currency = d["currency"]
                departure.information = d["price_info"]
                yield departure
Exemplo n.º 4
0
    def iter_station_departures(self, station_id, arrival_id=None, date=None):
        self._populate_stations()

        if arrival_id is None:
            raise UserError('The arrival station is required')

        try:
            station = self.STATIONS[int(station_id)]
            arrival = self.STATIONS[int(arrival_id)]
        except (IndexError, ValueError):
            try:
                station = list(self.iter_station_search(station_id))[0].name
                arrival = list(self.iter_station_search(arrival_id))[0].name
            except IndexError:
                raise UserError('Unknown station')

        with self.browser:
            for i, d in enumerate(self.browser.iter_departures(station, arrival, date,
                                                               self.config['age'].get(),
                                                               self.config['card'].get(),
                                                               self.config['class'].get())):
                departure = Departure(i, d['type'], d['time'])
                departure.departure_station = d['departure']
                departure.arrival_station = d['arrival']
                departure.arrival_time = d['arrival_time']
                departure.price = d['price']
                departure.currency = d['currency']
                departure.information = d['price_info']
                yield departure
Exemplo n.º 5
0
 def iter_station_departures(self, station_id, arrival_id=None, date=None):
     for i, d in enumerate(self.browser.iter_station_departures(station_id, arrival_id)):
         departure = Departure(i, d['type'], d['time'])
         departure.departure_station = d['departure']
         departure.arrival_station = d['arrival']
         departure.late = d['late']
         departure.information = d['late_reason']
         yield departure
Exemplo n.º 6
0
    def get_departures(self, station, arrival, date):
        for table in self.doc.xpath('//table[@class="trajet_horaires trajet_etapes"]'):
            lignes = table.xpath('./tr[@class="ligne"]/th')
            arrives = table.xpath('./tr[@class="arrivee"]/td')
            departs = table.xpath('./tr[@class="depart"]/td')

            items = zip(lignes, arrives, departs)
            for item in items:
                departure = Departure()
                departure.id = Regexp(Link('./div/a'), '.*?vehicleJourneyExternalCode=(.*?)&.*?')(item[1])
                departure.departure_station = station
                departure.arrival_station = arrival
                hour, minute = CleanText('./div/a')(item[1]).split('h')
                departure.time = date.replace(hour=int(hour), minute=int(minute))
                hour, minute = CleanText('./div/a')(item[2]).split('h')
                departure.arrival_time = date.replace(hour=int(hour), minute=int(minute))
                departure.information = CleanText('.')(item[0])
                departure.type = DepartureTypeFilter(item)(self)
                yield departure
Exemplo n.º 7
0
 def iter_station_departures(self, station_id, arrival_id=None):
     for i, d in enumerate(self.browser.iter_station_departures(station_id, arrival_id)):
         departure = Departure(i, d["type"], d["time"])
         departure.departure_station = d["departure"]
         departure.arrival_station = d["arrival"]
         departure.late = d["late"]
         departure.information = d["late_reason"]
         departure.plateform = d["plateform"]
         yield departure