Ejemplo n.º 1
0
def stops():
    """Retrieve list of bus stops (type: STBC) around the user's location"""
    tfl_api = TflApi()

    try:
        lat = request.form['lat']
        lon = request.form['lon']
    except BadRequestKeyError:
        try:
            postcode = request.form['postcode']
        except BadRequestKeyError:
            return render_template('main.html')  # bail out

        # Convert postcode to coordinates
        geo = Geo(postcode)
        lat, lon = geo.getLatitudeAndLongitude()

    stops = tfl_api.getStopList(lat, lon)

    stopcodes = [s['StopCode1'] for s in stops]
    busses = tfl_api.getBusList(stopcodes)

    results = []
    for stop in stops:
        result = {
            'name': '{name} ({letter})'.format(name=stop['StopPointName'], letter=stop['StopPointIndicator']),
            'busses': []
        }
        busses_for_stopcode = [b for b in busses if b['StopCode1'] == stop['StopCode1']]
        for bus in sorted(busses_for_stopcode, key=lambda i: i['EstimatedTime']):
            result['busses'].append({
                'number': bus['LineName'],
                'direction': bus['DestinationText'],
                'eta': U.format_time(bus['EstimatedTime'])
            })

        results.append(result)

    return render_template('results.html', results=results)
Ejemplo n.º 2
0
def test_getLatitudeAndLongitude():
    sut = Geo()
    lat, lon = sut.getLatitudeAndLongitude(651409.903, 313177.270)
    assert_almost_equal(lat, 52.657570, places=6)
    assert_almost_equal(lon, 1.717922, places=6)