lanisapi


Namelanisapi JSON
Version 0.4.1 PyPI version JSON
download
home_page
SummaryA unofficial python api for Lanis.
upload_time2023-11-26 00:46:18
maintainer
docs_urlNone
authorkurwjan
requires_python>=3.7
license
keywords lanis sph schulportal hessen hessen api
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [[README DE](https://github.com/kurwjan/LanisAPI/blob/master/README-DE.md)]  [[README EN](https://github.com/kurwjan/LanisAPI/blob/master/README.md)]

# 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](https://pypi.org/project/lanisapi/).

## 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](https://github.com/users/kurwjan/projects/2).**

## App for the Schulportal Hessen
If you want to have an app for Lanis, check out [SPH-vertretungsplan](https://github.com/alessioC42/SPH-vertretungsplan) by [@alessioC42](https://github.com/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?

```sh
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.

```python
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](https://lanisapi.readthedocs.io/en/latest/first_steps.html).

## 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](https://docs.github.com/en/get-started/quickstart/contributing-to-projects) and for this project there is also some help [here](https://lanisapi.readthedocs.io/en/latest/contributing/programming_help.html).

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

## Credits

The Javascript project [SPHclient](https://github.com/alessioC42/SPHclient) from [@alessioC42](https://github.com/alessioC42) helped me to understand the *Schulportal Hessen*.

The Android-App [sph-planner](https://github.com/koenidv/sph-planner) from [@koenidv](https://github.com/koenidv) helped me to understand the Level 2 encryption.

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

+ **Flutter Android app [SPH-Vertretungsplan](https://github.com/alessioC42/SPH-vertretungsplan) also from [@alessioC42](https://github.com/alessioC42)**
+ TypeScript library [Maria](https://github.com/elderguardian/maria) from [Elderguardian](https://github.com/elderguardian/)
+ Javascript app [SchulportalApp](https://github.com/DerOwnerHD/SchulportalApp) from [DerOwnerHD](https://github.com/DerOwnerHD)
+ Flutter Android app [lkwslr-sphplaner](https://github.com/flutter-preview/lkwslr-sphplaner) from [flutter-preview](https://github.com/flutter-preview)

## Notice

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

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "lanisapi",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "Lanis,SPH,Schulportal Hessen,Hessen,API",
    "author": "kurwjan",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/ad/cd/8593572629aadd6492089cca1b6e0a70f42ba9d80beb475646767159ba9f/lanisapi-0.4.1.tar.gz",
    "platform": null,
    "description": "[[README DE](https://github.com/kurwjan/LanisAPI/blob/master/README-DE.md)]  [[README EN](https://github.com/kurwjan/LanisAPI/blob/master/README.md)]\n\n# LanisAPI\n\n> ## \u26a0 Notice\n> **Because the Schulportal Hessen changes quickly and is very fragmented, some functions at specific schools or after a while may no longer work.**\n\n## What is this?\n\nIt's an unofficial Python library for the Schulportal Hessen. Also available on [PyPi](https://pypi.org/project/lanisapi/).\n\n## Features\n\n+ Fetch homework or other tasks.\n+ Fetch substitution plan.\n+ Fetch calendar events.\n+ Fetch conversations.\n+ Fetch all schools that have Lanis.\n+ Fetch all web applets with their links.\n\n**Overview of future Features, Problems and other things [here](https://github.com/users/kurwjan/projects/2).**\n\n## App for the Schulportal Hessen\nIf you want to have an app for Lanis, check out [SPH-vertretungsplan](https://github.com/alessioC42/SPH-vertretungsplan) by [@alessioC42](https://github.com/alessioC42). _It's still in an early phase!_\n\n**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.\n\n## How do I install it?\n\n```sh\npip install lanisapi\n```\n\nRequired is Python 3.11. *(older versions are probably not working, I didn't tested it.)*\n\n## Example\n\nThis example gives the substitution plan.\n\n```python\nfrom lanisapi import LanisClient, LanisAccount, LanisCookies, School\n\ndef main():\n    client = LanisClient(LanisAccount(\"school id\", \"name.lastname\", \"password\"))\n        or: client = LanisClient(LanisAccount(School(\"school\", \"city\"), \"name.lastname\", \"password\"))\n        or: client = LanisClient(LanisCookie(\"school id\", \"session id\"))\n    client.authenticate()\n    print(client.get_substitution_plan())\n    client.close()\n    \nif __name__ == \"__main__\":\n    main()\n```\n\nMore infos at the [wiki](https://lanisapi.readthedocs.io/en/latest/first_steps.html).\n\n## How can I help?\n\n1. You can report problems at *Issues*.\n2. You can suggest ideas at *Issues*.\n3. **Contributing**: You can contribute to this project either by code or improving the wiki. If you're new to contributing, look [here](https://docs.github.com/en/get-started/quickstart/contributing-to-projects) and for this project there is also some help [here](https://lanisapi.readthedocs.io/en/latest/contributing/programming_help.html).\n\n*Also if you like this project you can give it a star.*\n\n## Credits\n\nThe Javascript project [SPHclient](https://github.com/alessioC42/SPHclient) from [@alessioC42](https://github.com/alessioC42) helped me to understand the *Schulportal Hessen*.\n\nThe Android-App [sph-planner](https://github.com/koenidv/sph-planner) from [@koenidv](https://github.com/koenidv) helped me to understand the Level 2 encryption.\n\nOther projects that didn't helped me but are cool:\n\n+ **Flutter Android app [SPH-Vertretungsplan](https://github.com/alessioC42/SPH-vertretungsplan) also from [@alessioC42](https://github.com/alessioC42)**\n+ TypeScript library [Maria](https://github.com/elderguardian/maria) from [Elderguardian](https://github.com/elderguardian/)\n+ Javascript app [SchulportalApp](https://github.com/DerOwnerHD/SchulportalApp) from [DerOwnerHD](https://github.com/DerOwnerHD)\n+ Flutter Android app [lkwslr-sphplaner](https://github.com/flutter-preview/lkwslr-sphplaner) from [flutter-preview](https://github.com/flutter-preview)\n\n## Notice\n\nThis project isn't officially related to the Schulportal Hessen. It's only a unofficial library, supported by the community.\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "A unofficial python api for Lanis.",
    "version": "0.4.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/kurwjan/LanisAPI/issues",
        "Documentation": "https://lanisapi.readthedocs.io/",
        "Homepage": "https://github.com/kurwjan/LanisAPI"
    },
    "split_keywords": [
        "lanis",
        "sph",
        "schulportal hessen",
        "hessen",
        "api"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "44bc01523039b650d135a3f9339f4a8494c0c17bdf1d635c0c3bfe0104236629",
                "md5": "a87e4fdaf883c34bb5d02e5617c09383",
                "sha256": "a71b8497d1e8d26cabe5cf8c7a1371fc1dc190dd3ac8142f2756cb8e921db48c"
            },
            "downloads": -1,
            "filename": "lanisapi-0.4.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "a87e4fdaf883c34bb5d02e5617c09383",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 28635,
            "upload_time": "2023-11-26T00:46:17",
            "upload_time_iso_8601": "2023-11-26T00:46:17.189853Z",
            "url": "https://files.pythonhosted.org/packages/44/bc/01523039b650d135a3f9339f4a8494c0c17bdf1d635c0c3bfe0104236629/lanisapi-0.4.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "adcd8593572629aadd6492089cca1b6e0a70f42ba9d80beb475646767159ba9f",
                "md5": "8d93912c40ec7aaab50513e7d644ca2f",
                "sha256": "3200faef269db2ad3459401efa206c7a2ddac1ae909ccefc50a1a114ec38188e"
            },
            "downloads": -1,
            "filename": "lanisapi-0.4.1.tar.gz",
            "has_sig": false,
            "md5_digest": "8d93912c40ec7aaab50513e7d644ca2f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 24280,
            "upload_time": "2023-11-26T00:46:18",
            "upload_time_iso_8601": "2023-11-26T00:46:18.258684Z",
            "url": "https://files.pythonhosted.org/packages/ad/cd/8593572629aadd6492089cca1b6e0a70f42ba9d80beb475646767159ba9f/lanisapi-0.4.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-11-26 00:46:18",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "kurwjan",
    "github_project": "LanisAPI",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "lanisapi"
}
        
Elapsed time: 0.23067s