summaryrefslogtreecommitdiff
path: root/parser.py
blob: 784d637c51e43d3bab332e421771852a74ca6065 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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)