Пример #1
0
    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
        )
Пример #2
0
 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
     )
Пример #3
0
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()
Пример #4
0
 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)
Пример #5
0
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()