aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorLars Kroenner2019-12-28 17:46:07 +0100
committerLars Kroenner2019-12-28 17:46:07 +0100
commit8fa6b04c170ca0a530964f2eb839629169cc3a88 (patch)
tree7868b37167e4db837e08a3cc4377a5b658126be1
parent257985abe678f0e8056464f3e69a2a5a72ebaa33 (diff)
Caching file
-rw-r--r--parser/schedule.py31
1 files changed, 22 insertions, 9 deletions
diff --git a/parser/schedule.py b/parser/schedule.py
index 30bb74e..f8e2693 100644
--- a/parser/schedule.py
+++ b/parser/schedule.py
@@ -4,7 +4,7 @@ import requests
class ScheduleParser():
def parse(self, params: dict, do_req: bool = True, l: list = []) -> list:
if do_req:
- l = self.__get_data()
+ l = self.get_data()
param_name = list(params.keys())[0]
param_value = params[param_name]
@@ -40,12 +40,25 @@ class ScheduleParser():
return self.parse(params, False, confs)
return confs
- def __get_data(self) -> list:
- resp = requests.get(config.SCHEDULE_URL)
- elements = []
- for day in resp.json()['schedule']['conference']['days']:
- for room in day['rooms']:
- for conference in day['rooms'][room]:
- elements.append(conference)
- return elements
+ def get_data(self) -> list:
+ try:
+ resp = requests.get(config.SCHEDULE_URL, timeout=5)
+ elements = []
+ for day in resp.json()['schedule']['conference']['days']:
+ for room in day['rooms']:
+ for conference in day['rooms'][room]:
+ elements.append(conference)
+
+ with open('data.json', 'w') as outfile:
+ json.dump(res, outfile, indent=4)
+ return elements
+ except:
+ with open('data.json') as json_file:
+ f = json.load(json_file)
+ elements = []
+ for day in f['schedule']['conference']['days']:
+ for room in day['rooms']:
+ for conference in day['rooms'][room]:
+ elements.append(conference)
+ return elements