VPlanPlus-Project / VPlanPlus

Android client for stundenplan24.de
https://vplan.plus
Mozilla Public License 2.0
4 stars 2 forks source link

Kompatibilitätsprobleme mit verschiedenen Schulen #74

Closed SachsenspieltCoding closed 10 months ago

SachsenspieltCoding commented 1 year ago

Hallo @Julius-Babies, zunächst einmal: Unglaublich starke App! Ich habe selber mal eine eigene Vertretungsplan App gemacht (Vertretungsapp) und weiß daher wie Müll diese API ist.

Und weil die API so Müll ist, funktionieren nicht alle Schulen bei dir. Ich weiß nicht auf welche Pläne du konkret gehst, aber ich habe sowohl die Testschule (10000000) als auch meine eigene getestet und bei keinem der beiden Daten bekommen können. Meine Schule konnte ich sogar nichtmal hinzufügen, da es bereits beim Anmelden einen Unbekannten Fehler gab.

Wenn du irgendwelche Hilfe brauchst im Bezug auf die API, dann steh ich dir gerne zur Seite.

Julius-Babies commented 1 year ago

Hallo, vielen Dank für deine Issue. Unbekannter Fehler betitelt meist falsche Anmeldedaten, es gibt zwar eine eigene Nachricht dafür, sie hat aber interne Umstrukturierungen nicht überlebt, dass muss ich unbedingt noch fixen. Dass es eine Beispielschule gibt ist mir bislang nicht bekannt gewesen, da werde ich mich mal schlau machen. Der Fakt, dass du auf den Login Bildschirm gelangt bist sagt zumindest aus, dass Vpp die Schule gefunden hat. Ich werde mir das mal ansehen 😀

Julius-Babies commented 1 year ago

Keine Daten... meint das die Anzeige "Keine Daten verfügbar", "Es gibt noch keine V-Pläne für das Datum etc..."? Du musst nach dem Hinzufügen der Schule einmal manuell synchronisieren, indem du auf das "Profil"symbol tippst und dann auf Sync.

Julius-Babies commented 1 year ago

Meine Schule konnte ich sogar nichtmal hinzufügen, da es bereits beim Anmelden einen Unbekannten Fehler gab.

Wer hosted die? Aktuell unterstützt VPP nur stundenplan24.de Instanzen.

SachsenspieltCoding commented 1 year ago

Meine Schule geht auch über stundenplan24.de

Die Beispielschule liefert tägliche Demo Daten, ganz praktisch. Schulnummer: 10000000 Benutzer: schueler / lehrer Passwort: <irgendetwas zufälliges>

Zum Thema Keine Daten, auch nach dem Refresh kommt der gleiche Screen. grafik Anhand der Logs habe ich gesehen, dass du die Wochenpläne nutzt. Die sind bspw. bei den mir bekannten Schulen gar nicht vorhanden. Selbst die Beispielschule scheint keine zu haben. grafik

Die Zugangsdaten zu meiner Schule haben auch definitiv gepasst (gibt man falsche ein kommt auch der richtige Error). Die Logs zeigen eine gleiche Symptomatik grafik

Julius-Babies commented 1 year ago

Es gibt ja WPlan.xml und SPlan.xml oder so ähnlich. Aktuell benutze ich ausschließlich WPlan Daten, meine Schule stellt die halt bereit und ich hatte bisher nicht die Gelegenheit, andere Schulen mit anderen Modules zu testen. Ich werde irgendwann die SPlan Daten implementieren, allein schon, weil die App nur über Tage mit Vertretungsplänen bescheid weiß und demnach keinen Fallback Stundenplan wenn kein V-Plan für ein bestimtmes Datum existiert.

SachsenspieltCoding commented 1 year ago

Okay, musst schauen. Ich hab immer mit den mobil/mobdaten gearbeitet, da die meiner Erfahrung nach am Zuverlässigsten sind

https://stundenplan24.de/10000000/mobil/mobdaten/Klassen.xml bzw. https://stundenplan24.de/10000000/mobil/mobdaten/PlanKl20231124.xml

Julius-Babies commented 1 year ago

Es gibt direkt Schnittstellen für die App? Ist ja cool, ich habe bei stundenplan24.de einfach beim Wochenplan 6 Netzwerkanalysen durchlaufen lassen und gegucgt, welche URLs der Browser so anfragt. Der lädt da btw. den kompletten Datensatz seit Schulregistrierung mit. Jedes mal :D

SachsenspieltCoding commented 1 year ago

Die sollten auf jeden Fall immer funktionieren, weil das die Endpoints sind die VpMobil auch nutzt. Du kannst ja das mit den Wochenplänen drin lassen, und nutzt dann die App Endpoints als Fallback.

Julius-Babies commented 1 year ago

Ich könnte glaube ich sogar komplett darauf umsteigen. Die App hat ja im Endeffekt jede Schule. Die Daten, die ich benötige, sind alle enthalten. Eigentlich "nur" XML-Parser und URLs anpassen.

Julius-Babies commented 1 year ago

