Dette Python-script er designet til at ændre passwords for studerende i Studsys. Efter ændringen kan applikationen sende en SMS til brugeren med de nye loginoplysninger.
For at køre dette script skal du have installeret følgende Python-biblioteker:
- pyperclip==1.8.2
- python-decouple==3.8
- requests~=2.31.0
- selenium==4.13.0
- webdriver-manager==4.0.1
Disse kan installeres via pip
ved at køre:
pip install -r requirements.txt
- Opret en
.env
fil i rodmappen af projektet. - Tilføj følgende variabler i
.env
filen:
STUDSYS_USERNAME=din_bruger
STUDSYS_PASSWORD=din_kode
SMS_API_KEY=din_sms_api_key
- Åbn en terminal og naviger til projektets rodmappe.
- Kør scriptet med
python main.py
. - Følg instruktionerne i terminalen.
-
change_password_in_studsys(driver: webdriver, search_user: str) -> tuple[str, str]
: Denne funktion håndterer hele processen for at ændre en brugers adgangskode i Studsys-systemet og returnerer en SMS-besked og brugerens mobilnummer. -
main()
: Dette er hovedfunktionen i dit program, der orkestrerer de andre funktioner. Den starter en uendelig løkke, der gentager processen for hver bruger.
-
get_webdriver() -> webdriver
: Denne funktion initialiserer og returnerer en Selenium webdriver. -
scroll_to_bottom(driver: webdriver) -> dict
: Denne funktion scroller til bunden af en webside. -
get_chrome_driver_status(driver)
: Denne funktion returnerer statussen ("Alive" eller "Dead") for en Chrome webdriver.
-
change_password(driver: webdriver) -> str
: Denne funktion ændrer en brugers adgangskode i Studsys og returnerer den nye adgangskode. -
create_msg(this_user: str, this_password: str) -> str
: Denne funktion genererer en SMS-besked, der indeholder den nye adgangskode og andre brugeroplysninger. -
find_user(driver: webdriver, this_user: str) -> None
: Denne funktion finder en bruger i Studsys ved at søge på brugernavn eller CPR-nummer. -
get_mobile_number(driver: webdriver) -> str
,get_name(driver: webdriver) -> str
,get_username(driver: webdriver) -> str
: Disse funktioner henter henholdsvis mobilnummer, navn og brugernavn fra Studsys.
-
clear()
: Denne funktion rydder terminalen. -
measure_time(func)
: Dette er en dekorator, der måler, hvor lang tid en funktion tager at udføre.
send_sms(this_cellphone: str, this_msg: str) -> requests.Response
: Denne funktion sender en SMS til det specificerede mobilnummer.