package main import ( "encoding/json" "fmt" "html" "io" "net/http" "net/url" "strings" ) func launch_aplus(course_code int, attendance_code string) { aplus_link := fmt.Sprintf("%s/courses/%d/external_tools/sessionless_launch?id=%d&access_token=%s", base_link, course_code, external_tools_code, token) aplus := get_aplus(token, aplus_link, client) resp, _ := client.Get(aplus) body, _ := io.ReadAll(resp.Body) form_str := get_form_from_request_body(body) form_values := parse_form(form_str) resp, _ = client.PostForm("https://floridapoly.aplusattendance.com/canvas", form_values) body, _ = io.ReadAll(resp.Body) submit_code(string(body), attendance_code, "https://floridapoly.aplusattendance.com/canvas/student/") // fmt.Println(string(body)) } func get_aplus(token string, link string, client http.Client) string { resp, _ := client.Get(link) body, _ := io.ReadAll(resp.Body) var aplus Aplus json.Unmarshal(body, &aplus) return aplus.URL } func submit_code(cur_body string, attendance_code string, current_url string) { // the links to submit the code for a class is under the dayPanel div daypanel_start := strings.Index(cur_body, "