Noch eine Frage, die Klassen und Stundenkonmbinationen wurden dir alle im Onboarding angezeigt, oder? Falls ja, dann sind die Basisdaten wenigstens unberührt von dem kleinen Refactoring.

SachsenspieltCoding commented 1 year ago

Das hatte nur bei der Beispielschule funktioniert, bei meiner nicht

Julius-Babies commented 1 year ago

...Also sind die Basisdaten auch betroffen. Na gut, wenn ich mich darauf verlassen kann, dass die entsprechenden Schnittstellen garantiert existieren, werde ich dorthin migrieren.

SachsenspieltCoding commented 1 year ago

Muss ja wenn VpMobil drauf zugreift

Julius-Babies commented 11 months ago

Sollte mit der neuesten Version behoben sein, die Beispielschule funktioniert und alles, was nur mit Stundenplan Version 5 arbeitet soll im kommenden Jahr migriert werden. Es gibt seitens Indiware schon Arbeiten an einem Nachfolgesystem für Wochenplan 6 und VpMobil24 (heißt dann VpMobilPlus :D) richtig mit API und Rechtemanagement. Stundenplan 5 ist seitens Indiware schon als Legacy abgestempelt.

SachsenspieltCoding commented 11 months ago

Sollte mit der neuesten Version behoben sein, die Beispielschule funktioniert und alles, was nur mit Stundenplan Version 5 arbeitet soll im kommenden Jahr migriert werden. Es gibt seitens Indiware schon Arbeiten an einem Nachfolgesystem für Wochenplan 6 und VpMobil24 (heißt dann VpMobilPlus :D) richtig mit API und Rechtemanagement. Stundenplan 5 ist seitens Indiware schon als Legacy abgestempelt.

Kann irgendjemand Indiware bitte einfach schließen. Warum bekommen die bzw. er (ist ja gefühlt eine Einzelperson) es nicht gebacken eine vernünftige App auf den Markt zu kriegen? Und warum zur Hölle unterstützt der Freistaat so ein Pfusch überhaupt? Fragen über Fragen

Julius-Babies commented 11 months ago

Ja, aber es hat sich durchgesetzt. Wie dem auch sei, ich hoffe stark darauf, dass die API wirklich angenehm zu Benutzen sein wird. Es sind übrigens mehrere Personen, hatte gestern mit denen telefoniert.

SachsenspieltCoding commented 11 months ago

Hast du wegen deiner App da angerufen?

Julius-Babies commented 11 months ago

Jo, ich wollte von denen noch mal eine Einverständniserklärung haben, ob ich meine App in den Play Store bringen darf - ich benutze ja deren Server. Reverse Engineering ist an sich legal, aber sicher ist sicher. habe ein Zusage erhalten, soll aber einen User Agent angeben, falls da irgendwelche Auffälligkeiten auftreten, dass sie mich kontaktieren können. Die hatten wohl schon ihre Probleme mit Drittanbieterapps, die sekündlich auf deren Servern zugegriffen haben.

Julius-Babies commented 11 months ago
Sehr geehrter Herr Babies,

vielen Dank, dass Sie erst fragen, bevor Sie Ihre App veröffentlichen.

Grundsätzlich haben wir nach aktuellem Stand nichts dagegen, wenn Sie auf die Daten zugreifen, solange dies nicht z. B. minütlich geschieht.
Beachten Sie dabei, dass Sie im Zweifelsfall die Erlaubnis der Schulleitung einholen, da Sie ja dann die Daten der Schule verarbeiten.
Weiterhin wäre es günstig, wenn Sie uns den User-Agent der App mitteilen, damit wir bei Auffälligkeiten mit Ihnen in Kontakt treten können.

Perspektivisch werden wir selber eine neue App entwickeln (die dann auch ein "Plus" am Namensende hat und eigentlich sind wir schon in der Entwicklung) und dann den Zugriff auf den Server per API steuern.

Bei weiteren Fragen rufen Sie uns bitte an.
SachsenspieltCoding commented 11 months ago

Ah okay cool. Meine App ist in der Veröffentlichung leider gescheitert, da ich keine Möglichkeit habe sie in den Play Store zu pushen und der App Store (Apple) ist da ja nur noch restriktiver (und teurer)

SachsenspieltCoding commented 11 months ago

@Julius-Babies Also die Testschule funktioniert wie von dir gesagt jetzt bestens. Meine eigene funktioniert jedoch noch nicht, das liegt aber vermutlich daran, dass meine Schule zu wenig Information liefert. Musst du selber entscheiden ob du es fixt oder nicht und in welcher Prio

grafik

Julius-Babies commented 11 months ago

Hi, bezüglich der Kompatibilitätsprobleme. Besteht bei deiner Schule die Möglichkeit als schueler auch die Lehrer- und Raumpläne anzuzeigen?

Bei Wochenplan 6 gibt es ein Dropdown, in welchem man den Modus ändern kann: grafik

Julius-Babies commented 11 months ago

Ist zumindest ein Problem, was so wirkt wie das, was du im letzten Screenshot geteilt hast. Diese Daten sind nicht in jeder Schule für schueler zugänglich. Daran arbeite ich gerade in #125

