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
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
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
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
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
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
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