Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

API für die in Deutschland verbreitete DSBmobile App für Vertretungspläne an Bildungseinrichtungen

License

Notifications You must be signed in to change notification settings

nerrixde/DSBApi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DSBApi

⚠️ 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.

Installation:

pip install dsbapipy oder manuell: pip install git+https://github.com/nerrixDE/DSBApi.git#egg=dsbapipy

Datensatz:

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

Hinweise zum Key "class"

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.

Implementierung:

Beispiel 1

import dsbapi

dsbclient = dsbapipy.DSBApi("benutzername", "passwort")
entries = dsbclient.fetch_entries()

for s in range(len(entries)):
  for i in range(len(entries[s])):
    print(entries[s][i]["date"])

Beispiel 2: Anderes Tabellenformat

Schulen sind relativ frei in der Gestaltung Ihrer Datensätze. Daher kann der oben beschriebene Standard wiefolgt überschrieben werden:

import dsbapi

ownFields = ['class','lesson','new_subject','room','subject','new_teacher','type','text']

dsbclient = dsbapipy.DSBApi("benutzername", "passwort", tablemapper=ownFields)
entries = dsbclient.fetch_entries()

for s in range(len(entries)):
  for i in range(len(entries[s])):
    print(entries[s][i]["date"])

Beispiel 3: Nützliches Beispiel

Ein real-world Beispiel:

import dsbapi as dsbapipy
import json
import datetime

days = ["Montag","Dienstag","Mittwoch","Donnerstag","Freitag", "Samstag","Sonntag"]
klasse = "10b
ownFields = ['class','lesson','new_subject','room','subject','new_teacher','type','text']
dsbclient = dsbapipy.DSBApi("benutzername", "passwort", tablemapper=ownFields)
entries  dsbclient.fetch_entries()
final = []

for s in range(len(entries)):
    for i in range(len(entries[s])):
        day = days[datetime.datetime.today().weekday() +1]
        if entries[s][i]["class"] == klasse:
            if entries[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. "
for s in final:
    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

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 5

Languages