diff options
author | Lars Kroenner | 2019-12-28 17:46:07 +0100 |
---|---|---|
committer | Lars Kroenner | 2019-12-28 17:46:07 +0100 |
commit | 8fa6b04c170ca0a530964f2eb839629169cc3a88 (patch) | |
tree | 7868b37167e4db837e08a3cc4377a5b658126be1 | |
parent | 257985abe678f0e8056464f3e69a2a5a72ebaa33 (diff) |
Caching file
-rw-r--r-- | parser/schedule.py | 31 |
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 |