@robertying/thu-learn-lib 0.0.0-stage → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +324 -2
- package/lib/auth.d.ts +11 -0
- package/lib/auth.d.ts.map +1 -0
- package/lib/auth.js +99 -0
- package/lib/auth.js.map +1 -0
- package/lib/calendar.d.ts +16 -0
- package/lib/calendar.d.ts.map +1 -0
- package/lib/calendar.js +81 -0
- package/lib/calendar.js.map +1 -0
- package/lib/contents.d.ts +9 -0
- package/lib/contents.d.ts.map +1 -0
- package/lib/contents.js +51 -0
- package/lib/contents.js.map +1 -0
- package/lib/courses.d.ts +11 -0
- package/lib/courses.d.ts.map +1 -0
- package/lib/courses.js +94 -0
- package/lib/courses.js.map +1 -0
- package/lib/discussions.d.ts +11 -0
- package/lib/discussions.d.ts.map +1 -0
- package/lib/discussions.js +56 -0
- package/lib/discussions.js.map +1 -0
- package/lib/favorites.d.ts +35 -0
- package/lib/favorites.d.ts.map +1 -0
- package/lib/favorites.js +150 -0
- package/lib/favorites.js.map +1 -0
- package/lib/files.d.ts +13 -0
- package/lib/files.d.ts.map +1 -0
- package/lib/files.js +167 -0
- package/lib/files.js.map +1 -0
- package/lib/homework.d.ts +17 -0
- package/lib/homework.d.ts.map +1 -0
- package/lib/homework.js +194 -0
- package/lib/homework.js.map +1 -0
- package/lib/index.d.ts +134 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +219 -0
- package/lib/index.js.map +1 -0
- package/lib/notices.d.ts +14 -0
- package/lib/notices.d.ts.map +1 -0
- package/lib/notices.js +92 -0
- package/lib/notices.js.map +1 -0
- package/lib/questionnaires.d.ts +7 -0
- package/lib/questionnaires.d.ts.map +1 -0
- package/lib/questionnaires.js +62 -0
- package/lib/questionnaires.js.map +1 -0
- package/lib/request.d.ts +57 -0
- package/lib/request.d.ts.map +1 -0
- package/lib/request.js +197 -0
- package/lib/request.js.map +1 -0
- package/lib/types.d.ts +433 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +98 -0
- package/lib/types.js.map +1 -0
- package/lib/urls.d.ts +78 -0
- package/lib/urls.d.ts.map +1 -0
- package/lib/urls.js +160 -0
- package/lib/urls.js.map +1 -0
- package/lib/user.d.ts +7 -0
- package/lib/user.d.ts.map +1 -0
- package/lib/user.js +22 -0
- package/lib/user.js.map +1 -0
- package/lib/utils.d.ts +16 -0
- package/lib/utils.d.ts.map +1 -0
- package/lib/utils.js +117 -0
- package/lib/utils.js.map +1 -0
- package/package.json +67 -4
- package/src/auth.ts +121 -0
- package/src/calendar.ts +102 -0
- package/src/contents.ts +63 -0
- package/src/courses.ts +111 -0
- package/src/discussions.ts +80 -0
- package/src/favorites.ts +167 -0
- package/src/files.ts +197 -0
- package/src/homework.ts +284 -0
- package/src/index.ts +345 -0
- package/src/notices.ts +115 -0
- package/src/questionnaires.ts +76 -0
- package/src/request.ts +214 -0
- package/src/types.ts +494 -0
- package/src/urls.ts +257 -0
- package/src/user.ts +28 -0
- package/src/utils.ts +125 -0
package/lib/types.d.ts
ADDED
|
@@ -0,0 +1,433 @@
|
|
|
1
|
+
import type { CookieJar } from 'tough-cookie';
|
|
2
|
+
export type Fetch = typeof globalThis.fetch;
|
|
3
|
+
export type Credential = {
|
|
4
|
+
username?: string;
|
|
5
|
+
password?: string;
|
|
6
|
+
fingerPrint?: string;
|
|
7
|
+
fingerGenPrint?: string;
|
|
8
|
+
fingerGenPrint3?: string;
|
|
9
|
+
};
|
|
10
|
+
export type CredentialProvider = () => Credential | Promise<Credential>;
|
|
11
|
+
export type HelperConfig = {
|
|
12
|
+
provider?: CredentialProvider;
|
|
13
|
+
fetch?: Fetch;
|
|
14
|
+
cookieJar?: CookieJar;
|
|
15
|
+
generatePreviewUrlForFirstPage?: boolean;
|
|
16
|
+
/** at most this many requests in flight at once, including login (default 6; `Infinity` for no limit) */
|
|
17
|
+
maxConcurrentRequests?: number;
|
|
18
|
+
/** milliseconds to wait for a response before rejecting with `FailReason.REQUEST_TIMEOUT` (default 60000; 0 for none) */
|
|
19
|
+
requestTimeout?: number;
|
|
20
|
+
};
|
|
21
|
+
export declare enum FailReason {
|
|
22
|
+
NO_CREDENTIAL = "no credential provided",
|
|
23
|
+
ERROR_FETCH_FROM_ID = "could not fetch ticket from id.tsinghua.edu.cn",
|
|
24
|
+
BAD_CREDENTIAL = "bad credential",
|
|
25
|
+
ERROR_ROAMING = "could not roam to learn.tsinghua.edu.cn",
|
|
26
|
+
NOT_LOGGED_IN = "not logged in or login timeout",
|
|
27
|
+
NOT_IMPLEMENTED = "not implemented",
|
|
28
|
+
INVALID_RESPONSE = "invalid response",
|
|
29
|
+
UNEXPECTED_STATUS = "unexpected status",
|
|
30
|
+
OPERATION_FAILED = "operation failed",
|
|
31
|
+
ERROR_SETTING_COOKIES = "could not set cookies",
|
|
32
|
+
REQUEST_TIMEOUT = "request timed out"
|
|
33
|
+
}
|
|
34
|
+
export interface ApiError {
|
|
35
|
+
reason: FailReason;
|
|
36
|
+
extra?: unknown;
|
|
37
|
+
}
|
|
38
|
+
export declare enum SemesterType {
|
|
39
|
+
FALL = "fall",
|
|
40
|
+
SPRING = "spring",
|
|
41
|
+
SUMMER = "summer",
|
|
42
|
+
UNKNOWN = ""
|
|
43
|
+
}
|
|
44
|
+
export declare enum ContentType {
|
|
45
|
+
NOTIFICATION = "notification",
|
|
46
|
+
FILE = "file",
|
|
47
|
+
HOMEWORK = "homework",
|
|
48
|
+
DISCUSSION = "discussion",
|
|
49
|
+
QUESTION = "question",
|
|
50
|
+
QUESTIONNAIRE = "questionnaire"
|
|
51
|
+
}
|
|
52
|
+
interface IUserInfo {
|
|
53
|
+
name: string;
|
|
54
|
+
department: string;
|
|
55
|
+
}
|
|
56
|
+
export type UserInfo = IUserInfo;
|
|
57
|
+
interface ISemesterInfo {
|
|
58
|
+
id: string;
|
|
59
|
+
startDate: string;
|
|
60
|
+
endDate: string;
|
|
61
|
+
startYear: number;
|
|
62
|
+
endYear: number;
|
|
63
|
+
type: SemesterType;
|
|
64
|
+
}
|
|
65
|
+
export type SemesterInfo = ISemesterInfo;
|
|
66
|
+
export declare enum CourseType {
|
|
67
|
+
STUDENT = "student",
|
|
68
|
+
TEACHER = "teacher"
|
|
69
|
+
}
|
|
70
|
+
interface ICourseInfo {
|
|
71
|
+
id: string;
|
|
72
|
+
name: string;
|
|
73
|
+
chineseName: string;
|
|
74
|
+
englishName: string;
|
|
75
|
+
/** only with `getCourseList(..., { timeAndLocation: true })`; see `getCourseTimeAndLocation` */
|
|
76
|
+
timeAndLocation?: string[];
|
|
77
|
+
url: string;
|
|
78
|
+
teacherName: string;
|
|
79
|
+
teacherNumber: string;
|
|
80
|
+
courseNumber: string;
|
|
81
|
+
courseIndex: number;
|
|
82
|
+
courseType: CourseType;
|
|
83
|
+
}
|
|
84
|
+
export type CourseInfo = ICourseInfo;
|
|
85
|
+
interface IRemoteFile {
|
|
86
|
+
id: string;
|
|
87
|
+
name: string;
|
|
88
|
+
downloadUrl: string;
|
|
89
|
+
previewUrl: string;
|
|
90
|
+
size: string;
|
|
91
|
+
}
|
|
92
|
+
export type RemoteFile = IRemoteFile;
|
|
93
|
+
export interface INotification {
|
|
94
|
+
id: string;
|
|
95
|
+
title: string;
|
|
96
|
+
content: string;
|
|
97
|
+
hasRead: boolean;
|
|
98
|
+
url: string;
|
|
99
|
+
markedImportant: boolean;
|
|
100
|
+
publishTime: string;
|
|
101
|
+
publisher: string;
|
|
102
|
+
expireTime?: string;
|
|
103
|
+
isFavorite: boolean;
|
|
104
|
+
comment?: string;
|
|
105
|
+
/** name of the attachment, if the notice has one; fetch it with `getNotificationAttachment` */
|
|
106
|
+
attachmentName?: string;
|
|
107
|
+
}
|
|
108
|
+
export interface INotificationDetail {
|
|
109
|
+
attachment?: RemoteFile;
|
|
110
|
+
}
|
|
111
|
+
export type Notification = INotification & INotificationDetail;
|
|
112
|
+
interface IFileCategory {
|
|
113
|
+
id: string;
|
|
114
|
+
title: string;
|
|
115
|
+
creationTime: Date;
|
|
116
|
+
}
|
|
117
|
+
export type FileCategory = IFileCategory;
|
|
118
|
+
interface IFile {
|
|
119
|
+
/** previously `id2` */
|
|
120
|
+
id: string;
|
|
121
|
+
/** previously `id` */
|
|
122
|
+
fileId: string;
|
|
123
|
+
/** note: will be unset when calling `getFileListByCategory` */
|
|
124
|
+
category?: FileCategory;
|
|
125
|
+
/** size in byte */
|
|
126
|
+
rawSize: number;
|
|
127
|
+
/** inaccurate size description (like '1M') */
|
|
128
|
+
size: string;
|
|
129
|
+
title: string;
|
|
130
|
+
description: string;
|
|
131
|
+
uploadTime: string;
|
|
132
|
+
publishTime: string;
|
|
133
|
+
downloadUrl: string;
|
|
134
|
+
/** preview is not supported on all types of files, check before use */
|
|
135
|
+
previewUrl: string;
|
|
136
|
+
isNew: boolean;
|
|
137
|
+
markedImportant: boolean;
|
|
138
|
+
visitCount: number;
|
|
139
|
+
downloadCount: number;
|
|
140
|
+
fileType: string;
|
|
141
|
+
/** for compatibility */
|
|
142
|
+
remoteFile: RemoteFile;
|
|
143
|
+
/** could not get favorite or comment info when using `getFileList` or in TA mode */
|
|
144
|
+
isFavorite?: boolean;
|
|
145
|
+
comment?: string;
|
|
146
|
+
}
|
|
147
|
+
export type File = IFile;
|
|
148
|
+
export interface IHomeworkStatus {
|
|
149
|
+
submitted: boolean;
|
|
150
|
+
graded: boolean;
|
|
151
|
+
}
|
|
152
|
+
export declare enum HomeworkGradeLevel {
|
|
153
|
+
/** 已阅 */
|
|
154
|
+
CHECKED = "checked",
|
|
155
|
+
A_PLUS = "A+",
|
|
156
|
+
A = "A",
|
|
157
|
+
A_MINUS = "A-",
|
|
158
|
+
B_PLUS = "B+",
|
|
159
|
+
/** 优秀 */
|
|
160
|
+
DISTINCTION = "distinction",
|
|
161
|
+
B = "B",
|
|
162
|
+
B_MINUS = "B-",
|
|
163
|
+
C_PLUS = "C+",
|
|
164
|
+
C = "C",
|
|
165
|
+
C_MINUS = "C-",
|
|
166
|
+
G = "G",
|
|
167
|
+
D_PLUS = "D+",
|
|
168
|
+
D = "D",
|
|
169
|
+
/** 免课 */
|
|
170
|
+
EXEMPTED_COURSE = "exempted course",
|
|
171
|
+
P = "P",
|
|
172
|
+
EX = "EX",
|
|
173
|
+
/** 免修 */
|
|
174
|
+
EXEMPTION = "exemption",
|
|
175
|
+
/** 通过 */
|
|
176
|
+
PASS = "pass",
|
|
177
|
+
/** 不通过 */
|
|
178
|
+
FAILURE = "failure",
|
|
179
|
+
W = "W",
|
|
180
|
+
I = "I",
|
|
181
|
+
/** 缓考 */
|
|
182
|
+
INCOMPLETE = "incomplete",
|
|
183
|
+
NA = "NA",
|
|
184
|
+
F = "F"
|
|
185
|
+
}
|
|
186
|
+
export interface IHomework extends IHomeworkStatus {
|
|
187
|
+
id: string;
|
|
188
|
+
/** @deprecated use `id` */
|
|
189
|
+
studentHomeworkId: string;
|
|
190
|
+
baseId: string;
|
|
191
|
+
title: string;
|
|
192
|
+
deadline: string;
|
|
193
|
+
lateSubmissionDeadline?: string;
|
|
194
|
+
url: string;
|
|
195
|
+
completionType: HomeworkCompletionType;
|
|
196
|
+
submissionType: HomeworkSubmissionType;
|
|
197
|
+
submitUrl: string;
|
|
198
|
+
submitTime?: string;
|
|
199
|
+
isLateSubmission: boolean;
|
|
200
|
+
grade?: number;
|
|
201
|
+
/** some homework has levels but not grades, like A/B/.../F */
|
|
202
|
+
gradeLevel?: HomeworkGradeLevel;
|
|
203
|
+
gradeTime?: string;
|
|
204
|
+
graderName?: string;
|
|
205
|
+
gradeContent?: string;
|
|
206
|
+
isFavorite: boolean;
|
|
207
|
+
favoriteTime?: string;
|
|
208
|
+
comment?: string;
|
|
209
|
+
excellentHomeworkList?: ExcellentHomework[];
|
|
210
|
+
}
|
|
211
|
+
export interface IHomeworkDetail {
|
|
212
|
+
description?: string;
|
|
213
|
+
/** attachment from teacher */
|
|
214
|
+
attachment?: RemoteFile;
|
|
215
|
+
/** answer from teacher */
|
|
216
|
+
answerContent?: string;
|
|
217
|
+
answerAttachment?: RemoteFile;
|
|
218
|
+
/** submitted content from student */
|
|
219
|
+
submittedContent?: string;
|
|
220
|
+
submittedAttachment?: RemoteFile;
|
|
221
|
+
/** grade from teacher */
|
|
222
|
+
gradeAttachment?: RemoteFile;
|
|
223
|
+
}
|
|
224
|
+
export type Homework = IHomework & IHomeworkDetail;
|
|
225
|
+
export declare enum HomeworkCompletionType {
|
|
226
|
+
INDIVIDUAL = 1,
|
|
227
|
+
GROUP = 2
|
|
228
|
+
}
|
|
229
|
+
export declare enum HomeworkSubmissionType {
|
|
230
|
+
WEB_LEARNING = 2,
|
|
231
|
+
OFFLINE = 0
|
|
232
|
+
}
|
|
233
|
+
export interface IExcellentHomework {
|
|
234
|
+
id: string;
|
|
235
|
+
baseId: string;
|
|
236
|
+
title: string;
|
|
237
|
+
url: string;
|
|
238
|
+
completionType: HomeworkCompletionType;
|
|
239
|
+
author: {
|
|
240
|
+
id: string;
|
|
241
|
+
name: string;
|
|
242
|
+
anonymous: boolean;
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
export type ExcellentHomework = IExcellentHomework & IHomeworkDetail;
|
|
246
|
+
export interface IHomeworkTA {
|
|
247
|
+
id: string;
|
|
248
|
+
index: number;
|
|
249
|
+
title: string;
|
|
250
|
+
description: string;
|
|
251
|
+
publisherId: string;
|
|
252
|
+
publishTime: string;
|
|
253
|
+
startTime: string;
|
|
254
|
+
deadline: string;
|
|
255
|
+
lateSubmissionDeadline?: string;
|
|
256
|
+
url: string;
|
|
257
|
+
completionType: HomeworkCompletionType;
|
|
258
|
+
submissionType: HomeworkSubmissionType;
|
|
259
|
+
gradedCount: number;
|
|
260
|
+
submittedCount: number;
|
|
261
|
+
unsubmittedCount: number;
|
|
262
|
+
}
|
|
263
|
+
export type HomeworkTA = IHomeworkTA;
|
|
264
|
+
export interface IHomeworkSubmitAttachment {
|
|
265
|
+
filename: string;
|
|
266
|
+
content: Blob;
|
|
267
|
+
}
|
|
268
|
+
export interface IDiscussionBase {
|
|
269
|
+
id: string;
|
|
270
|
+
title: string;
|
|
271
|
+
publisherName: string;
|
|
272
|
+
publishTime: string;
|
|
273
|
+
lastReplierName: string;
|
|
274
|
+
lastReplyTime: string;
|
|
275
|
+
visitCount: number;
|
|
276
|
+
replyCount: number;
|
|
277
|
+
isFavorite: boolean;
|
|
278
|
+
comment?: string;
|
|
279
|
+
}
|
|
280
|
+
interface IDiscussion extends IDiscussionBase {
|
|
281
|
+
url: string;
|
|
282
|
+
boardId: string;
|
|
283
|
+
}
|
|
284
|
+
export type Discussion = IDiscussion;
|
|
285
|
+
interface IQuestion extends IDiscussionBase {
|
|
286
|
+
url: string;
|
|
287
|
+
question: string;
|
|
288
|
+
}
|
|
289
|
+
export type Question = IQuestion;
|
|
290
|
+
export declare enum QuestionnaireDetailType {
|
|
291
|
+
SINGLE = "dnx",
|
|
292
|
+
MULTI = "dox",
|
|
293
|
+
TEXT = "wd"
|
|
294
|
+
}
|
|
295
|
+
export interface QuestionnaireDetail {
|
|
296
|
+
id: string;
|
|
297
|
+
index: number;
|
|
298
|
+
type: QuestionnaireDetailType;
|
|
299
|
+
required: boolean;
|
|
300
|
+
title: string;
|
|
301
|
+
score?: number;
|
|
302
|
+
options?: {
|
|
303
|
+
id: string;
|
|
304
|
+
index: number;
|
|
305
|
+
title: string;
|
|
306
|
+
}[];
|
|
307
|
+
}
|
|
308
|
+
export declare enum QuestionnaireType {
|
|
309
|
+
VOTE = "tp",
|
|
310
|
+
FORM = "tb",
|
|
311
|
+
SURVEY = "wj"
|
|
312
|
+
}
|
|
313
|
+
export interface IQuestionnaire {
|
|
314
|
+
id: string;
|
|
315
|
+
type: QuestionnaireType;
|
|
316
|
+
title: string;
|
|
317
|
+
startTime: string;
|
|
318
|
+
endTime: string;
|
|
319
|
+
uploadTime: string;
|
|
320
|
+
uploaderId: string;
|
|
321
|
+
uploaderName: string;
|
|
322
|
+
submitTime?: string;
|
|
323
|
+
isFavorite: boolean;
|
|
324
|
+
comment?: string;
|
|
325
|
+
url: string;
|
|
326
|
+
detail: QuestionnaireDetail[];
|
|
327
|
+
}
|
|
328
|
+
export type Questionnaire = IQuestionnaire;
|
|
329
|
+
/** which items get their extra per-item requests: none (default), all, or those the predicate accepts */
|
|
330
|
+
export type DetailSelector<T> = 'none' | 'all' | ((item: T) => boolean);
|
|
331
|
+
export interface CourseListOptions {
|
|
332
|
+
/** fetch each course's time and location (one request per course; default false) */
|
|
333
|
+
timeAndLocation?: boolean;
|
|
334
|
+
}
|
|
335
|
+
export interface HomeworkListOptions {
|
|
336
|
+
/**
|
|
337
|
+
* Which homework gets its detail (page + description JSON, 2 requests each); default `'none'`.
|
|
338
|
+
* The same as calling `getHomeworkDetail` for those items.
|
|
339
|
+
*/
|
|
340
|
+
details?: DetailSelector<IHomework>;
|
|
341
|
+
}
|
|
342
|
+
export interface NotificationListOptions {
|
|
343
|
+
/**
|
|
344
|
+
* Which notices with an attachment get it (1 request each); default `'none'`.
|
|
345
|
+
* The same as calling `getNotificationAttachment` for those items.
|
|
346
|
+
*/
|
|
347
|
+
attachments?: DetailSelector<INotification>;
|
|
348
|
+
}
|
|
349
|
+
export interface AllContentsOptions<T extends ContentType> {
|
|
350
|
+
courseType?: CourseType;
|
|
351
|
+
/** homework `details` or notification `attachments`, passed to each course's list */
|
|
352
|
+
details?: T extends ContentType.HOMEWORK ? DetailSelector<IHomework> : T extends ContentType.NOTIFICATION ? DetailSelector<INotification> : never;
|
|
353
|
+
}
|
|
354
|
+
export interface AllContentsResult<T extends ContentType> {
|
|
355
|
+
/** content of each course that succeeded */
|
|
356
|
+
contents: CourseContent<T>;
|
|
357
|
+
/** the error of each course that failed */
|
|
358
|
+
errors: {
|
|
359
|
+
[courseID: string]: unknown;
|
|
360
|
+
};
|
|
361
|
+
}
|
|
362
|
+
export type ContentTypeMap = {
|
|
363
|
+
[ContentType.NOTIFICATION]: Notification;
|
|
364
|
+
[ContentType.FILE]: File;
|
|
365
|
+
[ContentType.HOMEWORK]: Homework;
|
|
366
|
+
[ContentType.DISCUSSION]: Discussion;
|
|
367
|
+
[ContentType.QUESTION]: Question;
|
|
368
|
+
[ContentType.QUESTIONNAIRE]: Questionnaire;
|
|
369
|
+
};
|
|
370
|
+
interface ICourseContent<T extends ContentType> {
|
|
371
|
+
[id: string]: ContentTypeMap[T][];
|
|
372
|
+
}
|
|
373
|
+
export type CourseContent<T extends ContentType = ContentType> = ICourseContent<T>;
|
|
374
|
+
interface IFavoriteItem {
|
|
375
|
+
id: string;
|
|
376
|
+
type: ContentType;
|
|
377
|
+
title: string;
|
|
378
|
+
time: string;
|
|
379
|
+
state: string;
|
|
380
|
+
/** extra message. For homework, this will be deadline (plus score if graded). It's too flexible and hard to parse so we leave it as is. */
|
|
381
|
+
extra?: string;
|
|
382
|
+
semesterId: string;
|
|
383
|
+
courseId: string;
|
|
384
|
+
pinned: boolean;
|
|
385
|
+
pinnedTime?: string;
|
|
386
|
+
comment?: string;
|
|
387
|
+
addedTime: string;
|
|
388
|
+
/** for reference */
|
|
389
|
+
itemId: string;
|
|
390
|
+
}
|
|
391
|
+
export type FavoriteItem = IFavoriteItem;
|
|
392
|
+
interface ICommentItem {
|
|
393
|
+
id: string;
|
|
394
|
+
type: ContentType;
|
|
395
|
+
content: string;
|
|
396
|
+
contentHTML: string;
|
|
397
|
+
title: string;
|
|
398
|
+
semesterId: string;
|
|
399
|
+
courseId: string;
|
|
400
|
+
commentTime: string;
|
|
401
|
+
/** for reference */
|
|
402
|
+
itemId: string;
|
|
403
|
+
}
|
|
404
|
+
export type CommentItem = ICommentItem;
|
|
405
|
+
export interface CalendarEvent {
|
|
406
|
+
location: string;
|
|
407
|
+
status: string;
|
|
408
|
+
startTime: string;
|
|
409
|
+
endTime: string;
|
|
410
|
+
date: string;
|
|
411
|
+
courseName: string;
|
|
412
|
+
}
|
|
413
|
+
export interface CalendarOptions {
|
|
414
|
+
/** use the graduate calendar instead of the undergraduate one */
|
|
415
|
+
graduate?: boolean;
|
|
416
|
+
}
|
|
417
|
+
/** an inclusive date range, in yyyymmdd format */
|
|
418
|
+
export interface CalendarRange {
|
|
419
|
+
startDate: string;
|
|
420
|
+
endDate: string;
|
|
421
|
+
}
|
|
422
|
+
export interface CalendarResult {
|
|
423
|
+
/** events of every window that succeeded, in date order */
|
|
424
|
+
events: CalendarEvent[];
|
|
425
|
+
/** windows that failed even after a retry; empty when the whole range was fetched */
|
|
426
|
+
failedRanges: CalendarRange[];
|
|
427
|
+
}
|
|
428
|
+
export declare enum Language {
|
|
429
|
+
ZH = "zh",
|
|
430
|
+
EN = "en"
|
|
431
|
+
}
|
|
432
|
+
export {};
|
|
433
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/lib/types.js
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
export var FailReason;
|
|
2
|
+
(function (FailReason) {
|
|
3
|
+
FailReason["NO_CREDENTIAL"] = "no credential provided";
|
|
4
|
+
FailReason["ERROR_FETCH_FROM_ID"] = "could not fetch ticket from id.tsinghua.edu.cn";
|
|
5
|
+
FailReason["BAD_CREDENTIAL"] = "bad credential";
|
|
6
|
+
FailReason["ERROR_ROAMING"] = "could not roam to learn.tsinghua.edu.cn";
|
|
7
|
+
FailReason["NOT_LOGGED_IN"] = "not logged in or login timeout";
|
|
8
|
+
FailReason["NOT_IMPLEMENTED"] = "not implemented";
|
|
9
|
+
FailReason["INVALID_RESPONSE"] = "invalid response";
|
|
10
|
+
FailReason["UNEXPECTED_STATUS"] = "unexpected status";
|
|
11
|
+
FailReason["OPERATION_FAILED"] = "operation failed";
|
|
12
|
+
FailReason["ERROR_SETTING_COOKIES"] = "could not set cookies";
|
|
13
|
+
FailReason["REQUEST_TIMEOUT"] = "request timed out";
|
|
14
|
+
})(FailReason || (FailReason = {}));
|
|
15
|
+
export var SemesterType;
|
|
16
|
+
(function (SemesterType) {
|
|
17
|
+
SemesterType["FALL"] = "fall";
|
|
18
|
+
SemesterType["SPRING"] = "spring";
|
|
19
|
+
SemesterType["SUMMER"] = "summer";
|
|
20
|
+
SemesterType["UNKNOWN"] = "";
|
|
21
|
+
})(SemesterType || (SemesterType = {}));
|
|
22
|
+
export var ContentType;
|
|
23
|
+
(function (ContentType) {
|
|
24
|
+
ContentType["NOTIFICATION"] = "notification";
|
|
25
|
+
ContentType["FILE"] = "file";
|
|
26
|
+
ContentType["HOMEWORK"] = "homework";
|
|
27
|
+
ContentType["DISCUSSION"] = "discussion";
|
|
28
|
+
ContentType["QUESTION"] = "question";
|
|
29
|
+
ContentType["QUESTIONNAIRE"] = "questionnaire";
|
|
30
|
+
})(ContentType || (ContentType = {}));
|
|
31
|
+
export var CourseType;
|
|
32
|
+
(function (CourseType) {
|
|
33
|
+
CourseType["STUDENT"] = "student";
|
|
34
|
+
CourseType["TEACHER"] = "teacher";
|
|
35
|
+
})(CourseType || (CourseType = {}));
|
|
36
|
+
export var HomeworkGradeLevel;
|
|
37
|
+
(function (HomeworkGradeLevel) {
|
|
38
|
+
/** 已阅 */
|
|
39
|
+
HomeworkGradeLevel["CHECKED"] = "checked";
|
|
40
|
+
HomeworkGradeLevel["A_PLUS"] = "A+";
|
|
41
|
+
HomeworkGradeLevel["A"] = "A";
|
|
42
|
+
HomeworkGradeLevel["A_MINUS"] = "A-";
|
|
43
|
+
HomeworkGradeLevel["B_PLUS"] = "B+";
|
|
44
|
+
/** 优秀 */
|
|
45
|
+
HomeworkGradeLevel["DISTINCTION"] = "distinction";
|
|
46
|
+
HomeworkGradeLevel["B"] = "B";
|
|
47
|
+
HomeworkGradeLevel["B_MINUS"] = "B-";
|
|
48
|
+
HomeworkGradeLevel["C_PLUS"] = "C+";
|
|
49
|
+
HomeworkGradeLevel["C"] = "C";
|
|
50
|
+
HomeworkGradeLevel["C_MINUS"] = "C-";
|
|
51
|
+
HomeworkGradeLevel["G"] = "G";
|
|
52
|
+
HomeworkGradeLevel["D_PLUS"] = "D+";
|
|
53
|
+
HomeworkGradeLevel["D"] = "D";
|
|
54
|
+
/** 免课 */
|
|
55
|
+
HomeworkGradeLevel["EXEMPTED_COURSE"] = "exempted course";
|
|
56
|
+
HomeworkGradeLevel["P"] = "P";
|
|
57
|
+
HomeworkGradeLevel["EX"] = "EX";
|
|
58
|
+
/** 免修 */
|
|
59
|
+
HomeworkGradeLevel["EXEMPTION"] = "exemption";
|
|
60
|
+
/** 通过 */
|
|
61
|
+
HomeworkGradeLevel["PASS"] = "pass";
|
|
62
|
+
/** 不通过 */
|
|
63
|
+
HomeworkGradeLevel["FAILURE"] = "failure";
|
|
64
|
+
HomeworkGradeLevel["W"] = "W";
|
|
65
|
+
HomeworkGradeLevel["I"] = "I";
|
|
66
|
+
/** 缓考 */
|
|
67
|
+
HomeworkGradeLevel["INCOMPLETE"] = "incomplete";
|
|
68
|
+
HomeworkGradeLevel["NA"] = "NA";
|
|
69
|
+
HomeworkGradeLevel["F"] = "F";
|
|
70
|
+
})(HomeworkGradeLevel || (HomeworkGradeLevel = {}));
|
|
71
|
+
export var HomeworkCompletionType;
|
|
72
|
+
(function (HomeworkCompletionType) {
|
|
73
|
+
HomeworkCompletionType[HomeworkCompletionType["INDIVIDUAL"] = 1] = "INDIVIDUAL";
|
|
74
|
+
HomeworkCompletionType[HomeworkCompletionType["GROUP"] = 2] = "GROUP";
|
|
75
|
+
})(HomeworkCompletionType || (HomeworkCompletionType = {}));
|
|
76
|
+
export var HomeworkSubmissionType;
|
|
77
|
+
(function (HomeworkSubmissionType) {
|
|
78
|
+
HomeworkSubmissionType[HomeworkSubmissionType["WEB_LEARNING"] = 2] = "WEB_LEARNING";
|
|
79
|
+
HomeworkSubmissionType[HomeworkSubmissionType["OFFLINE"] = 0] = "OFFLINE";
|
|
80
|
+
})(HomeworkSubmissionType || (HomeworkSubmissionType = {}));
|
|
81
|
+
export var QuestionnaireDetailType;
|
|
82
|
+
(function (QuestionnaireDetailType) {
|
|
83
|
+
QuestionnaireDetailType["SINGLE"] = "dnx";
|
|
84
|
+
QuestionnaireDetailType["MULTI"] = "dox";
|
|
85
|
+
QuestionnaireDetailType["TEXT"] = "wd";
|
|
86
|
+
})(QuestionnaireDetailType || (QuestionnaireDetailType = {}));
|
|
87
|
+
export var QuestionnaireType;
|
|
88
|
+
(function (QuestionnaireType) {
|
|
89
|
+
QuestionnaireType["VOTE"] = "tp";
|
|
90
|
+
QuestionnaireType["FORM"] = "tb";
|
|
91
|
+
QuestionnaireType["SURVEY"] = "wj";
|
|
92
|
+
})(QuestionnaireType || (QuestionnaireType = {}));
|
|
93
|
+
export var Language;
|
|
94
|
+
(function (Language) {
|
|
95
|
+
Language["ZH"] = "zh";
|
|
96
|
+
Language["EN"] = "en";
|
|
97
|
+
})(Language || (Language = {}));
|
|
98
|
+
//# sourceMappingURL=types.js.map
|
package/lib/types.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAsBA,MAAM,CAAN,IAAY,UAYX;AAZD,WAAY,UAAU;IACpB,sDAAwC,CAAA;IACxC,oFAAsE,CAAA;IACtE,+CAAiC,CAAA;IACjC,uEAAyD,CAAA;IACzD,8DAAgD,CAAA;IAChD,iDAAmC,CAAA;IACnC,mDAAqC,CAAA;IACrC,qDAAuC,CAAA;IACvC,mDAAqC,CAAA;IACrC,6DAA+C,CAAA;IAC/C,mDAAqC,CAAA;AACvC,CAAC,EAZW,UAAU,KAAV,UAAU,QAYrB;AAOD,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;IACjB,4BAAY,CAAA;AACd,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AAED,MAAM,CAAN,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,4CAA6B,CAAA;IAC7B,4BAAa,CAAA;IACb,oCAAqB,CAAA;IACrB,wCAAyB,CAAA;IACzB,oCAAqB,CAAA;IACrB,8CAA+B,CAAA;AACjC,CAAC,EAPW,WAAW,KAAX,WAAW,QAOtB;AAoBD,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,iCAAmB,CAAA;AACrB,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB;AAgGD,MAAM,CAAN,IAAY,kBAiCX;AAjCD,WAAY,kBAAkB;IAC5B,SAAS;IACT,yCAAmB,CAAA;IACnB,mCAAa,CAAA;IACb,6BAAO,CAAA;IACP,oCAAc,CAAA;IACd,mCAAa,CAAA;IACb,SAAS;IACT,iDAA2B,CAAA;IAC3B,6BAAO,CAAA;IACP,oCAAc,CAAA;IACd,mCAAa,CAAA;IACb,6BAAO,CAAA;IACP,oCAAc,CAAA;IACd,6BAAO,CAAA;IACP,mCAAa,CAAA;IACb,6BAAO,CAAA;IACP,SAAS;IACT,yDAAmC,CAAA;IACnC,6BAAO,CAAA;IACP,+BAAS,CAAA;IACT,SAAS;IACT,6CAAuB,CAAA;IACvB,SAAS;IACT,mCAAa,CAAA;IACb,UAAU;IACV,yCAAmB,CAAA;IACnB,6BAAO,CAAA;IACP,6BAAO,CAAA;IACP,SAAS;IACT,+CAAyB,CAAA;IACzB,+BAAS,CAAA;IACT,6BAAO,CAAA;AACT,CAAC,EAjCW,kBAAkB,KAAlB,kBAAkB,QAiC7B;AA4CD,MAAM,CAAN,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,+EAAc,CAAA;IACd,qEAAS,CAAA;AACX,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,QAGjC;AAED,MAAM,CAAN,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,mFAAgB,CAAA;IAChB,yEAAW,CAAA;AACb,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,QAGjC;AAqED,MAAM,CAAN,IAAY,uBAIX;AAJD,WAAY,uBAAuB;IACjC,yCAAc,CAAA;IACd,wCAAa,CAAA;IACb,sCAAW,CAAA;AACb,CAAC,EAJW,uBAAuB,KAAvB,uBAAuB,QAIlC;AAgBD,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,gCAAW,CAAA;IACX,gCAAW,CAAA;IACX,kCAAa,CAAA;AACf,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;AA0ID,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,qBAAS,CAAA;IACT,qBAAS,CAAA;AACX,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB"}
|
package/lib/urls.d.ts
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { ContentType, IHomeworkSubmitAttachment, QuestionnaireType } from './types.ts';
|
|
2
|
+
import { CourseType, Language } from './types.ts';
|
|
3
|
+
export declare const ID_PREFIX = "https://id.tsinghua.edu.cn";
|
|
4
|
+
export declare const LEARN_PREFIX = "https://learn.tsinghua.edu.cn";
|
|
5
|
+
export declare const REGISTRAR_PREFIX = "https://zhjw.cic.tsinghua.edu.cn";
|
|
6
|
+
export declare const ID_LOGIN: () => string;
|
|
7
|
+
export declare const ID_LOGIN_CHECK: () => string;
|
|
8
|
+
export declare const LEARN_AUTH_ROAM: (ticket: string) => string;
|
|
9
|
+
export declare const LEARN_LOGOUT: () => string;
|
|
10
|
+
export declare const LEARN_HOMEPAGE: (courseType: CourseType) => "https://learn.tsinghua.edu.cn/f/wlxt/index/course/student/" | "https://learn.tsinghua.edu.cn/f/wlxt/index/course/teacher/";
|
|
11
|
+
export declare const LEARN_STUDENT_COURSE_LIST_PAGE: () => string;
|
|
12
|
+
export declare const LEARN_SEMESTER_LIST: () => string;
|
|
13
|
+
export declare const LEARN_CURRENT_SEMESTER: () => string;
|
|
14
|
+
export declare const LEARN_COURSE_LIST: (semester: string, courseType: CourseType, lang: Language) => string;
|
|
15
|
+
export declare const LEARN_COURSE_PAGE: (courseID: string, courseType: CourseType) => string;
|
|
16
|
+
export declare const LEARN_COURSE_TIME_LOCATION: (courseID: string) => string;
|
|
17
|
+
export declare const LEARN_FILE_LIST: (courseID: string, courseType: CourseType) => string;
|
|
18
|
+
export declare const LEARN_FILE_CATEGORY_LIST: (courseID: string, courseType: CourseType) => string;
|
|
19
|
+
export declare const LEARN_FILE_LIST_BY_CATEGORY_STUDENT: (courseID: string, categoryId: string) => string;
|
|
20
|
+
export declare const LEARN_FILE_LIST_BY_CATEGORY_TEACHER = "https://learn.tsinghua.edu.cn/b/wlxt/kj/v_kjxxb_wjwjb/teacher/pageList";
|
|
21
|
+
export declare const LEARN_FILE_LIST_BY_CATEGORY_TEACHER_FORM_DATA: (courseID: string, categoryId: string) => FormData;
|
|
22
|
+
export declare const LEARN_FILE_DOWNLOAD: (fileID: string, courseType: CourseType) => string;
|
|
23
|
+
export declare const LEARN_FILE_PREVIEW: (type: ContentType, fileID: string, courseType: CourseType, firstPageOnly?: boolean) => string;
|
|
24
|
+
export declare const LEARN_NOTIFICATION_LIST: (courseType: CourseType, expired: boolean) => string;
|
|
25
|
+
export declare const LEARN_NOTIFICATION_DETAIL: (courseID: string, notificationID: string, courseType: CourseType) => string;
|
|
26
|
+
export declare const LEARN_NOTIFICATION_EDIT: (courseType: CourseType) => string;
|
|
27
|
+
export declare const LEARN_HOMEWORK_LIST_NEW = "https://learn.tsinghua.edu.cn/b/wlxt/kczy/zy/student/zyListWj";
|
|
28
|
+
export declare const LEARN_HOMEWORK_LIST_SUBMITTED = "https://learn.tsinghua.edu.cn/b/wlxt/kczy/zy/student/zyListYjwg";
|
|
29
|
+
export declare const LEARN_HOMEWORK_LIST_GRADED = "https://learn.tsinghua.edu.cn/b/wlxt/kczy/zy/student/zyListYpg";
|
|
30
|
+
export declare const LEARN_HOMEWORK_LIST_EXCELLENT = "https://learn.tsinghua.edu.cn/b/wlxt/kczy/zy/student/yxzylist";
|
|
31
|
+
export declare const LEARN_HOMEWORK_LIST_SOURCE: {
|
|
32
|
+
url: string;
|
|
33
|
+
status: {
|
|
34
|
+
submitted: boolean;
|
|
35
|
+
graded: boolean;
|
|
36
|
+
};
|
|
37
|
+
}[];
|
|
38
|
+
export declare const LEARN_HOMEWORK_PAGE: (courseID: string, id: string) => string;
|
|
39
|
+
export declare const LEARN_HOMEWORK_EXCELLENT_PAGE: (courseID: string, id: string) => string;
|
|
40
|
+
export declare const LEARN_HOMEWORK_DETAIL = "https://learn.tsinghua.edu.cn/b/wlxt/kczy/zy/student/detail";
|
|
41
|
+
export declare const LEARN_HOMEWORK_DETAIL_FORM_DATA: (baseId: string) => FormData;
|
|
42
|
+
export declare const LEARN_HOMEWORK_DOWNLOAD: (courseID: string, attachmentID: string) => string;
|
|
43
|
+
export declare const LEARN_HOMEWORK_SUBMIT_PAGE: (courseID: string, id: string) => string;
|
|
44
|
+
export declare const LEARN_HOMEWORK_SUBMIT: () => string;
|
|
45
|
+
export declare const LEARN_HOMEWORK_SUBMIT_FORM_DATA: (id: string, content?: string, attachment?: IHomeworkSubmitAttachment, removeAttachment?: boolean) => FormData;
|
|
46
|
+
export declare const LEARN_HOMEWORK_LIST_TEACHER = "https://learn.tsinghua.edu.cn/b/wlxt/kczy/zy/teacher/pageList";
|
|
47
|
+
export declare const LEARN_HOMEWORK_DETAIL_TEACHER: (courseID: string, homeworkID: string) => string;
|
|
48
|
+
export declare const LEARN_DISCUSSION_LIST: (courseID: string, courseType: CourseType) => string;
|
|
49
|
+
export declare const LEARN_DISCUSSION_DETAIL: (courseID: string, boardID: string, discussionID: string, courseType: CourseType, tabId?: number) => string;
|
|
50
|
+
export declare const LEARN_QUESTION_LIST_ANSWERED: (courseID: string, courseType: CourseType) => string;
|
|
51
|
+
export declare const LEARN_QUESTION_DETAIL: (courseID: string, questionID: string, courseType: CourseType) => string;
|
|
52
|
+
export declare const LEARN_QNR_LIST_ONGOING = "https://learn.tsinghua.edu.cn/b/wlxt/kcwj/wlkc_wjb/student/pageListWks";
|
|
53
|
+
export declare const LEARN_QNR_LIST_ENDED = "https://learn.tsinghua.edu.cn/b/wlxt/kcwj/wlkc_wjb/student/pageListYjs";
|
|
54
|
+
/** Note: This page is accessible even with an invalid `qnrID` as long as you have access to the given `courseID`. */
|
|
55
|
+
export declare const LEARN_QNR_SUBMIT_PAGE: (courseID: string, qnrID: string, type: QuestionnaireType) => string;
|
|
56
|
+
export declare const LEARN_QNR_DETAIL = "https://learn.tsinghua.edu.cn/b/wlxt/kcwj/wlkc_wjb/student/getWjnr";
|
|
57
|
+
export declare const LEARN_QNR_DETAIL_FORM: (courseID: string, qnrID: string) => FormData;
|
|
58
|
+
export declare const WebsiteShowLanguage: {
|
|
59
|
+
zh: string;
|
|
60
|
+
en: string;
|
|
61
|
+
};
|
|
62
|
+
export declare const LEARN_WEBSITE_LANGUAGE: (lang: Language) => string;
|
|
63
|
+
export declare const LEARN_FAVORITE_ADD: (type: ContentType, id: string) => string;
|
|
64
|
+
export declare const LEARN_FAVORITE_REMOVE: (id: string) => string;
|
|
65
|
+
export declare const LEARN_FAVORITE_LIST: (type?: ContentType) => string;
|
|
66
|
+
export declare const LEARN_FAVORITE_PIN = "https://learn.tsinghua.edu.cn/b/xt/wlkc_xsscb/student/addZd";
|
|
67
|
+
export declare const LEARN_FAVORITE_UNPIN = "https://learn.tsinghua.edu.cn/b/xt/wlkc_xsscb/student/delZd";
|
|
68
|
+
export declare const LEARN_FAVORITE_PIN_UNPIN_FORM_DATA: (id: string) => FormData;
|
|
69
|
+
export declare const LEARN_COMMENT_SET = "https://learn.tsinghua.edu.cn/b/wlxt/xt/wlkc_xsbjb/add";
|
|
70
|
+
export declare const LEARN_COMMENT_SET_FORM_DATA: (type: ContentType, id: string, content: string) => FormData;
|
|
71
|
+
export declare const LEARN_COMMENT_LIST: (type?: ContentType) => string;
|
|
72
|
+
export declare const LEARN_PAGE_LIST_FORM_DATA: (courseID?: string) => FormData;
|
|
73
|
+
export declare const LEARN_SORT_COURSES = "https://learn.tsinghua.edu.cn/b/wlxt/kc/wlkc_kcpxb/addorUpdate";
|
|
74
|
+
export declare const REGISTRAR_TICKET_FORM_DATA: () => FormData;
|
|
75
|
+
export declare const REGISTRAR_TICKET: () => string;
|
|
76
|
+
export declare const REGISTRAR_AUTH: (ticket: string) => string;
|
|
77
|
+
export declare const REGISTRAR_CALENDAR: (startDate: string, endDate: string, graduate?: boolean, callbackName?: string) => string;
|
|
78
|
+
//# sourceMappingURL=urls.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"urls.d.ts","sourceRoot":"","sources":["../src/urls.ts"],"names":[],"mappings":"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"}
|