async def _show_user_form(self, user_input): """SHOW FORM""" # Defaults name = "" origin = "" destination = "" combination_id = DEFAULT_COMBINATION_ID if user_input is not None: if CONF_NAME in user_input: name = user_input[CONF_NAME] if CONF_ORIGIN in user_input: origin = user_input[CONF_ORIGIN] if CONF_DESTINATION in user_input: destination = user_input[CONF_DESTINATION] if CONF_COMBINATION_ID in user_input: combination_id = user_input[CONF_COMBINATION_ID] pubtran = czpubtran( self.hass.data[DOMAIN].session, self.hass.data[DOMAIN].user_id ) combination_ids = await pubtran.async_list_combination_ids() data_schema = OrderedDict() data_schema[vol.Required(CONF_NAME, default=name)] = str data_schema[vol.Required(CONF_ORIGIN, default=origin)] = str data_schema[vol.Required(CONF_DESTINATION, default=destination)] = str data_schema[vol.Required(CONF_COMBINATION_ID, default=combination_id)] = vol.In( combination_ids ) return self.async_show_form( step_id="user", data_schema=vol.Schema(data_schema), errors=self._errors )
async def _show_init_form(self, user_input): """SHOW FORM""" pubtran = czpubtran( self.hass.data[DOMAIN].session, self.hass.data[DOMAIN].user_id ) combination_ids = await pubtran.async_list_combination_ids() data_schema = OrderedDict() data_schema[ vol.Required( CONF_ORIGIN, default=self.config_entry.options.get(CONF_ORIGIN) ) ] = str data_schema[ vol.Required( CONF_DESTINATION, default=self.config_entry.options.get(CONF_DESTINATION), ) ] = str data_schema[ vol.Required( CONF_COMBINATION_ID, default=self.config_entry.options.get(CONF_COMBINATION_ID), ) ] = vol.In(combination_ids) return self.async_show_form( step_id="init", data_schema=vol.Schema(data_schema), errors=self._errors )
async def test(): session = aiohttp.ClientSession(raise_for_status=True) bus = czpubtran(session, '') timetables = await bus.async_list_combination_ids() print("Listing available timetables (Combination IDs)") print(timetables) print('------------------------------------------------') await bus.async_find_connection('Namesti Republiky', 'Chodov', 'ABCz') print( f'First connection from {bus.origin} to {bus.destination} using timetable {bus.combination_id}:' ) print(f'Departure: {bus.departure} line {bus.line}') print(f'Duration: {bus.duration}') print('Connections:') for i, description in [(0, '1st connection'), (1, '2nd connection')]: print(f'{description}:') for detail in bus.connection_detail[i]: print(f"line {detail['line']} " f"at {detail['depTime']} " f"from {detail['depStation']} " f"-> {detail['arrStation']} " f"{detail['arrTime']} " f"(delay: {detail['delay']} min)") print('------------------------------------------------') try: await bus.async_find_connection('Namesti Republiky', 'Chodov', 'ABCz', '23:20') except Exception as e: print(f'Exception{e}') print( f'Scheduled connection from {bus.origin} to {bus.destination} at {bus.start_time}:' ) print(f'Departure: {bus.departure} line {bus.line}') print(f'Duration: {bus.duration}') print('Connections:') for i, description in [(0, '1st connection'), (1, '2nd connection')]: print(f'{description}:') for detail in bus.connection_detail[i]: print(f"line {detail['line']} " f"at {detail['depTime']} " f"from {detail['depStation']} " f"-> {detail['arrStation']} " f"{detail['arrTime']} " f"(delay: {detail['delay']} min)") await session.close()
def __init__( self, hass, user_id, scan_interval, force_refresh_period, description_format, session, ): self.__hass = hass self.__user_id = user_id self.__session = session self.__scan_interval = scan_interval self.__force_refresh_period = force_refresh_period self.__description_format = description_format self.__entity_ids = [] self.__connections = [] self.__api = czpubtran(session, user_id)
async def test(): session = aiohttp.ClientSession(raise_for_status=True) bus = czpubtran(session, '') await bus.async_find_connection('Chyne, Haje', 'Ortenovo namesti', 'ABCz') print( f'Connection from {bus.origin} to {bus.destination} using timetable{bus.combination_id}' ) print('------------------------------------------------') print(f'Departure: {bus.departure} line {bus.line}') print(f'Duration: {bus.duration}') print('Connections:') for connection in bus.connections: print(f"line {connection['line']} " f"at {connection['depTime']} " f"from {connection['depStation']} " f"-> {connection['arrStation']} " f"{connection['arrTime']} " f"(delay: {connection['delay']} min)") await session.close()