- Notifications
You must be signed in to change notification settings - Fork5
API für die in Deutschland verbreitete DSBmobile App für Vertretungspläne an Bildungseinrichtungen
License
nerrixde/DSBApi
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
⚠️ Unzuverlässig. Es scheinen Bugs vermehrt aufzutreten. Maintainer gesucht (#24)
Eine API für die DSBMobile Vertretungsplan-Lösung, welche viele Schulen benutzen.
- Funktioniert Stand 10.11.21 (Jetzt via Android-API (nach Problemen in 0.0.3), seit 2015 stable
- Aktuell in Version 0.0.14
- Aktuell stable
- Units 2020 nicht vollständig unterstützt, PRs welcome, aber Kompatibilität berücksichtigen!
Bei Problemen und/oder Fragen, gerne ein "Issue" eröffnen.
pip install dsbapipy
oder manuell:pip install git+https://github.com/nerrixDE/DSBApi.git#egg=dsbapipy
JSON Liste an Arrays. Ein Array sieht so aus:
Key | Value | Notiz |
---|---|---|
type | Vertretung | Art des Eintrags |
class | 5D | Klasse |
lesson | 12 | Schulstunde |
room | R404 | (Neuer) Raum |
new_subject | M-GK1 | Neuer Kurs |
subject | IF-LK4 | Ursprüngliches Fach / Kurs |
new_teacher | NEUM | Neuer Lehrer |
teacher | BIMM | Ursprünglicher Lehrer |
date | 01.01.2019 | Datum |
day | Montag | Wochentag |
updated | 02.02.2019 12:13 | Letztes Update |
Der key "class" wird speziell behandelt, indem der Inhalt der Schulklasse bei der Zeichenfolge ",
" geteilt wird.Diese Teilung wird verwendet um bei kombinierten Klasseneinträgen, die Daten für jede Klasse einzeln aufzusplitten.
importdsbapidsbclient=dsbapipy.DSBApi("benutzername","passwort")entries=dsbclient.fetch_entries()forsinrange(len(entries)):foriinrange(len(entries[s])):print(entries[s][i]["date"])
Schulen sind relativ frei in der Gestaltung Ihrer Datensätze. Daher kann der oben beschriebene Standard wiefolgt überschrieben werden:
importdsbapiownFields= ['class','lesson','new_subject','room','subject','new_teacher','type','text']dsbclient=dsbapipy.DSBApi("benutzername","passwort",tablemapper=ownFields)entries=dsbclient.fetch_entries()forsinrange(len(entries)):foriinrange(len(entries[s])):print(entries[s][i]["date"])
Ein real-world Beispiel:
importdsbapiasdsbapipyimportjsonimportdatetimedays= ["Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"]klasse= "10bownFields= ['class','lesson','new_subject','room','subject','new_teacher','type','text']dsbclient=dsbapipy.DSBApi("benutzername","passwort",tablemapper=ownFields)entriesdsbclient.fetch_entries()final= []forsinrange(len(entries)):foriinrange(len(entries[s])):day=days[datetime.datetime.today().weekday()+1]ifentries[s][i]["class"]==klasse:ifentries[s][i]["day"]==day:lesson=entries[s][i]["lesson"]subject=entries[s][i]["new_subject"]teacher=entries[s][i]["room"]oldsubject=entries[s][i]["subject"]room=entries[s][i]["new_teacher"]vertreter=entries[s][i]["type"]text=entries[s][i]["text"]final.append({"lesson":lesson,"new_subject":subject,"room":room,"old_subject":oldsubject,"teacher":teacher,"type":vertreter,"text":text})message=f"Am{day} gibt es{str(len(final))} Einträge. "forsinfinal:message+=f"In der{s['lesson']}. Stunde hast du{s['new_subject']} mit{s['teacher']} in{s['room']}. "print(message)
About
API für die in Deutschland verbreitete DSBmobile App für Vertretungspläne an Bildungseinrichtungen