Skip to content

Commit 1c1df8c

Browse files
authored
Merge pull request #126 from gary-kim/first-semester-gpa
Shows first semester GPA during second semester
2 parents 78f897d + df0a6d4 commit 1c1df8c

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ firefox_build.zip
44
artifacts/
55
dist/
66
src/web_accessible_resources/libraries.txt
7+
.DS_Store
78

89
# Node
910
node_modules/

src/js/saspowerschoolff.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ function main_page () {
7676
const student_name = document.querySelector('#userName').querySelector('span').innerText;
7777
let second_semester = false;
7878
const courses = [];
79+
const courses_first_semester = [];
7980
const $grade_rows = $('#quickLookup table.grid').find('tr');
8081
let s1col = 0;
8182
let s2col = 0;
@@ -125,7 +126,32 @@ function main_page () {
125126
}
126127
}
127128
$("table[border='0'][cellpadding='3'][cellspacing='1'][width='100%']").prepend(`<tr><td align="center">Current Semester GPA (${second_semester ? 'S2' : 'S1'}): ${calculate_gpa(courses)}</td></tr>`);
129+
if (second_semester) {
130+
fetch("https://powerschool.sas.edu.sg/guardian/termgrades.html")
131+
.then((response) => {
132+
return response.text();
133+
})
134+
.then((data) => {
135+
const el = document.createElement("html");
136+
let element_list = [];
137+
el.innerHTML = data;
138+
element_list = el.getElementsByClassName("box-round")[0].getElementsByTagName("table")[0];
139+
element_list = element_list.getElementsByTagName("tbody")[0].getElementsByTagName("tr");
140+
if (element_list.length > 2) {
141+
for (let i = 2; i < element_list.length; i++) {
142+
const $prev_course = element_list[i];
143+
courses_first_semester.push({
144+
name: $prev_course.getElementsByTagName("td")[0].textContent.trim(),
145+
grade: $prev_course.getElementsByTagName("td")[1].textContent.trim(),
146+
link: $prev_course.getElementsByTagName("td")[2].getElementsByTagName("a")[0].href,
147+
fp: -1,
128148

149+
});
150+
}
151+
$("table[border='0'][cellpadding='3'][cellspacing='1'][width='100%']").prepend(`<tr><td align="center">Last Semester GPA (S1): ${calculate_gpa(courses_first_semester)}</td></tr>`);
152+
}
153+
});
154+
}
129155
// Hypo Grade Calculator
130156
const HypoGradesDiv = document.createElement('div');
131157
HypoGradesDiv.classList.add("hypo-grade-div-fixed");
@@ -166,6 +192,7 @@ function fill_percent ($fill_location, url_link, percents, pos_in_arr) {
166192
if (!percent_main_page) {
167193
return;
168194
}
195+
169196
$.ajax({
170197
url: url_link,
171198
}).done(function (data) {

0 commit comments

Comments
 (0)