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