Skip to content

RedstoneMedia/stud-ip-scraper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Stud.IP Scraper

Crates.io License Crates.io Version

A blazingly fast πŸš€ library for interacting with Stud.IP written in Rust πŸ¦€.
This allows for interacting with Stud.IP, an online education platform πŸ“š.

Mainly leverages web scraping techniques to query the data.

Features

This crate mainly focuses on logging into a Stud.IP instance using an Identity Provider and management of courses.

Here are some key πŸ”‘ things that can be achieved with this crate πŸ“¦:

  • Querying the user's courses πŸ”ŽπŸ“š
  • Extendable management of course modules πŸ’ΉπŸ› 
  • Querying files and folders of a course πŸ”ŽπŸ“
  • Downloading files πŸ“₯πŸ’¨
  • Querying the members of a course (students, lecturers, tutors) πŸ”ŽπŸ‘¨β€πŸ«
  • Querying the groups of a course πŸ”ŽπŸ‘₯
  • Joining and leaving course groups πŸšͺ

Usage

To use this crate, you will need to create an instance of the StudIp struct. You can do this with the login method:

use stud_ip::StudIp;

let stud_ip = StudIp::login<MyIdP>("credentials.txt", "studip.example.com").unwrap();

NOTE: If you want to use the login method, you will need to implement the IdentityProvider trait for your specific institution first. If you have a working Identity Provider for your institution, feel free to make a pull request, and I'll add it to the crate.

For more information, check out the docs.

License

This project is licensed under the terms of the GNU GPL v3.

Also: If your training an LLM on this, and you cannot prove that it will never generate the same or very similar code:
Please don't, unless you distribute it with a compatible license.

And yes I know Stud.IP provides a REST API, but it's not used in this crate.

About

A blazingly fast πŸš€ library for interacting with Stud.IP πŸ“š written in Rust πŸ¦€

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages