diff --git a/infoscreen/hsl.html b/infoscreen/hsl.html
deleted file mode 100644
index ba6bceb..0000000
--- a/infoscreen/hsl.html
+++ /dev/null
@@ -1,129 +0,0 @@
-
-
-
-
-
-
-
-
- |
- Aika
- |
-
- Bussin numero
- |
-
- Pysäkki
- |
-
- Päätepysäkki
- |
-
-
- |
- {{x.time}}
- |
-
- {{x.bus}}
- |
-
- {{x.stop}}
- |
-
- {{x.laststop}}
- |
-
-
-
-
-
diff --git a/infoscreen/hsl.py b/infoscreen/hsl.py
deleted file mode 100644
index 1fe79c5..0000000
--- a/infoscreen/hsl.py
+++ /dev/null
@@ -1,15 +0,0 @@
-import json
-import urllib.request
-
-userhash="1aca11408c6615e0a403a90e485a3b9ff0fb7cde7b7d"
-src = urllib.request.urlopen("http://api.reittiopas.fi/hsl/prod/?userhash="+userhash+"&request=stops_area¢er_coordinate=2545565,6675319").read().decode("utf-8")
-data = json.loads(src);
-arr=[]
-for element in data:
- src = urllib.request.urlopen("http://api.reittiopas.fi/hsl/prod/?userhash="+userhash+"&request=stop&code="+element['code']).read().decode("utf-8")
- parsed = json.loads(src)[0]
- arr.append({"name":parsed['name_fi'],"lines":parsed['lines'],"dist":element['dist'],"departures":parsed['departures']})
-file=open('static/js/hsl.json','w')
-file.write(json.dumps(arr))
-file.close()
-
diff --git a/infoscreen/json b/infoscreen/json
deleted file mode 100644
index 9d29d69..0000000
--- a/infoscreen/json
+++ /dev/null
@@ -1 +0,0 @@
-[{"name": "Tietotie, Laituri 17", "lines": ["2010 1:Puolarmets\u00e4", "2010K 1:Puolarmets\u00e4", "2195N 1:Latokaski"], "departures": [{"code": "2195N 1", "date": 20160829, "time": 2426}, {"code": "2195N 1", "date": 20160829, "time": 2455}, {"code": "2195N 1", "date": 20160829, "time": 2524}], "dist": 247}, {"name": "Innopoli, Laituri 2", "lines": ["2010 1:Puolarmets\u00e4", "2010K 1:Puolarmets\u00e4", "2103 1:Pohjois-Tapiola", "2103T 1:Pohjois-Tapiola", "2550 2:It\u00e4keskus, lait. 22", "5510 2:Martinlaakso l.13"], "departures": [{"code": "2550 2", "date": 20160829, "time": 2406}, {"code": "2550 2", "date": 20160829, "time": 2436}, {"code": "2550 2", "date": 20160829, "time": 2506}], "dist": 288}, {"name": "Tietotie, Laituri 16", "lines": ["2010 2:Otaniemi", "2010K 2:Otaniemi", "2195N 2:Kamppi"], "departures": [{"code": "2195N 2", "date": 20160829, "time": 2403}, {"code": "2195N 2", "date": 20160829, "time": 2433}, {"code": "2195N 2", "date": 20160829, "time": 2533}], "dist": 295}, {"name": "Innopoli, Laituri 1", "lines": ["2010 2:Otaniemi", "2010K 2:Otaniemi", "2103 2:Kamppi, laituri 42", "2103T 2:Kamppi, laituri 42", "2550 1:Westendinasema", "5510 1:Tapiola, laituri 6"], "departures": [{"code": "2550 1", "date": 20160829, "time": 2358}, {"code": "2550 1", "date": 20160829, "time": 2413}, {"code": "2550 1", "date": 20160829, "time": 2443}, {"code": "2550 1", "date": 20160829, "time": 2510}, {"code": "2550 1", "date": 20160829, "time": 2539}], "dist": 303}, {"name": "Maarinranta", "lines": ["2550 2:It\u00e4keskus, lait. 22", "5510 2:Martinlaakso l.13"], "departures": [{"code": "2550 2", "date": 20160829, "time": 2407}, {"code": "2550 2", "date": 20160829, "time": 2437}, {"code": "2550 2", "date": 20160829, "time": 2507}], "dist": 493}, {"name": "Otakaari", "lines": ["2010 1:Puolarmets\u00e4", "2010K 1:Puolarmets\u00e4", "2195N 1:Latokaski"], "departures": [{"code": "2195N 1", "date": 20160829, "time": 2424}, {"code": "2195N 1", "date": 20160829, "time": 2453}, {"code": "2195N 1", "date": 20160829, "time": 2522}], "dist": 513}, {"name": "Otakaari", "lines": ["2010 2:Otaniemi", "2010K 2:Otaniemi", "2195N 2:Kamppi"], "departures": [{"code": "2195N 2", "date": 20160829, "time": 2405}, {"code": "2195N 2", "date": 20160829, "time": 2435}, {"code": "2195N 2", "date": 20160829, "time": 2535}], "dist": 539}, {"name": "Hopealehto", "lines": ["2117 1:Tapiola"], "departures": null, "dist": 543}, {"name": "M\u00e4ntyviita", "lines": ["2117 1:Tapiola"], "departures": null, "dist": 636}, {"name": "Vuorimies, Laituri 15", "lines": ["2015 1:Jupperi", "2103 1:Pohjois-Tapiola", "2103T 1:Pohjois-Tapiola", "2194 1:Tapiola", "2194A 1:Orion", "2195 1:Latokaski", "5510 2:Martinlaakso l.13"], "departures": null, "dist": 639}, {"name": "Kemisti, Laituri 13", "lines": ["2015 1:Jupperi", "2550 2:It\u00e4keskus, lait. 22", "5510 2:Martinlaakso l.13"], "departures": [{"code": "2550 2", "date": 20160829, "time": 2403}, {"code": "2550 2", "date": 20160829, "time": 2433}, {"code": "2550 2", "date": 20160829, "time": 2503}], "dist": 643}, {"name": "S\u00e4hk\u00f6mies", "lines": ["2010 1:Puolarmets\u00e4", "2010K 1:Puolarmets\u00e4", "2195N 1:Latokaski"], "departures": [{"code": "2195N 1", "date": 20160829, "time": 2424}, {"code": "2195N 1", "date": 20160829, "time": 2453}, {"code": "2195N 1", "date": 20160829, "time": 2522}], "dist": 666}, {"name": "Tiet\u00e4j\u00e4", "lines": ["2550 1:Westendinasema", "5510 1:Tapiola, laituri 6"], "departures": [{"code": "2550 1", "date": 20160829, "time": 2411}, {"code": "2550 1", "date": 20160829, "time": 2441}, {"code": "2550 1", "date": 20160829, "time": 2509}, {"code": "2550 1", "date": 20160829, "time": 2538}], "dist": 676}, {"name": "Kemisti, Laituri 12", "lines": ["2015 2:Otaniemi", "2550 1:Westendinasema", "5510 1:Tapiola, laituri 6"], "departures": [{"code": "2550 1", "date": 20160829, "time": 2400}, {"code": "2550 1", "date": 20160829, "time": 2415}, {"code": "2550 1", "date": 20160829, "time": 2445}, {"code": "2550 1", "date": 20160829, "time": 2512}, {"code": "2550 1", "date": 20160829, "time": 2541}], "dist": 676}, {"name": "Vuorimies, Laituri 14", "lines": ["2015 2:Otaniemi", "2103 2:Kamppi, laituri 42", "2103T 2:Kamppi, laituri 42", "2194 2:Kamppi", "2194A 2:Kamppi", "2195 2:Kamppi", "5510 1:Tapiola, laituri 6"], "departures": null, "dist": 680}, {"name": "Alvar Aallon puisto, Laituri 11", "lines": ["2102 1:Otaniemi", "2102T 1:Otaniemi", "2103 1:Pohjois-Tapiola", "2103T 1:Pohjois-Tapiola", "2194 1:Tapiola", "2194A 1:Orion", "2195 1:Latokaski", "2552 1:Otaniemi"], "departures": [{"code": "2102T 1", "date": 20160829, "time": 2419}, {"code": "2102T 1", "date": 20160829, "time": 2444}, {"code": "2102T 1", "date": 20160829, "time": 2514}], "dist": 698}, {"name": "S\u00e4hk\u00f6mies", "lines": ["2010 2:Otaniemi", "2010K 2:Otaniemi", "2195N 2:Kamppi"], "departures": [{"code": "2195N 2", "date": 20160829, "time": 2405}, {"code": "2195N 2", "date": 20160829, "time": 2435}, {"code": "2195N 2", "date": 20160829, "time": 2535}], "dist": 705}, {"name": "Alvar Aallon puisto, Laituri 10", "lines": ["2102 2:Kamppi, laituri 41", "2102T 2:Kamppi, laituri 41", "2103 2:Kamppi, laituri 42", "2103T 2:Kamppi, laituri 42", "2194 2:Kamppi", "2194A 2:Kamppi", "2195 2:Kamppi", "2552 2:Malmin asema"], "departures": [{"code": "2102T 2", "date": 20160829, "time": 2407}, {"code": "2102T 2", "date": 20160829, "time": 2437}, {"code": "2102T 2", "date": 20160829, "time": 2527}], "dist": 708}, {"name": "Valkj\u00e4rventie", "lines": ["2116 1:Pohjois-Tapiola", "2116 2:Tapiolan uimahalli"], "departures": null, "dist": 762}, {"name": "Aarnivalkean koulu", "lines": ["2117 1:Tapiola"], "departures": null, "dist": 789}]
\ No newline at end of file
diff --git a/infoscreen/management/commands/hsl.py b/infoscreen/management/commands/hsl.py
new file mode 100644
index 0000000..a38b1d2
--- /dev/null
+++ b/infoscreen/management/commands/hsl.py
@@ -0,0 +1,18 @@
+import json
+import urllib.request
+from django.conf import settings
+from django.core.management.base import BaseCommand
+
+class Command(BaseCommand):
+ help = 'Loads HSL timetables and save to json file.'
+
+ def handle(self, *args, **options):
+ src = urllib.request.urlopen("http://api.reittiopas.fi/hsl/prod/?userhash="+settings.HSL_USERHASH+"&request=stops_area¢er_coordinate=2545565,6675319").read().decode("utf-8")
+ data = json.loads(src);
+ arr=[]
+ for element in data:
+ src = urllib.request.urlopen("http://api.reittiopas.fi/hsl/prod/?userhash="+userhash+"&request=stop&code="+element['code']).read().decode("utf-8")
+ parsed = json.loads(src)[0]
+ arr.append({"name":parsed['name_fi'],"lines":parsed['lines'],"dist":element['dist'],"departures":parsed['departures']})
+ with open('{}/hsl.json'.format(settings.MEDIA_ROOT),'w') as file:
+ file.write(json.dumps(arr))