diff options
Diffstat (limited to 'parser/schedule.py')
-rw-r--r-- | parser/schedule.py | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/parser/schedule.py b/parser/schedule.py new file mode 100644 index 0000000..89c5bfb --- /dev/null +++ b/parser/schedule.py @@ -0,0 +1,41 @@ +import config +import requests + +class ScheduleParser(): + def parse(self, params: dict, do_req: bool = True, l: list = []) -> list: + if do_req: + l = self.__get_data() + + param_name = list(params.keys())[0] + param_value = params[param_name] + del params[param_name] + + confs = [] + + if param_name == 'speaker': + for conference in l: + for person in conference['persons']: + if person['public_name'].lower() == param_value.lower(): + confs.append(conference) + break + + elif param_name == 'room': + for conference in l: + if conference['room'].lower() == param_value.lower(): + confs.append(conference) + + + + if len(list(params.keys())) > 0: + 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 + |