4.0.2 • Published 3 months ago

sphclient v4.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
3 months ago

currently dead

This project is currently inactive. Currently, my focus is on lanis-mobile. Although the code in this repository may work, it is not of high quality. For a better interface, please check out LanisAPI by kurwjan. Additionally, some features in the app may have been reverse-engineered. Take a look at this file for a comprehensive collection of SPH parsing: https://github.com/alessioC42/lanis-mobile/blob/main/app/lib/client/client.dart. For encryption, refer to this file: https://github.com/alessioC42/lanis-mobile/blob/main/app/lib/client/cryptor.dart, created by kurwjan.

SPHclient

Ein nodejs modul um mit dem Hessischen Schulporal zu interagieren.

Auch interessant:

Android APP: https://github.com/alessioC42/lanis-mobile

Features

  • login / logout
  • Vertretungsplan
  • Kalender

Für weitere features kann ein Issue mit dem tag "feature request" oder eine pull request geöffnet werden.

Da jede Schule über eine andere "Ausstattung" mit Lanis verfügt (siehe hier) kann ich nicht jedes Feature implementieren. Ich kann ausschließlich die Features meiner Schule (5182 - Max-Planck-Schule Rüsselsheim) behandeln.

Beispiel

npm i sphclient
const SPHclient = require("./SPHclient");
const secrets = require("./secrets.json")

const client = new SPHclient(secrets.username, secrets.password, secrets.schoolid);

client.authenticate().then(() => {
    client.getVplanDates().then(dates => {

        const fetchPromises = [];

        dates.forEach(date => {
            console.log("fetching date: " + date);
            const promise = client.getVplan(date);
            fetchPromises.push(promise);
        });

        Promise.all(fetchPromises).then(plans => {
            const fullplan = [].concat(...plans);
            console.log(fullplan);
        })
    });
});

hilfreiche Links

  • lanis Helpcenter

  • mögliche Loginprobleme mit einigen Schulen

  • alle "Apps" innerhalb des Schulportal Hessen. (Konfiguation variiert nach Schule)

  • algemeine Info (Server Status / Updates / ganz bissen Doumentation)

  • Lanis Datenschutzerklärung

    • Session nur 100 min gültig
    • unten stehen alle Cookies definiert

API

SPHclient(username, password, schoolID, loggingLevel = 1)

Die SPHclient-Klasse ist die Schnittstelle zwischen dem Code und der Lanis-API.

  • username: Benutzername
  • password: Passwort
  • schoolID: Schulnummer

SPHclient.authenticate()

Für alle weiteren API-Aufrufe muss eine Authentifizierung erfolgen. Alle weiteren Anfragen können erst nach dem Aufruf von authenticate() durchgeführt werden.

SPHclient.logout()

Beendet die aktuelle Sitzung. Nach dem Ausloggen kann eine erneute Authentifizierung mit authenticate() durchgeführt werden.

SPHclient.getVplan(date)

Gibt den gesamten Vertretungsplan der Schule als Objekt zurück. date muss ein Date()-Objekt sein. Diese Methode gibt ein Promise zurück, das den Vertretungsplan enthält.

SPHclient.getCalendar(start, end)

Gibt den Online-Kalender der Schule als Objekt zurück. start und end sind beide Date()-Objekte, die den Zeitraum bestimmen. Diese Methode gibt ein Promise zurück, das den Kalender enthält.

SPHclient.getVplanDates()

Gibt die aktuell verfügbaren Termine angezeigten Vertretungsplans auf der Website als Date()-Objekt Array zurück. Diese Methode gibt ein Promise zurück, das ein Array enthält.

4.0.0

3 months ago

4.0.2

3 months ago

3.0.1

8 months ago

3.0.0

8 months ago

2.2.3

8 months ago

2.2.2

8 months ago

2.2.1

9 months ago

2.2.0

9 months ago

2.1.0

9 months ago

2.0.3

9 months ago

2.0.2

9 months ago

2.0.1

9 months ago

2.0.0

9 months ago

1.3.0

9 months ago

1.2.0

10 months ago

1.1.1

10 months ago

1.1.0

10 months ago

1.0.0

10 months ago