Julius-Babies commented 11 months ago

Sonst versuche mal die Version (v0.8-alpha). Die aktuellste Version findest du auf der Homepage des Projektes.

SachsenspieltCoding commented 11 months ago

Hi, bezüglich der Kompatibilitätsprobleme. Besteht bei deiner Schule die Möglichkeit als schueler auch die Lehrer- und Raumpläne anzuzeigen?

Bei Wochenplan 6 gibt es ein Dropdown, in welchem man den Modus ändern kann:

grafik

Servus! Soweit ich weiß, werden bei uns nur die mobdaten veröffentlicht. Diese Wochenplan Endpoints etc. funktionieren alle nicht

SachsenspieltCoding commented 11 months ago

Nette Website btw., hat mir gut gefallen

Julius-Babies commented 11 months ago

Nette Website btw., hat mir gut gefallen

Hattest du SSL Fehler?

Soweit ich weiß, werden bei uns nur die mobdaten veröffentlicht. Diese Wochenplan Endpoints etc. funktionieren alle nicht

Dann muss ich da nochmal schauen. Die Klassenliste muss ja auch irgendwie bei den mobdaten ankommen. Wenn ich die verwende, wird wplan nur noch für Lehrer- und Raumlisten verwendet, was seit v0.8-alpha optional ist.

Julius-Babies commented 11 months ago

Kannst du mir per Mail (julvin.babies@gmail.com) die Zugangsdaten deiner Schule zukommen lassen? Dann kann ich mir die Gegebenheiten dort mal genauer ansehen :)

SachsenspieltCoding commented 11 months ago

Ich hatte SSL Fehler ja, das war aber am Nachmittag als ich mir das angeschaut habe.

Die Klassenliste kannst du dir, abhängig von deiner internen Struktur, aber auch einfach selber bauen. Wenn du die Klassen als Array hast (was ja von XML mehr oder weniger vorgegeben wird), dann kannst du die ja einfach mappen

Julius-Babies commented 11 months ago

Würde relativ viel Restrukturierung bedeuten, da die App zunächst alle Metadaten sammelt und erst nach der Klassenwahl den ersten Plan lädt. https://stundenplan24.de/10000000/mobil/mobdaten/Klassen.xml scheint aber eine ähnliche Struktur zu haben.

Nope, ist eine Plandatei. Da fehlen die Daten, die ich brauche.

Julius-Babies commented 11 months ago

Sowas wie Name der Schule - der ist leider essentiell und nicht vorhanden in den Mobdaten. Ist aber auch nicht tragisch, Indiware will alle Schulen wenigstens auf Wochenplan 6 umstellen.

Julius-Babies commented 11 months ago

Ihr habt ja ein spannendes Setup. Umso interessanter, dass deine Schule trotzdem die Ordnerstruktur für wplan hat. Bei einer zufälligen Nummer, erscheint die Fehlermeldung, dass die Schulnummer nicht existiert, bei deiner Schule versucht er es wenigstens. Muss man nicht verstehen...

SachsenspieltCoding commented 11 months ago

Hab dir die Zugangsdaten geschickt.

Das mit den Metadaten ist dann natürlich doof, mit den VpMobil Endpoints kommst du da nicht ran.

GitHub hat gerade nicht geladen... Ich bin ja mal gespannt wie die alle Schulen migrieren wollen, aber gut. Warum unsere Schule so unglaublich wenig bereitstellt weiß ich auch nicht, hätte aber mit gescheiter Software auch verhindert werden können. Aber gut, muss Indiware selber wissen, professionell und modern ist anders

SachsenspieltCoding commented 11 months ago

Falls es dich interessiert: Ich habe heute meinen eigenen Indiware-Parser als separates Projekt veröffentlicht (indiware-api)

Ich komme halt ohne die Metadaten, Raum- und Lehrerpläne klar, da ich mir das alles selber aus dem Schüler Vplan zusammenbaue

Julius-Babies commented 11 months ago

Ist auch ein Ansatz. Mein Bruder geht aufs Tschirnhaus Gymnasium, die stellen die Lehrer- und Raumpläne nicht dem schueler zur Verfügung, seit dem letzten Release werden Räume und Lehrer auch anhand der Schülerpläne gesammelt und eingetragen - sofern sie noch nicht existieren. Die können dann halt keine Lehrer- und Raumprofile anlegen, die Suche nach den Entitäten geht jedoch.

Bei diesen speziellen Schulen gibt es dann einen Warnhinweis: grafik

SachsenspieltCoding commented 11 months ago

Ja gut, das Problem hab ich nicht, oder zumindest nicht in diesem Ausmaß

Julius-Babies commented 11 months ago

Das stimmt, wenn dur nur von Mobdaten ausgehst, kann dir sowas nicht passieren.

Ich werde demnächst auch Raum- und Lehrerprofile bei diesen Schuhen freischalten, sobald eben einmal Daten geladen wurden und wenigstens ein paar Lehrer und Räume bekannt sind.