|
|
|
@ -4,12 +4,15 @@ import json |
|
|
|
from sensitive import api |
|
|
|
|
|
|
|
|
|
|
|
def get_data(type, api_key=api, **args): |
|
|
|
def get_data(type, api_key=api, timeout=None, **args): |
|
|
|
base_url = "http://www.ctabustracker.com/bustime/api/v2/{type}?{query}" |
|
|
|
args['key'] = api_key |
|
|
|
args['format'] = 'json' |
|
|
|
url = base_url.format(type=type, query=urlencode(args)) |
|
|
|
response = urlopen(url) |
|
|
|
if timeout is not None: |
|
|
|
response = urlopen(url,timeout = timeout) |
|
|
|
else: |
|
|
|
response = urlopen(url) |
|
|
|
data = json.load(response)['bustime-response'] |
|
|
|
try: |
|
|
|
data['error'] |
|
|
|
@ -18,17 +21,17 @@ def get_data(type, api_key=api, **args): |
|
|
|
return data |
|
|
|
|
|
|
|
|
|
|
|
def get_times(stop_id, api_key=api): |
|
|
|
return get_data('getpredictions', api_key, stpid=stop_id) |
|
|
|
def get_times(stop_id, api_key=api, timeout=None): |
|
|
|
return get_data('getpredictions', api_key, stpid=stop_id, timeout=timeout) |
|
|
|
|
|
|
|
|
|
|
|
def get_routes(api_key=api): |
|
|
|
return get_data('getroutes', api_key) |
|
|
|
def get_routes(api_key=api, timeout=None): |
|
|
|
return get_data('getroutes', api_key, timeout=timeout) |
|
|
|
|
|
|
|
|
|
|
|
def get_directions(route, api_key=api): |
|
|
|
return get_data('getdirections', api_key, rt=route) |
|
|
|
def get_directions(route, api_key=api, timeout=None): |
|
|
|
return get_data('getdirections', api_key, rt=route, timeout=timeout) |
|
|
|
|
|
|
|
|
|
|
|
def get_stops(route, direction, api_key=api): |
|
|
|
return get_data('getstops', api_key, rt=route, dir=direction) |
|
|
|
def get_stops(route, direction, api_key=api, timeout=None): |
|
|
|
return get_data('getstops', api_key, rt=route, dir=direction, timeout=timeout) |