You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

30 lines
941 B

7 years ago
7 years ago
7 years ago
7 years ago
  1. from urllib.parse import urlencode
  2. from urllib.request import urlopen
  3. import json
  4. import os.path as osp
  5. from sensitive import api
  6. def get_data(type,api_key = api,**args):
  7. base_url = "http://www.ctabustracker.com/bustime/api/v2/{type}?{query}"
  8. args['key'] = api_key
  9. args['format'] = 'json'
  10. url = base_url.format(type = type,query = urlencode(args))
  11. response = urlopen(url)
  12. data = json.load(response)['bustime-response']
  13. try:
  14. data['error']
  15. raise Exception(str(data["error"]))
  16. except KeyError:
  17. return data
  18. def get_times(stop_id,api_key = api):
  19. return get_data('getpredictions',api_key,stpid=stop_id)
  20. def get_routes(api_key = api):
  21. return get_data('getroutes',api_key)
  22. def get_directions(route,api_key = api):
  23. return get_data('getdirections',api_key,rt=route)
  24. def get_stops(route,direction,api_key = api):
  25. return get_data('getstops',api_key,rt = route,dir=direction)
  26. #