@@ -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