summaryrefslogtreecommitdiffstats
path: root/real.py
diff options
context:
space:
mode:
Diffstat (limited to 'real.py')
-rw-r--r--real.py18
1 files changed, 15 insertions, 3 deletions
diff --git a/real.py b/real.py
index d19b7e1..e254c69 100644
--- a/real.py
+++ b/real.py
@@ -1,15 +1,22 @@
-from sys import stdin
+from sys import stdin, exit
from datetime import datetime
import argparse
import json
import requests
+import structlog
from jinja2 import Environment, FileSystemLoader
-def get_data(key, site_id):
+def get_data(logger, key, site_id):
url = 'http://api.sl.se/api2/realtimedeparturesV4.json?key={}&SiteId={}'.format(key, site_id)
res = requests.get(url)
+ if res.status_code != requests.codes.ok:
+ logger.error('Failed to get departure data',
+ status_code=res.status_code,
+ response=res.text)
+ exit(1)
+
write_data(res.text, site_id)
return res.json()
@@ -34,6 +41,8 @@ def write_txt(data, site_id, stop_name, path):
if __name__ == '__main__':
+ logger = structlog.get_logger()
+
parser = argparse.ArgumentParser(description='Process the SL Realtime Departure API')
parser.add_argument('-c', '--config', metavar='FILE', type=str, nargs='?',
required=True, help='path to config to use')
@@ -44,6 +53,9 @@ if __name__ == '__main__':
with open(args.config) as cf:
config = json.load(cf)
+ logger = logger.bind(site_id=config['site_id'],
+ stop_name=config['stop_name'])
+
env = Environment(loader=FileSystemLoader('templates'),
trim_blocks=True,
lstrip_blocks=True)
@@ -51,7 +63,7 @@ if __name__ == '__main__':
if args.stdin:
data = json.load(stdin)
else:
- data = get_data(config['key'], config['site_id'])
+ data = get_data(logger, config['key'], config['site_id'])
write_html(data, config['site_id'], config['stop_name'], config['output_path'])
write_txt(data, config['site_id'], config['stop_name'], config['output_path'])