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)
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)
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 + '请从结果中选择线路编号'
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
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