Crash in fetch_api() wegen fehlgeschlagenem Login
Closed this issue · 6 comments
Hi,
Bei folgendem Code
import dsbapi
dsbapi.DSBApi("213061", "dsbgak").fetch_api()
gibt es einen Error.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/kangalioo/.local/lib/python3.7/site-packages/dsbapi/__init__.py", line 26, in fetch_entries
timetable = self.fetch_api()
File "/home/kangalioo/.local/lib/python3.7/site-packages/dsbapi/__init__.py", line 23, in fetch_api
return json.loads(gzip.decompress(base64.b64decode(json.loads(timetable_data.text)["d"])))["ResultMenuItems"][0]["Childs"][0]["Root"]["Childs"][0]["Childs"][0]["Detail"]
IndexError: list index out of range
Ich habe herausgefunden, dass der Server als Antwort an die POST Request folgendes sendet:
{
"Resultcode": 1,
"ResultStatusInfo": "Login fehlgeschlagen",
"StartIndex": -1,
"ResultMenuItems": [],
"ChannelType": 0,
"MandantId": ""
}
Das heißt, der Login schlägt fehl. Die Nutzerdaten (Benutzername 213061, Passwort dsbgak) sind jedoch richtig.
Die haben wieder was geändert, ich schau mir das heute an...
Richtig ätzend, das zerschießt mir die gesamte Statistik
Ich schau mir das auch an.
Möglicherweise ist es zukünftig eine gute Idee, sowohl die Android-, als auch die Web-API zu unterstützen, um eine Fallback API zu haben. Falls eine der APIs geändert wird, könnte man auf die andere zurückfallen.
@kangalioo Habs behoben, pushe jetzt das Update
So, jetzt kann das Update via PiP oder vom Source gezogen werden.
Nice, scheint grundsätzlich zu funktionieren. Es gibt immer noch einen Crash, ich mache dafür eine neue Issue auf