Documentation ¶
Index ¶
- Constants
- Variables
- func DecodeRequestBodyToString(response *http.Response) string
- func LearnAuthRom(ticket string) string
- type AuthService
- type Class
- type ClassAll
- type ClassInfo
- type ClassList
- type ClassListAll
- type ClassObject
- type ClassService
- func (c *ClassService) GetAllClasses() (*ClassListAll, error)
- func (s *ClassService) GetClassInformation(classID string, courseType string) (*ClassInfo, error)
- func (s *ClassService) GetCourseList(semesterID string, courseType string) (*ClassList, error)
- func (s *ClassService) GetCurrentAndNextSemester() (string, error)
- type File
- type FileList
- type FilePage
- type FilePageList
- type FilePageObject
- type FileService
- func (f *FileService) DownloadFileFromFilePage(fileName string, FileID string) (int64, error)
- func (f *FileService) DownloadFileFromHomework(fileName string, courseID string, fileID string) (int64, error)
- func (f *FileService) GetFileList(courseID string, filePageID string, classType string) (*FileList, error)
- func (f *FileService) GetFilePageList(courseID string, classType string) (*FilePageList, error)
- type GradedHomeworkInfo
- type Homework
- type HomeworkList
- type HomeworkObject
- type HomeworkService
- func (h *HomeworkService) GetGradedHomeworkInfo(courseID string, homeworkID string, xsHomeworkID string) (*GradedHomeworkInfo, error)
- func (h *HomeworkService) GetGradedHomeworks(courseID string) (*HomeworkList, error)
- func (h *HomeworkService) GetSubmittedHomeworkInfo(courseID string, homeworkID string, xsHomeworkID string) (*SubmittedHomeworkInfo, error)
- func (h *HomeworkService) GetSubmmitedNotGradedHomeworks(courseID string) (*HomeworkList, error)
- func (h *HomeworkService) GetUnsubmittedHomeworkInfo(courseID string, homeworkID string, xsHomeworkID string) (*UnsubmittedHomeworkInfo, error)
- func (h *HomeworkService) GetUnsubmittedHomeworks(courseID string) (*HomeworkList, error)
- type LearnClient
- type Notice
- type NoticeList
- type NoticeObject
- type NoticeService
- type Semester
- type SemesterList
- type SubmittedHomeworkInfo
- type UnsubmittedHomeworkInfo
- type UserService
Constants ¶
const ( LearnPrefix = "https://learn.tsinghua.edu.cn" RegistrarPrefix = "https://zhjw.cic.tsinghua.edu.cn" )
Global Consts
Variables ¶
var ( CurrentSemesterID string NextSemesterID string CourseType string )
Global variables
var (
MAX_SIZE int = 20
)
Functions ¶
func DecodeRequestBodyToString ¶
DecodeRequestBodyToString: Decode a byte response object into a string
func LearnAuthRom ¶
Types ¶
type Class ¶
type Class struct { Xnxq string `json:"xnxq"` // 学年学期 Wlkcid string `json:"wlkcid"` // 课程全ID Tpid string `json:"tpid"` // Kch string `json:"kch"` // 课程号 Kxhnumber string `json:"kxhnumber"` // 课程号 Kxh string `json:"kxh"` // 课序号 Kcm string `json:"kcm"` // 课中文名 Jsh string `json:"jsh"` // 教师号 Kssj string `json:"kssj"` // 开始时间 Jssj string `json:"jssj"` // 结束时间 Kcnr string `json:"kcnr"` // 课程内容 Xf string `json:"xf"` // 学分 Xs string `json:"xs"` // 学时 Cks string `json:"cks"` // Jxfs string `json:"jxfs"` // 教学方式 Kclx string `json:"kclx"` // 课程类型 Ksfs string `json:"ksfs"` // 考试方式 Lls int `json:"lls"` // 浏览数 Dys int `json:"dys"` // 答疑数 Zys int `json:"zys"` // 作业数 Tjzys int `json:"tjzys"` // 提交作业数 Zls int `json:"zls"` // 资料数 Jslls int `json:"jslls"` // 教师浏览数 Xslls int `json:"xslls"` // 学生浏览数 Jsdys int `json:"jsdys"` // 教师答疑数 Xsdys int `json:"xsdys"` // 学生答疑数 Kfyhlx string `json:"kfyhlx"` // 开放用户类型 Ddys int `json:"ddys"` // 答疑数 Tlts int `json:"ttls"` // 讨论帖数 Ggs int `json:"ggs"` // 公告数 Xtls int `json:"xtls"` // 学堂历史数? Jxbjs int `json:"jxbjs"` // 教学班级数? Jxkjs int `json:"jxkjs"` // 教学课件数 Kcfws int `json:"kcfws"` // 课程范围数 Wpgs int `json:"wpgs"` // 问卷数? Xss int `json:"xss"` // 学生数 Xsbds int `json:"xsbds"` // 学生报到数 Xzxss int `json:"xzxss"` // 学生在线数 Tkxss int `json:"tkxss"` // 退课学生数 Bbh string `json:"bbh"` // 版本号 Czr string `json:"czr"` // 创造人 Czsj string `json:"czsj"` // 创造时间 Bz string `json:"bz"` // 备注 Studentid string `json:"studentid"` // 学生号 Jsm string `json:"jsm"` // 教师名 Zyzs int `json:"zyzs"` // 作业总数 Wjzys int `json:"wjzys"` // 未交作业数 Xggs int `json:"xggs"` // 未读公告数 Ggzs int `json:"ggzs"` // 公告总数 Xkjs int `json:"xkjs"` // 未读课件数 Xskjs int `json:"xskjs"` // 课件总数 Fqtls int `json:"fqtls"` // 未读讨论帖数 Cytls int `json:"cytls"` // 已读讨论帖数 Xsdyzs int `json:"xsdyzs"` // 学生答疑总数 Yhddys int `json:"yhddys"` // 已回答答疑数 Ywkcm string `json:"ywkcm"` // 英文课程名 }
Class: struct containing information on Class
type ClassAll ¶
type ClassAll struct { Xnxq string `json:"xnxq"` // 学年学期 Wlkcid string `json:"wlkcid"` // 课程ID Kch string `json:"kch"` // 课程号 Kxh string `json:"kxh"` // 课序号 Kcm string `json:"kcm"` // 课程名 Jsh string `json:"jsh"` // 教授号 StudentId string `json:"studentid"` // 学生号 Jsm string `json:"jsm"` // 教授名 Kcflm string `json:"kcflm"` // 课程分类名 Ggs int `json:"ggs"` // 公告数 Jxbjs int `json:"jxbjs"` // Jxkjs int `json:"jxkjs"` // Zys int `json:"zys"` // 作业数 Kcdys int `json:"kcdys"` // 课程答疑数 Tlts int `json:"tlts"` // 讨论帖数 Lls int `json:"lls"` // 浏览数 Zyzs int `json:"zyzs"` // 作业总数 Fqtls int `json:"fqtls"` // 发起讨论数 Cytls int `json:"cytls"` // 参与讨论数 Xsdys int `json:"xsdys"` // 学生答疑数 Yxcs int `json:"yxcs"` // Bjgcs int `json:"bjgcs"` // Kjlls int `json:"Kjlls"` // Gglls int `json:"gglls"` // 公告浏览数 Tls int `json:"tls"` // 讨论数 Jslx string `json:"jslx"` // 教授类型 Ywkcm string `json:"ywkcm"` // 英文课程名 Id string `json:"id"` // id }
type ClassInfo ¶
type ClassInfo struct { // Main Information Title string // 课程 Title ClassName string // 课程名称 MainProfessor string // 主讲教师 HekaiProfessor string // 合开教师 ClassCredits string // 课程学分 ClassHours string // 课程学时 ClassScope string // 课程开放范围 ClassMaterialsCount string // 课程文件数 ClassHomeworkCount string // 布置作业书 ClassDiscussionCount string // 讨论贴数 // Other Information ClassDescription string // 课程简介 ClassEnglishDescription string // 英文课程简介 ClassSchedule string // 进度安排 ClassAssesmentMethod string // 考核方式 ClassReferenceMaterials string // 教材及参考书 ClassMainReference string // 主教材 ClassReferenceBooks string // 参考书 ClassProfessor string // 授课教师 ClassSelectionGuidance string // 选课指导 ClassPrerequisites string // 先修要求 ClassOpenOfficeHour string // Open Office Hour ClassGradingStandard string // 成绩评定标准 TeacherTeachingCharacteristics string // 教师教学特色 }
type ClassList ¶
type ClassList struct { CurrentUser string `json:"currentUser"` Message string `json:"message"` ResultList []Class `json:"resultList"` }
ClassList : A response for getting a list of classes
type ClassListAll ¶
type ClassListAll struct { Result string `json:"success"` Msg string `json:"msg"` Object ClassObject `json:"object"` }
ClassListAll : struct just for getting all classes (different from ClassList)
type ClassObject ¶
type ClassObject struct { ITotalRecords string `json:"iTotalRecords"` ITotalDisplayRecords string `json:"iTotalDisplayRecords"` IDisplayStart string `json:"iDisplayStart"` IDisplayLength string `json:"iDisplayLength"` SEcho string `json:"sEcho"` SSearch string `json:"sSearch"` AaData []ClassAll `json:"aaData"` }
type ClassService ¶
type ClassService service
func (*ClassService) GetAllClasses ¶
func (c *ClassService) GetAllClasses() (*ClassListAll, error)
GetAllClasses : Get a list of all classes
func (*ClassService) GetClassInformation ¶
func (s *ClassService) GetClassInformation(classID string, courseType string) (*ClassInfo, error)
GetClassInformation : Parse class information page (which is written in HTML) and return parts
func (*ClassService) GetCourseList ¶
func (s *ClassService) GetCourseList(semesterID string, courseType string) (*ClassList, error)
func (*ClassService) GetCurrentAndNextSemester ¶
func (s *ClassService) GetCurrentAndNextSemester() (string, error)
type File ¶
type File struct { Id string Filename string // 文件名字 Two int Three string Wlkcid string // 文件ID Summary string // 简要说明 Six string FileID string // 文件ID Eight int // FileSize int // 文件大小Bytes PublishedDate string // 发布时间 }
TODO: Better names for two, three, six, eight
type FileList ¶
type FileList struct { Result string `json:"result"` Msg string `json:"msg"` Object []File `json:"object"` }
TODO: 文件 per Tabs
type FilePageList ¶
type FilePageList struct { Result string `json:"result"` Msg string `json:"msg"` Object FilePageObject `json:"object"` }
TODO: 课程文件 Tabs (FilePageList) FilePageList :
type FilePageObject ¶
type FileService ¶
type FileService service
func (*FileService) DownloadFileFromFilePage ¶
func (f *FileService) DownloadFileFromFilePage(fileName string, FileID string) (int64, error)
downloadFileFromFilePage :
func (*FileService) DownloadFileFromHomework ¶
func (f *FileService) DownloadFileFromHomework(fileName string, courseID string, fileID string) (int64, error)
downloadFile :
func (*FileService) GetFileList ¶
func (f *FileService) GetFileList(courseID string, filePageID string, classType string) (*FileList, error)
getFileList :
func (*FileService) GetFilePageList ¶
func (f *FileService) GetFilePageList(courseID string, classType string) (*FilePageList, error)
getFilePageList :
type GradedHomeworkInfo ¶
type GradedHomeworkInfo struct { // 作业内容及要求 Title string // 作业标题 Description string // 作业说明 AttachmentName string // 作业附件 AttachmentLink string // 作业附件链接 AttachmentSize string // 作业附件大小 AnswerDesc string // 答案说明 AnswerAttachment string // 大答附件 AnswerAttachmentLink string // TODO: 答案附件链接 AnswerAttachmentSize string // TODO: 答案附件大小 PublishObject string // 发布对象 FinishType string // 完成方式 DueDate string // 截止日期 // 本人提交的作业 Studentid string // 提交日期 SubmissionDate string // 提交日期 SubmissionContent string // 上交作业内容 SubmissionAttachmentName string // 上交作业附件名字 SubmissionAttachmentLink string // 上交作业附件连接 SubmissionAttachmentSize string // TODO // 老师批阅结果 ReviewTeacher string // 批阅老师 ReviewTime string // 批阅时间 Grade string // 成绩 Comments string // 评语 CommentsAttachmentName string // 评语附件 CommentsAttachmentLink string // TODO CommentsAttachmentSize string // TODO }
GradedHomeworkInfo : A struct for a graded homework instance
type Homework ¶
type Homework struct { Kssj int `json:"kssj"` // 开始时间 KssjStr string `json:"kssjStr"` // 开始时间 String Jzsj int `json:"jzsj"` // 截止时间 JzsjStr string `json:"jzsjStr"` // 截止时间 String Bt string `json:"bt"` // 标题 Wz int `json:"wz"` // 序号 Zywcfs int `json:"zywcfs"` Zytjfs int `json:"zytjfs"` Jffs int `json:"jffs"` Mxdxmc string `json:"mxdxmc"` Mxdx string `json:"mxdx"` Wlkcid string `json:"wlkcid"` Xszyid string `json:"xszyid"` Xh string `json:"xh"` // 学号 Zyid string `json:"zyid"` // 作业ID Zynr string `json:"zynr"` // 作业内容 ZynrStr string `json:"zynrStr"` // 作业内容 Str Zyfjid string `json:"zyfjid"` // 作业附件ID Scr string `json:"scr"` // 上传人 Scsj string `json:"scsj"` // 上传时间 ScsjStr string `json:"scsjStr"` // 上传时间 Str Ggzh string `json:"gzzh"` Pysj string `json:"pysj"` // 批阅时间 PysjStr string `json:"pysjStr"` // 批阅时间 Str Pynr string `json:"pynr"` // 批阅内容 Pylj string `json:"pylj"` // Cj string `json:"cj"` // 成绩 Zt string `json:"zt"` // 状态 Pyzt string `json:"pyzt"` // 批阅状态 Qzid string `json:"qzid"` Bz string `json:"bz"` Qzmc string `json:"qzmc"` Xm string `json:"xm"` // 姓名 Dwmc string `json:"dwmc"` Bm string `json:"bm"` // 班名 Cjgbsj string `json:"cjgbsj"` Fjdxxz string `json:"fjdxxz"` Djzcj string `json:"djzcj"` Ywdjzcj string `json:"ywdjzcj"` Jsm string `json:"jsm"` // 教师名 Wjmc string `json:"wjmc"` // 文件名称 Wjdx string `json:"wjdx"` // 文件大小 Id string `json:"id"` // ID }
type HomeworkList ¶
type HomeworkList struct { Result string `json:"result"` Msg string `json:"msg"` Object HomeworkObject `json:"object"` }
type HomeworkObject ¶
type HomeworkObject struct { ITotalRecords string `json:"iTotalRecords"` ITotalDisplayRecords string `json:"iTotalDisplayRecords"` IDisplayStart string `json:"iDisplayStart"` IDisplayLength string `json:"iDisplayLength"` SEcho string `json:"sEcho"` SSearch string `json:"sSearch"` AaData []Homework `json:"aaData"` }
type HomeworkService ¶
type HomeworkService service
func (*HomeworkService) GetGradedHomeworkInfo ¶
func (h *HomeworkService) GetGradedHomeworkInfo(courseID string, homeworkID string, xsHomeworkID string) (*GradedHomeworkInfo, error)
func (*HomeworkService) GetGradedHomeworks ¶
func (h *HomeworkService) GetGradedHomeworks(courseID string) (*HomeworkList, error)
func (*HomeworkService) GetSubmittedHomeworkInfo ¶
func (h *HomeworkService) GetSubmittedHomeworkInfo(courseID string, homeworkID string, xsHomeworkID string) (*SubmittedHomeworkInfo, error)
func (*HomeworkService) GetSubmmitedNotGradedHomeworks ¶
func (h *HomeworkService) GetSubmmitedNotGradedHomeworks(courseID string) (*HomeworkList, error)
func (*HomeworkService) GetUnsubmittedHomeworkInfo ¶
func (h *HomeworkService) GetUnsubmittedHomeworkInfo(courseID string, homeworkID string, xsHomeworkID string) (*UnsubmittedHomeworkInfo, error)
func (*HomeworkService) GetUnsubmittedHomeworks ¶
func (h *HomeworkService) GetUnsubmittedHomeworks(courseID string) (*HomeworkList, error)
type LearnClient ¶
type LearnClient struct { // Services for LearnClient API Auth *AuthService User *UserService Class *ClassService File *FileService Homework *HomeworkService Notice *NoticeService // contains filtered or unexported fields }
LearnClient: The GoLearn client
func NewLearnClient ¶
func NewLearnClient() *LearnClient
NewLearnClient: New anonymous client. To login as authenticated user, use LearnClient.Login
type Notice ¶
type Notice struct { Id string `json:"id"` // ID=公告ID+学号 Ggid string `json:"ggid"` // 公告ID Bt string `json:"bt"` // 标题 Xh string `json:"xh"` // 学号 Wlkcid string `json:"wlkcid"` // Fbr string `json:"fbr"` // 发布人 Fbrxm string `json:"fbrxm"` // 发布人姓名 Fbsj string `json:"fbsj"` // 发布时间 FbsjStr string `json:"fbsjStr"` // 发布时间 Str Ydsj string `json:"ydsj"` // 阅读时间 Sfqd string `json:"sfqd"` // 是否确定?// FLAG Ggnr string `json:"ggnr"` // 公告内容 GgnrStr string `json:"ggnrStr"` // 公告内容 Str GgnrMini string `json:"ggnrMini"` // 公告内容 Mini Fjmc string `json:"fjmc"` // 附件名称 Sfyd string `json:"sfyd"` // 是否阅读 }
type NoticeList ¶
type NoticeList struct { Result string `json:"result"` Msg string `json:"msg"` Object NoticeObject `json:"object"` }
type NoticeObject ¶
type NoticeObject struct { ITotalRecords string `json:"iTotalRecords"` ITotalDisplayRecords string `json:"iTotalDisplayRecords"` IDisplayStart string `json:"iDisplayStart"` IDisplayLength string `json:"iDisplayLength"` SEcho string `json:"sEcho"` SSearch string `json:"sSearch"` AaData []Notice `json:"aaData"` }
type NoticeService ¶
type NoticeService service
func (*NoticeService) GetNoticeList ¶
func (n *NoticeService) GetNoticeList(courseID string) (*NoticeList, error)
type SemesterList ¶
type SemesterList struct { Result map[string]string // Current Semester Message string ResultList []Semester `json:"resultList"` // Remaining Semesters }
SemesterList : A response for getting the current semester
type SubmittedHomeworkInfo ¶
type SubmittedHomeworkInfo struct { // 作业内容及要求 Title string // 作业标题 Description string // 作业说明 AttachmentName string // 作业附件 AttachmentLink string // 作业附件链接 AttachmentSize string // TODO 作业附件大小 AnswerDesc string // 答案说明 AnswerAttachmentName string // TODO 大答附件 AnswerAttachmentLink string // TODO 答案附件链接 AnswerAttachmentSize string // TODO 答案附件大小 PublishObject string // 发布对象 FinishType string // 完成方式 // 本人提交的作业 Studentid string // 学号 SubmissionDate string // 提交日期 SubmissionContent string // 上交作业内容 SubmissionAttachmentName string // 上交作业附件 SubmissionAttachmentLink string // 上交作业附件连接 SubmissionAttachmentSize string // 上交作业附件大小 }
SubmittedHomeworkInfo : A struct for a submitted homework, but not graded hw instance
type UnsubmittedHomeworkInfo ¶
type UnsubmittedHomeworkInfo struct { // 作业内容及要求 Title string // 作业标题 Description string // 作业说明 AttachmentName string // 作业附件 AttachmentLink string // 作业附件链接 AttachmentSize string // 作业附件大小 AnswerDesc string // 答案说明 AnswerAttachmentName string // TODO 大答附件 AnswerAttachmentLink string // TODO 答案附件链接 AnswerAttachmentSize string // TODO 答案附件大小 PublishObject string // 发布对象 FinishType string // 完成方式 DueDate string // 截止日期 }
UnsubmittedHomeworkInfo : A struct for a unsubmmited homework instance
type UserService ¶
type UserService service
UserService: Provides User information service of Learn Account
func (*UserService) GetUserInformation ¶
func (s *UserService) GetUserInformation() (string, string, string, error)
GetUserInformation: Get User Information after logging in, such as name, department, type (student/teacher)