App für den Untis Stundenplan

  • 23 Antworten
  • Letztes Antwortdatum
1

153806

Gast
Hallo,

ich bin Schüler und seit einigen Wochen gibt es an unserer Schule einen Online-Vetretungsplan (Untis). Da dieser nicht für Handy optimiert ist und es keine App dazu gibt, hab ich mir einfach eine selbst geschrieben.

Wenn Interesse besteht, kann ich den Source-Code veröffentlichen und auch aktuell halten.
 
Zuletzt bearbeitet von einem Moderator:
Darfst du dir auch die Klassennamen und die ID dazu aus nem Javascript Array in der HTML Datei der Navigation holen? Meine alte Schule nutzt auch Untis und das war ein Graus dafür die App zu machen. Sobald man die ID's hat, geht der Rest aber ganz gut.
 
Ja, zuerst wird die Datei frames/navbar.htm geladen, um die Klassen zu erhalten, dann wird die entsprechende Seite geladen.

Anbei mal die PHP-Dateien (ich parse das ganze nämlich zuerst auf nem eigenen Server).

EDIT: Die Dateien sind die selben, nur einaml für Windoof und einmal für Linux-User - je nachdem was euch lieber ist :D
 
Ich habs in meiner v1 auch erst über meinen Server parsen lassen. In der v2 macht das aber die App.
 
Ich umgedreht :D Die ham so oft was geändert, wollte da net jedes ma en neues Update raus hauen. Wenn du noch den Code der App willst, kann ich auch veröffentlichen ^^
 
Bei mir muss ich nichts ändern. Falls sich da was ändert und der User falsche Pläne bekommt, dann braucht er nur ein Button drücken, damit die Datei neu geladen, geparst und die Klassen gespeichert werden. Dann muss er seine Klasse neu auswählen und alles geht wieder.
 
Vorteil an einem Server zwischen ist das man per gcm Update Benachrichtigen schicken kann.
 
Das Problem bei den Untis Stundenplänen ist aber, dass man die an sich nicht selbst parsen kann sondern nur als Webview einbinden kann. Deswegen kann man auch nicht wirklich ermitteln ob bzw welche Änderungen am Stundenplan vorgenommen wurden.
 
Anscheinend kann man es ja doch parsen zumindest stand da doch was weiter oben
 
Hmm also gehen tut alles :D Momentan wird nur der Vetretungsplan geparst und angezeigt, der Stundenplan ist in Planung (das Teil, das aus 65 Tabellen besteht, einfach Müll :| ) :D
 
Man kann die Klassenliste aus dem Javascript herausparsen, aber den eigentlichen Plan kannst du nicht parsen, weil da Layoutvergewaltigung mit ineinander geschachtelten Tabelle getrieben wird.
 
Ich denk ma schon dass ich das hin bekomme, aber bissl Arbeit wirds schon sein .. der Stundenplan von den 11ern (ich bin noch in der 9. Klasse, da sieht der Plan noch einfacher aus .. trzdm. 65 Tabellen) .. 245 Tabellen !! :o Das kann man durchaus vergewaltigung nennen
 
So falls es jmd bracht, im Anhang ein PHP-Skript, das den Stundenplan lädt und parst.

EDIT: Alle in diesem Thread von mir veröffentlichen Skripte/Codes sind allein von mir programmiert worden, sofern nicht anders (z.B. durch einen Copyright-Hinweis) vermerkt. Ihr dürft sie weitergeben, verändern und anschließend weitergeben, sowie den Code oder Teile davon anderweitig nutzen, wenn ihr dazuschreibt, dass er von mir ist. Außerdem muss dieser Text hinzugefügt werden. Dies muss nicht getan werden, wenn der Code nicht weitergegeben/verbreitet wird.

EDIT2: Includes vergessen, habe sie nun hinzugefügt. Die include-Anweisungen müssen noch entsprechend angepasst werden.
 
Zuletzt bearbeitet von einem Moderator:
Bearbeitet von: Handymeister - Grund: [Handymeister] Klarname auf Wunsch des Users gelöscht
  • Danke
Reaktionen: SteffenRohwer
Hier mal alles zusammen, komplette App (zeigt Vertretungsplan und Stundenplan an) mit allen dazugehörigen PHP-Dateien. Lizenz steht oben.
 
Zuletzt bearbeitet von einem Moderator:
Hab jz en Update, das jz den VP vom Monitor (aktueller) statt dem "normal" online zugänglichem VP lädt. Wenn jmd interesse hat -> PN oder Antwort hier
 
Ich habe mich da auch durchgekämpft. Mein Plan war erst den Vertretungsplan-Frame mit der Tabelle zu zerfleddern, also mit nem PHP-Script alle HTML-Elemente weg usw.
Nachdem ich das dann für meine Klasse hatte, und die Ausgabe über JSON an die App hatte, fiel mir auf das die Tabelle je nach Klasse komplett anders erstellt wird. Also nicht so wie es sich für eine HTML-Tabelle gehört, sondern echt komplette Code-Vergewaltigung.
Da sich das Bearbeiten von 147 Tabellen pro Woche nicht lohnt, habe ich einfach den Stundenplan-Frame in einen Webview gepackt. Zwar nicht die beste Lösung, aber das selbe hat sich Untis beim erstellen auch gedacht :D
 
Okey .. interessant. Also die Tabellen bei uns sind immer "gleich" .. kannste ma ein paar Stundenpläne (die htm(l)-Dateien) hier gezippt oder als .tar.gz hier hochladen. Würd mich ma interessieren :D
 
Hab was besseres als ne zip mit den ganzen Dateien ;)
- Vertretungsplan

Das dumme ist halt echt, das manche Klassen (meine zB) anguckt 212.102.229.90/apache2-default/wb/media/vts/26/c/c00087.htm , muss man erstmal fleißig HTML-Tags stripen, Strings splitten usw.
Wenn man dann ne andere Klasse öffnet, hat man wieder ein ganz anderes Muster...
 
Ich versuch iwann heut Abend ma deine Seite durch mein neues PHP-Skript zu jagen. Ma gucken was bei raus kommt :D
 
Hab mir jetzt grad mal deine PHP-Scripts angeguckt, hast dir ja ganz schön Arbeit gemacht ;) respekt
An den Weg, den du nimmst, habe ich gar nicht gedacht. Meine Idee war so an sich:

-App ruft PHP-Script von meinem Server ab, und gibt den Klassennamen über get/post ans Script
-Das Script läd über den implode-Befehl den Tabellen-Frame
-Das Script zerlegt den gesamten HTML-Code des Frames
-übrig bleibt ein Array mit ungeordneten Strings

Dann dachte ich mir, Webview und fertig :D

Ein anderer möglicher Weg wäre es ja, den Tabellen-Inhalt mit PHP auszulesen, nur weiß ich nicht ob es dazu ne Funktion gibt, oder ob sie jemand schon geschrieben hat...

EDIT: Wobei, nach etwas googlen habe ich jetzt nen Script gefunden, mit welchem ich jede Spalte einer Tabelle in ein Array speichern kann. So kann ich bei bedarf über den Index über mehrere Arrays hinweg sortieren.
Werde mich mal am Montag intensiver mit auseinander setzten, hab da eh nicht wirklich was zu tun :rolleyes2:
 
Zuletzt bearbeitet:
Zurück
Oben Unten