diff --git a/aplus.go b/aplus.go new file mode 100644 index 0000000..e2ec53b --- /dev/null +++ b/aplus.go @@ -0,0 +1,76 @@ +package main + +import ( + "encoding/json" + "fmt" + "io" + "net/http" + "net/url" + "strings" +) + +func get_aplus(token string, link string, client http.Client) string { + resp, err := client.Get(link) + + if err != nil { + fmt.Println("Error performing GET request to initial link.") + } + defer resp.Body.Close() + body, _ := io.ReadAll(resp.Body) + + var aplus Aplus + json.Unmarshal(body, &aplus) + + return aplus.URL +} + +func get_form_from_request_body(req_body []byte) string { + body_str := string(req_body) + form_start := strings.Index(body_str, "") + 7 + form_html := req_body[form_start:form_end] + + return string(form_html) +} + +// parse_form extracts form fields and values from the given HTML form string. +func parse_form(form_html string) url.Values { + form_values := make(url.Values) + inputs := strings.Split(form_html, " - - - - - - - - - - - - - - - - - - - - - - - - - - - aPlus+ Attendance - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- This tool needs to be loaded in a new browser window -
- -
-
- -
-
- - - - - - -
- - - - - - - - - - - - - - - - - - - diff --git a/funcs.go b/funcs.go deleted file mode 100644 index 5e334ff..0000000 --- a/funcs.go +++ /dev/null @@ -1,128 +0,0 @@ -package main - -import ( - "encoding/json" - "fmt" - "io" - "net/http" - "net/url" - "strings" -) - -/* -func get_courses(token string, link string, client http.Client) []CanvasCourse { - resp, err := client.Get(link) - if err != nil { - fmt.Println("Error performing GET request to get courses.") - } - defer resp.Body.Close() - body, err := io.ReadAll(resp.Body) - - if err != nil { - fmt.Println("Error trying to read html body for courses.") - } - - var canvas_courses []CanvasCourse - err2 := json.Unmarshal(body, &canvas_courses) - if err2 != nil { - fmt.Println(err2) - return nil - } - - return canvas_courses -} - -// Need to change this to grab both ID and name, return as pairs. -func get_course_id_name_pair(canvas_courses []CanvasCourse) []uint64 { - var courses []uint64 - - for _, course := range canvas_courses { - courses = append(courses, course.ID%10000) - } - return courses -} - -func select_course() int { - // course selection by user happens below - //favorites := fmt.Sprintf("%s/users/self/favorites/courses?access_token=%s&per_page=100", base_link, token) - //all_courses := fmt.Sprintf("%s/courses?access_token=%s&per_page=100", base_link,token) - // var canvas_courses []CanvasCourse - //canvas_courses = get_courses(token, favorites, client) - //var course_ids []uint64 - //course_ids = get_course_ids(canvas_courses) - //selected := 1 // course_ids[selected] - // course selection by user happens above - return 0 -} -*/ - -func get_aplus(token string, link string, client http.Client) string { - resp, err := client.Get(link) - - if err != nil { - fmt.Println("Error performing GET request to initial link.") - } - defer resp.Body.Close() - body, err := io.ReadAll(resp.Body) - - if err != nil { - fmt.Println("Error reading body of initial aplus html response " + - "which is supposed to contain a one-time link for getting the form.") - } - - var aplus Aplus - json.Unmarshal(body, &aplus) - - return aplus.URL -} - -func get_form_from_request_body(req_body []byte) string { - body_str := string(req_body) - form_start := strings.Index(body_str, "") + 7 - form_html := req_body[form_start:form_end] - - return string(form_html) -} - -// parse_form extracts form fields and values from the given HTML form string. -func parse_form(form_html string) url.Values { - form_values := make(url.Values) - inputs := strings.Split(form_html, "