def _process_departures(self, departures): """ common reponse parser for handling a list of departures """ line_factory = LineFactory(self) stop_factory = StopFactory(self) run_factory = RunFactory(self) out = [] for departure in departures: # - platform # -- direction # --- line platform_details = departure['platform'] direction_details = platform_details.pop('direction') line_details = direction_details.pop('line') line = line_factory.create(**line_details) direction_details['line'] = line direction = Direction(**direction_details) platform_details['direction'] = direction # --- stop stop_details = platform_details.pop('stop') stop = stop_factory.create(**stop_details) platform_details['stop'] = stop platform = Platform(**platform_details) # - run run_details = departure['run'] run = run_factory.create(**run_details) timetable = parse_datetime_tz(departure["time_timetable_utc"]) if departure["time_realtime_utc"] is not None: realtime = parse_datetime_tz(departure["time_realtime_utc"]) else: realtime = None if departure['flags']: flags = ', '.join([self.FLAGS[f] for f in departure['flags'].split('-') if f != 'E']) else: flags = None out.append({"platform": platform, "run": run, "flags": flags, "time_timetable_utc": timetable, "time_realtime_utc": realtime, }) return out
def __init__(self, description, publishedOn, title, url): self.description = description self.publishedOn = parse_datetime_tz(publishedOn) self.title = title self.url = url