From bc3358a8456180f79fff6db964aee213a43d7eb2 Mon Sep 17 00:00:00 2001 From: Lars Kroenner Date: Sat, 28 Dec 2019 15:38:29 +0100 Subject: Fixing some stuff lel --- .gitignore | 2 ++ app.py | 3 ++- config.py | 3 ++- parser/__init__.py | 0 parser/schedule.py | 41 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 parser/__init__.py create mode 100644 parser/schedule.py diff --git a/.gitignore b/.gitignore index 08a0108..36bc589 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ venv/ .idea/ .vscode/ /**/__pycache__/ +debug.py +testdata.json \ No newline at end of file diff --git a/app.py b/app.py index 20b1553..ef3b450 100644 --- a/app.py +++ b/app.py @@ -1 +1,2 @@ -import requests +import config +from parser.schedule import ScheduleParser diff --git a/config.py b/config.py index 236f849..bb9ee23 100644 --- a/config.py +++ b/config.py @@ -1 +1,2 @@ -URL = "http://data.c3voc.de/36C3/everything.schedule.json" +SCHEDULE_URL = "http://data.c3voc.de/36C3/everything.schedule.json" +KEYS = ['speaker', 'time', 'room', 'title', 'day'] \ No newline at end of file diff --git a/parser/__init__.py b/parser/__init__.py new file mode 100644 index 0000000..e69de29 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 + -- cgit v1.2.3 From 257985abe678f0e8056464f3e69a2a5a72ebaa33 Mon Sep 17 00:00:00 2001 From: Lars Kroenner Date: Sat, 28 Dec 2019 15:46:31 +0100 Subject: Parser improvements --- README.md | 2 +- config.py | 2 +- parser/schedule.py | 14 ++++++++++++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 86d4b32..24b5cc4 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ # 36c3schedule parser -URL: data.c3voc.de/36C3/everything.schedule.json +URL: diff --git a/config.py b/config.py index bb9ee23..35e292b 100644 --- a/config.py +++ b/config.py @@ -1,2 +1,2 @@ SCHEDULE_URL = "http://data.c3voc.de/36C3/everything.schedule.json" -KEYS = ['speaker', 'time', 'room', 'title', 'day'] \ No newline at end of file +KEYS = ['speaker', 'time', 'room', 'title'] \ No newline at end of file diff --git a/parser/schedule.py b/parser/schedule.py index 89c5bfb..30bb74e 100644 --- a/parser/schedule.py +++ b/parser/schedule.py @@ -15,13 +15,23 @@ class ScheduleParser(): if param_name == 'speaker': for conference in l: for person in conference['persons']: - if person['public_name'].lower() == param_value.lower(): + if param_value.lower() in person['public_name'].lower(): confs.append(conference) break elif param_name == 'room': for conference in l: - if conference['room'].lower() == param_value.lower(): + if param_value.lower() in conference['room'].lower(): + confs.append(conference) + + elif param_name == 'time': + for conference in l: + if conference['start'].lower() == param_value.lower(): + confs.append(conference) + + elif param_name == 'title': + for conference in l: + if param_value.lower() in conference['abstract'].lower(): confs.append(conference) -- cgit v1.2.3 From be7194cac8a87fc7ddb525db67c53dd8154d0717 Mon Sep 17 00:00:00 2001 From: Lars Krönner Date: Sat, 28 Dec 2019 15:58:57 +0100 Subject: Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 24b5cc4..9b374b9 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ # 36c3schedule parser -URL: +URL: -- cgit v1.2.3