diff options
| author | Juan Roig <jaroig@outlook.com> | 2023-11-14 04:23:18 -0500 |
|---|---|---|
| committer | Juan Roig <jaroig@outlook.com> | 2023-11-14 04:23:18 -0500 |
| commit | aa16b741d54325527eb6bea451cb24526551ab52 (patch) | |
| tree | 812112d664df26e85484aee72ca06e8f15bebadf | |
| parent | dc7d8df66bb78485cd935118c4840fde4cb6fe4e (diff) | |
Add list courses functions, remove unnecessary functions, update README.
| -rw-r--r-- | README.md | 18 | ||||
| -rw-r--r-- | aplus.go | 3 | ||||
| -rw-r--r-- | canvas.go | 31 | ||||
| -rw-r--r-- | main.go | 1 |
4 files changed, 31 insertions, 22 deletions
| @@ -1,13 +1,23 @@ | |||
| 1 | # aplus | 1 | # aplus |
| 2 | 2 | ||
| 3 | aplus cli | 3 | This is an aplus cli utility created for students at Florida Polytechnic University to submit their aplus codes through the CLI. |
| 4 | In time, we intend to generalize this utility to all universities. | ||
| 5 | In the meantime however, any students from other universities wishing to use the utility may change the base_link and external_tools_code (you see this in the URL when you navigate to Aplus attendance within your course) variables. | ||
| 4 | 6 | ||
| 5 | # Usage | 7 | ## Usage |
| 6 | 8 | ||
| 7 | # Launch interactive prompt | 9 | ### List all courses and canvas course codes |
| 8 | aplus | 10 | aplus |
| 11 | aplus --list-courses | ||
| 12 | aplus -l | ||
| 9 | 13 | ||
| 10 | # Enter code immediately | 14 | ### List favorite courses and canvas course codes |
| 15 | aplus --list-favorites | ||
| 16 | |||
| 17 | ### Enter code immediately for an active code | ||
| 11 | aplus -c <code> | 18 | aplus -c <code> |
| 12 | aplus --code <code> | 19 | aplus --code <code> |
| 13 | 20 | ||
| 21 | ### Enter code for a specified course | ||
| 22 | aplus -c <code> --course <course_code> | ||
| 23 | aplus --code <code> --course <course_code> \ No newline at end of file | ||
| @@ -11,7 +11,8 @@ import ( | |||
| 11 | ) | 11 | ) |
| 12 | 12 | ||
| 13 | func launch_aplus(course_code int) { | 13 | func launch_aplus(course_code int) { |
| 14 | aplus_link := fmt.Sprintf("%s/courses/%d/external_tools/sessionless_launch?id=913&access_token=%s", base_link, course_code, token) // 7329 always works | 14 | aplus_link := fmt.Sprintf("%s/courses/%d/external_tools/sessionless_launch?id=%d&access_token=%s", |
| 15 | base_link, course_code, external_tools_code, token) | ||
| 15 | aplus := get_aplus(token, aplus_link, client) | 16 | aplus := get_aplus(token, aplus_link, client) |
| 16 | 17 | ||
| 17 | resp, _ := client.Get(aplus) | 18 | resp, _ := client.Get(aplus) |
| @@ -14,7 +14,7 @@ import ( | |||
| 14 | func initialize() { | 14 | func initialize() { |
| 15 | base_link = "https://floridapolytechnic.instructure.com/api/v1" | 15 | base_link = "https://floridapolytechnic.instructure.com/api/v1" |
| 16 | token = os.Getenv("CANVAS_API_KEY") | 16 | token = os.Getenv("CANVAS_API_KEY") |
| 17 | 17 | external_tools_code = 913 | |
| 18 | jar, _ := cookiejar.New(&cookiejar.Options{ | 18 | jar, _ := cookiejar.New(&cookiejar.Options{ |
| 19 | PublicSuffixList: publicsuffix.List, | 19 | PublicSuffixList: publicsuffix.List, |
| 20 | }) | 20 | }) |
| @@ -48,27 +48,24 @@ func get_courses(token string, link string, client http.Client) []CanvasCourse { | |||
| 48 | return canvas_courses | 48 | return canvas_courses |
| 49 | } | 49 | } |
| 50 | 50 | ||
| 51 | // Need to change this to grab both ID and name, return as pairs. | 51 | func list_all_courses() { |
| 52 | func get_course_id_name_pair(canvas_courses []CanvasCourse) []uint64 { | 52 | all_courses := fmt.Sprintf("%s/courses?access_token=%s&per_page=100", base_link, token) |
| 53 | var courses []uint64 | 53 | |
| 54 | canvas_courses := get_courses(token, all_courses, client) | ||
| 54 | 55 | ||
| 55 | for _, course := range canvas_courses { | 56 | for _, course := range canvas_courses { |
| 56 | courses = append(courses, course.ID%10000) | 57 | fmt.Printf("%s, %d\n", course.Name, course.ID%10000) |
| 57 | } | 58 | } |
| 58 | return courses | ||
| 59 | } | 59 | } |
| 60 | 60 | ||
| 61 | /* | 61 | func list_favorite_courses() { |
| 62 | func select_course() int { | 62 | |
| 63 | // course selection by user happens below | 63 | // course selection by user happens below |
| 64 | favorites := fmt.Sprintf("%s/users/self/favorites/courses?access_token=%s&per_page=100", base_link, token) | 64 | favorites := fmt.Sprintf("%s/users/self/favorites/courses?access_token=%s&per_page=100", base_link, token) |
| 65 | all_courses := fmt.Sprintf("%s/courses?access_token=%s&per_page=100", base_link, token) | 65 | |
| 66 | var canvas_courses []CanvasCourse | 66 | canvas_courses := get_courses(token, favorites, client) |
| 67 | canvas_courses = get_courses(token, favorites, client) | 67 | |
| 68 | var course_ids []uint64 | 68 | for _, course := range canvas_courses { |
| 69 | course_ids = get_course_ids(canvas_courses) | 69 | fmt.Printf("%s, %d\n", course.Name, course.ID%10000) |
| 70 | //selected := 1 // course_ids[selected] | 70 | } |
| 71 | // course selection by user happens above | ||
| 72 | return 0 | ||
| 73 | } | 71 | } |
| 74 | */ | ||
| @@ -6,6 +6,7 @@ import ( | |||
| 6 | 6 | ||
| 7 | var base_link string | 7 | var base_link string |
| 8 | var token string | 8 | var token string |
| 9 | var external_tools_code int | ||
| 9 | var client http.Client | 10 | var client http.Client |
| 10 | 11 | ||
| 11 | func main() { | 12 | func main() { |
