Skip to main content

[README DE] [README EN]

LanisAPI

⚠ Notice

Because the Schulportal Hessen changes quickly and is very fragmented, some functions at specific schools or after a while may no longer work.

What is this?

It's an unofficial Python library for the Schulportal Hessen. Also available on PyPi.

Features

  • Fetch homework or other tasks.
  • Fetch substitution plan.
  • Fetch calendar events.
  • Fetch conversations.
  • Fetch all schools that have Lanis.
  • Fetch all web applets with their links.

Overview of future Features, Problems and other things here.

App for the Schulportal Hessen

If you want to have an app for Lanis, check out SPH-vertretungsplan by @alessioC42. It's still in an early phase!

It would be also really nice if you contribute to this project, like bug reporting, if you know Dart and Flutter it would be nice to see your help or you could learn Dart, it's not hard.

How do I install it?

pip install lanisapi

Required is Python 3.11. (older versions are probably not working, I didn't tested it.)

Example

This example gives the substitution plan.

from lanisapi import LanisClient, LanisAccount, LanisCookies, School

def main():
    client = LanisClient(LanisAccount("school id", "name.lastname", "password"))
        or: client = LanisClient(LanisAccount(School("school", "city"), "name.lastname", "password"))
        or: client = LanisClient(LanisCookie("school id", "session id"))
    client.authenticate()
    print(client.get_substitution_plan())
    client.close()
    
if __name__ == "__main__":
    main()

More infos at the wiki.

How can I help?

  1. You can report problems at Issues.
  2. You can suggest ideas at Issues.
  3. Contributing: You can contribute to this project either by code or improving the wiki. If you're new to contributing, look here and for this project there is also some help here.

Also if you like this project you can give it a star.

Credits

The Javascript project SPHclient from @alessioC42 helped me to understand the Schulportal Hessen.

The Android-App sph-planner from @koenidv helped me to understand the Level 2 encryption.

Other projects that didn't helped me but are cool:

Notice

This project isn't officially related to the Schulportal Hessen. It's only a unofficial library, supported by the community.

Metadata

Release files for lanisapi 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lanisapi 0.4.1
File Size Uploaded
lanisapi-0.4.1.tar.gz 24.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lanisapi 0.4.1
File Interpreter ABI Platform
lanisapi-0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 52.9 kB

Release files / lanisapi-0.4.1.tar.gz

Download URL lanisapi-0.4.1.tar.gz
Size 24.3 kB
Tags Source
SHA-256 checksum
How to use checksums
3200faef269db2ad3459401efa206c7a2ddac1ae909ccefc50a1a114ec38188e
BLAKE2b-256 checksum
How to use checksums
adcd8593572629aadd6492089cca1b6e0a70f42ba9d80beb475646767159ba9f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Release files / lanisapi-0.4.1-py3-none-any.whl

Download URL lanisapi-0.4.1-py3-none-any.whl
Size 28.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a71b8497d1e8d26cabe5cf8c7a1371fc1dc190dd3ac8142f2756cb8e921db48c
BLAKE2b-256 checksum
How to use checksums
44bc01523039b650d135a3f9339f4a8494c0c17bdf1d635c0c3bfe0104236629
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page