summaryrefslogtreecommitdiff
path: root/parser.py
diff options
context:
space:
mode:
authorMarvin Borner2019-09-18 22:24:13 +0200
committerMarvin Borner2019-09-18 22:24:13 +0200
commit26e0a26011af580ec24eb158d450a8ffd4afad52 (patch)
tree4582996ba3d30ead9c3c114ff3b77a861448b835 /parser.py
Added basic functionality
Diffstat (limited to 'parser.py')
-rw-r--r--parser.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/parser.py b/parser.py
new file mode 100644
index 0000000..784d637
--- /dev/null
+++ b/parser.py
@@ -0,0 +1,39 @@
+import urllib.request
+import pydsb
+from flask import Flask, jsonify, render_template, send_from_directory
+from bs4 import BeautifulSoup
+
+app = Flask(__name__)
+
+
+@app.route("/api")
+def get():
+ dsb = pydsb.PyDSB("~", "~")
+ dsb.login()
+
+ data = {
+ "Montag": [],
+ "Dienstag": [],
+ "Mittwoch": [],
+ "Donnerstag": [],
+ "Freitag": []
+ }
+
+ url = dsb.get_plans()[0]["url"]
+ contents = urllib.request.urlopen(url).read()
+ parsed = BeautifulSoup(contents, "lxml")
+ tables = parsed.find_all("table", {"class": "mon_list"})
+ for table in tables:
+ rows = table.find_all("tr")
+ for row in rows:
+ table_data = row.find_all("td")
+ if len(table_data) > 0:
+ if "TGM12/1" in table_data[0].b.text:
+ data[rows[1].b.text].append({
+ "Woche": table.parent.find("div", {"class": "mon_title"}).text[-1:],
+ "Stunde": table_data[1].b.text,
+ "Fach": table_data[2].text,
+ "Raum": table_data[3].text,
+ "Typ": table_data[4].text,
+ })
+ return jsonify(data)