2023-10-27 19:02:38 -04:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
2023-11-20 10:06:35 -05:00
|
|
|
"flag"
|
2023-11-14 22:42:25 -05:00
|
|
|
"fmt"
|
2023-10-27 19:02:38 -04:00
|
|
|
"net/http"
|
2023-11-15 03:58:38 -05:00
|
|
|
"os"
|
2023-10-27 19:02:38 -04:00
|
|
|
)
|
|
|
|
|
2023-11-07 00:21:48 -05:00
|
|
|
var base_link string
|
2023-11-20 10:06:35 -05:00
|
|
|
var base_aplus_link string
|
|
|
|
var external_tools_code int
|
2023-11-07 00:21:48 -05:00
|
|
|
var token string
|
2023-11-13 02:08:03 -05:00
|
|
|
var client http.Client
|
2023-11-07 00:21:48 -05:00
|
|
|
|
2023-11-20 10:06:35 -05:00
|
|
|
func usage() {
|
|
|
|
fmt.Println("Usage: aplus [--code attendance_code --course course_code] [--list] [--listfav] [--help]")
|
|
|
|
}
|
|
|
|
|
2023-10-27 19:02:38 -04:00
|
|
|
func main() {
|
2023-11-07 00:21:48 -05:00
|
|
|
initialize()
|
2023-11-04 01:55:30 -04:00
|
|
|
|
2023-11-20 10:06:35 -05:00
|
|
|
var code string
|
|
|
|
var course int
|
|
|
|
var listall bool
|
|
|
|
var listfav bool
|
|
|
|
var help bool
|
2023-11-15 03:58:38 -05:00
|
|
|
|
2023-11-20 10:06:35 -05:00
|
|
|
flag.StringVar(&code, "code", "", "5 character attendance code")
|
|
|
|
flag.StringVar(&code, "c", "", "5 character attendance code")
|
|
|
|
flag.IntVar(&course, "course", -1, "canvas course code")
|
|
|
|
flag.IntVar(&course, "C", -1, "canvas course code")
|
|
|
|
flag.BoolVar(&listall, "list", false, "list all canvas courses")
|
|
|
|
flag.BoolVar(&listall, "L", false, "list all canvas courses")
|
|
|
|
flag.BoolVar(&listfav, "listfav", false, "list favorited canvas courses")
|
|
|
|
flag.BoolVar(&listfav, "F", false, "list favorited canvas courses")
|
|
|
|
flag.BoolVar(&help, "help", false, "view usage message")
|
|
|
|
flag.BoolVar(&help, "h", false, "view usage message")
|
2023-10-30 17:58:38 -04:00
|
|
|
|
2023-11-20 10:06:35 -05:00
|
|
|
flag.Parse()
|
|
|
|
|
|
|
|
if (code == "" && course == -1 && !listall && !listfav) {
|
|
|
|
usage()
|
|
|
|
os.Exit(1)
|
2023-11-15 03:58:38 -05:00
|
|
|
}
|
2023-11-14 22:42:25 -05:00
|
|
|
|
2023-11-20 10:06:35 -05:00
|
|
|
if (listall) {
|
2023-11-14 22:42:25 -05:00
|
|
|
list_all_courses()
|
2023-11-20 10:06:35 -05:00
|
|
|
os.Exit(0)
|
2023-11-14 22:42:25 -05:00
|
|
|
}
|
|
|
|
|
2023-11-20 10:06:35 -05:00
|
|
|
if (listfav) {
|
2023-11-14 22:42:25 -05:00
|
|
|
list_favorite_courses()
|
2023-11-20 10:06:35 -05:00
|
|
|
os.Exit(0)
|
|
|
|
}
|
|
|
|
|
|
|
|
if (help) {
|
|
|
|
usage()
|
|
|
|
os.Exit(0)
|
|
|
|
}
|
|
|
|
|
|
|
|
if (len(code) != 5) {
|
|
|
|
fmt.Println("Attendance code must be 5 characters long")
|
|
|
|
os.Exit(1)
|
2023-11-14 22:42:25 -05:00
|
|
|
}
|
|
|
|
|
2023-11-20 10:06:35 -05:00
|
|
|
if code != "" && course != -1 {
|
|
|
|
fmt.Printf("%d %s\n", course, code)
|
|
|
|
submit_code(course, code)
|
|
|
|
} else {
|
|
|
|
usage()
|
|
|
|
os.Exit(1)
|
2023-11-14 22:42:25 -05:00
|
|
|
}
|
2023-11-04 01:55:30 -04:00
|
|
|
}
|