first commit
This commit is contained in:
44
cmd/canvasarchiver/main.go
Normal file
44
cmd/canvasarchiver/main.go
Normal file
@@ -0,0 +1,44 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
|
||||
"git.directme.in/Joren/CanvasArchiver/internal/auth"
|
||||
"git.directme.in/Joren/CanvasArchiver/internal/canvas"
|
||||
"git.directme.in/Joren/CanvasArchiver/internal/panopto"
|
||||
"git.directme.in/Joren/CanvasArchiver/internal/utils"
|
||||
)
|
||||
|
||||
func main() {
|
||||
httpClient := &http.Client{}
|
||||
|
||||
authenticator := auth.NewAuthenticator(httpClient)
|
||||
accessToken, err := authenticator.GetAccessToken()
|
||||
if err != nil {
|
||||
fmt.Printf("Authentication failed: %v\n", err)
|
||||
return
|
||||
}
|
||||
|
||||
var courseID string
|
||||
fmt.Print("Enter Course ID: ")
|
||||
fmt.Scanln(&courseID)
|
||||
|
||||
canvasClient := canvas.NewClient(httpClient, accessToken, courseID)
|
||||
|
||||
if err := canvasClient.GetCourseInfo(); err != nil {
|
||||
fmt.Printf("Error: %v\n", err)
|
||||
return
|
||||
}
|
||||
|
||||
courseRoot := utils.Sanitize(canvasClient.CourseName)
|
||||
fmt.Printf("[+] Target Course: %s\n", canvasClient.CourseName)
|
||||
os.MkdirAll(courseRoot, 0o755)
|
||||
|
||||
canvasClient.DownloadCourseFiles(courseRoot)
|
||||
|
||||
canvasClient.DownloadModules(courseRoot)
|
||||
|
||||
panopto.DownloadMainRecordings(httpClient, accessToken, courseID, courseRoot)
|
||||
}
|
||||
Reference in New Issue
Block a user