Example #1
0
def query():
    q = click.prompt('请输入线路名', value_proc=str)
    lines = BeijingBus.search_lines(q)
    for index, line in enumerate(lines):
        click.echo()
        click.secho('[%s] %s' % (index + 1, line.name),
                    bold=True,
                    underline=True)
        station_names = [s.name for s in line.stations]
        click.echo()
        click.echo('站点列表:%s' % ','.join(station_names))

    click.echo()
    q = click.prompt('请从结果中选择线路编号', type=int)

    line = lines[q - 1]
    click.clear()
    click.echo('你选择了 %s,下面请选择站点' % line.name)
    click.echo()
    for index, station in enumerate(line.stations):
        click.echo('[%s] %s' % (index + 1, station.name))

    click.echo()
    q = click.prompt('请从结果中选择线路编号', type=int)

    while True:
        echo_realtime_data(line, q)
        time.sleep(5)
Example #2
0
def cli():
    q = click.prompt('请输入线路名', value_proc=str)
    lines = BeijingBus.search_lines(q)
    for index, line in enumerate(lines):
        click.echo()
        click.secho('[%s] %s' % (index+1, line.name), bold=True, underline=True)
        station_names = [s.name for s in line.stations]
        click.echo()
        click.echo('站点列表:%s' % ','.join(station_names))

    click.echo()
    q = click.prompt('请从结果中选择线路编号', type=int)

    line = lines[q-1]
    click.clear()
    click.echo('你选择了 %s,下面请选择站点' % line.name)
    click.echo()
    for index, station in enumerate(line.stations):
        click.echo('[%s] %s' % (index+1, station.name))

    click.echo()
    q = click.prompt('请从结果中选择线路编号', type=int)

    while True:
        echo_realtime_data(line, q)
        time.sleep(5)
Example #3
0
def get_lines(line_num):
    lines = BeijingBus.search_lines(line_num)
    result = ''
    for line_index, line in enumerate(lines):
        result += '[{}] {}\n'.format(line_index+1, line.name)
        station_names = [s.name for s in line.stations]
        '站点列表:{}\n\n'.format(','.join(station_names))
    return result + '请从结果中选择线路编号'
Example #4
0
def get_line_info(line_query):
    result = ''
    lines = BeijingBus.search_lines(line_query[0])
    if line_query[1].isdigit() and string.atoi(line_query[1]) <= len(lines):
        line = lines[string.atoi(line_query[1])-1]
        for s_index, station in enumerate(line.stations):
            result += '[{}] {}\n'.format(s_index+1, station.name)
        result += '你选择了 {},下面请选择站点'.format(line.name)
    return result
Example #5
0
def get_station_info(line_query):
    result = ''
    lines = BeijingBus.search_lines(line_query[0])
    if line_query[1].isdigit() and string.atoi(line_query[1]) <= len(lines):
        line = lines[string.atoi(line_query[1]) - 1]
        if line_query[2].isdigit() and string.atoi(line_query[2]) <= len(lines):
            station = line.stations[string.atoi(line_query[2]) - 1]
            realtime_data = line.get_realtime_data(string.atoi(line_query[2]))
            now = datetime.now().strftime('%H:%M:%S')
            result += '实时数据: {} 线路: {} 更新于: {}\n'.format(station.name, line.name, now)
            realtime_data = filter(lambda d: d['station_arriving_time'], realtime_data)
            realtime_data = sorted(realtime_data, key=lambda d: d['station_arriving_time'], reverse=False)
            for i, data in enumerate(realtime_data):
                result += '公交车辆 {}:\n'.format(i + 1)
                result += '距离 {} 还有 {} 米\n'.format(station.name, data['station_distance'])
                result += '预计 {} 到达\n'.format(data['station_arriving_time'].strftime('%H:%M'))

    result += '感谢使用!重新查询请重新输入线路。'
    return result