From 84443c655c519c7c0c8896c293b9e6e4a51c9eb7 Mon Sep 17 00:00:00 2001 From: Matthew Hague <matthew.hague@rhul.ac.uk> Date: Wed, 25 Sep 2024 18:15:53 +0100 Subject: [PATCH] add(timetable): add ACADEMIC_YEAR to get-practical-groups --- timetabling/get-practical-groups.py | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/timetabling/get-practical-groups.py b/timetabling/get-practical-groups.py index 5cf3f33..baf846c 100644 --- a/timetabling/get-practical-groups.py +++ b/timetabling/get-practical-groups.py @@ -6,6 +6,8 @@ # # Pay attention to the following variables # +# ACADEMIC_YEAR -- should be e.g. 2425 else will try the wrong timetable +# # CA_CERTS -- i need to configure this because the built-in Python # certs don't validate the timetabling system for some reason. # @@ -42,6 +44,16 @@ if len(sys.argv) < 2: student_list_csv = sys.argv[1] +ACADEMIC_YEAR = "2425" +TT_HOST = "webtimetables.royalholloway.ac.uk" +TT_HOME_URL = f"https://{TT_HOST}/" +BASE_URL = f"{TT_HOME_URL}/SWS/SDB{ACADEMIC_YEAR}SWS" +TT_LOGIN_URL = f"{BASE_URL}/Login.aspx" +TT_DEFAULT_URL = f"{BASE_URL}/default.aspx" + +USER_AGENT \ + = "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/117.0" + MODULE_CODE = "CS1822" DEPARTMENTS = ["Computer Science", "Media Arts"] @@ -63,10 +75,10 @@ USERNAME = "uxac009" PASSWORD = getpass(f"Password for {USERNAME}: ") HEADERS = { - "Host": "webtimetables.royalholloway.ac.uk", - "Origin": "https://webtimetables.royalholloway.ac.uk", - "Referer": "https://webtimetables.royalholloway.ac.uk/SWS/SDB2324SWS/default.aspx", - "User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/117.0" + "Host": TT_HOST, + "Origin": TT_HOME_URL, + "Referer": TT_DEFAULT_URL, + "User-Agent": USER_AGENT } BATCH_SIZE = 50 @@ -99,7 +111,7 @@ def update_form_data(response, form_data): def initialise_form_data(form_data): response = requests.get( - "https://webtimetables.royalholloway.ac.uk/", + TT_HOME_URL, headers=HEADERS, verify=CA_CERTS ) @@ -107,7 +119,7 @@ def initialise_form_data(form_data): def login(form_data): response = requests.post( - "https://webtimetables.royalholloway.ac.uk/SWS/SDB2324SWS/Login.aspx", + TT_LOGIN_URL, data = form_data | { "tUserName": USERNAME, "tPassword": PASSWORD, @@ -121,7 +133,7 @@ def login(form_data): def make_request(form_data, cookies): response = requests.post( - "https://webtimetables.royalholloway.ac.uk/SWS/SDB2324SWS/default.aspx", + TT_DEFAULT_URL, data=form_data, cookies=cookies, headers=HEADERS, -- GitLab