@robertying/thu-learn-lib 5.1.0 → 6.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.
Files changed (83) hide show
  1. package/README.md +81 -248
  2. package/lib/auth.d.ts +14 -3
  3. package/lib/auth.d.ts.map +1 -1
  4. package/lib/auth.js +56 -58
  5. package/lib/auth.js.map +1 -1
  6. package/lib/calendar.d.ts +7 -2
  7. package/lib/calendar.d.ts.map +1 -1
  8. package/lib/calendar.js +99 -14
  9. package/lib/calendar.js.map +1 -1
  10. package/lib/contents.d.ts.map +1 -1
  11. package/lib/contents.js +4 -9
  12. package/lib/contents.js.map +1 -1
  13. package/lib/courses.d.ts.map +1 -1
  14. package/lib/courses.js +11 -25
  15. package/lib/courses.js.map +1 -1
  16. package/lib/discussions.d.ts.map +1 -1
  17. package/lib/discussions.js +6 -17
  18. package/lib/discussions.js.map +1 -1
  19. package/lib/favorites.d.ts +1 -0
  20. package/lib/favorites.d.ts.map +1 -1
  21. package/lib/favorites.js +13 -48
  22. package/lib/favorites.js.map +1 -1
  23. package/lib/files.d.ts +3 -3
  24. package/lib/files.d.ts.map +1 -1
  25. package/lib/files.js +109 -133
  26. package/lib/files.js.map +1 -1
  27. package/lib/homework.d.ts +34 -3
  28. package/lib/homework.d.ts.map +1 -1
  29. package/lib/homework.js +135 -79
  30. package/lib/homework.js.map +1 -1
  31. package/lib/index.d.ts +39 -19
  32. package/lib/index.d.ts.map +1 -1
  33. package/lib/index.js +44 -17
  34. package/lib/index.js.map +1 -1
  35. package/lib/notices.d.ts +3 -3
  36. package/lib/notices.d.ts.map +1 -1
  37. package/lib/notices.js +4 -20
  38. package/lib/notices.js.map +1 -1
  39. package/lib/questionnaires.d.ts.map +1 -1
  40. package/lib/questionnaires.js +8 -14
  41. package/lib/questionnaires.js.map +1 -1
  42. package/lib/request.d.ts +27 -13
  43. package/lib/request.d.ts.map +1 -1
  44. package/lib/request.js +84 -51
  45. package/lib/request.js.map +1 -1
  46. package/lib/timetable.d.ts +26 -0
  47. package/lib/timetable.d.ts.map +1 -0
  48. package/lib/timetable.js +110 -0
  49. package/lib/timetable.js.map +1 -0
  50. package/lib/types.d.ts +108 -75
  51. package/lib/types.d.ts.map +1 -1
  52. package/lib/types.js +3 -0
  53. package/lib/types.js.map +1 -1
  54. package/lib/urls.d.ts +10 -20
  55. package/lib/urls.d.ts.map +1 -1
  56. package/lib/urls.js +11 -56
  57. package/lib/urls.js.map +1 -1
  58. package/lib/user.d.ts +7 -2
  59. package/lib/user.d.ts.map +1 -1
  60. package/lib/user.js +19 -5
  61. package/lib/user.js.map +1 -1
  62. package/lib/utils.d.ts +42 -4
  63. package/lib/utils.d.ts.map +1 -1
  64. package/lib/utils.js +76 -31
  65. package/lib/utils.js.map +1 -1
  66. package/package.json +8 -7
  67. package/src/auth.ts +62 -73
  68. package/src/calendar.ts +110 -16
  69. package/src/contents.ts +7 -9
  70. package/src/courses.ts +12 -26
  71. package/src/discussions.ts +8 -19
  72. package/src/favorites.ts +22 -48
  73. package/src/files.ts +121 -139
  74. package/src/homework.ts +184 -102
  75. package/src/index.ts +67 -48
  76. package/src/notices.ts +19 -26
  77. package/src/questionnaires.ts +18 -15
  78. package/src/request.ts +86 -62
  79. package/src/timetable.ts +121 -0
  80. package/src/types.ts +111 -86
  81. package/src/urls.ts +13 -64
  82. package/src/user.ts +21 -6
  83. package/src/utils.ts +94 -32
@@ -0,0 +1,26 @@
1
+ import type { CourseMeeting } from './types.ts';
2
+ /**
3
+ * The start and end (Beijing time, HH:mm) of each class period (大节), which is what a course's time and location
4
+ * counts in.
5
+ */
6
+ export declare const CLASS_PERIOD_TIMES: Readonly<Record<number, readonly [string, string]>>;
7
+ /**
8
+ * The teaching weeks a meeting happens in, from the part of its time and location in parentheses: `全周`, `1-8周`,
9
+ * `9,11周`, `单周`, or in English `Week all`, `Week 1-8`, `Odd weeks`. `null` means every week, also for text it
10
+ * doesn't know.
11
+ */
12
+ export declare function parseWeeks(text: string): number[] | null;
13
+ /**
14
+ * Read one entry of a course's time and location (`Course.timeAndLocation`): `星期六第1节(9,11周),六教6A414`, or
15
+ * `Section 1 of Sat (Week 9,11 ), 六教6A414` when the website is in English. Entries without a day or a known period
16
+ * (`星期第0节(全周),`, `Section 0 (Week all ), `) give `null`.
17
+ */
18
+ export declare function parseCourseMeeting(text: string): CourseMeeting | null;
19
+ /**
20
+ * The teaching week `date` falls in, from 1 (0 or less before the term), for a term whose first day
21
+ * (`SemesterInfo.startDate`) is `semesterStartDate`. Both are YYYY-MM-DD Beijing dates. Week 1 starts on the Monday
22
+ * of the first day, or on the Monday after it when the first day is a weekend (fall 2026 starts on Saturday Sep 12;
23
+ * week 1 is Sep 14–20). Throws a `RangeError` for a date that isn't YYYY-MM-DD.
24
+ */
25
+ export declare function semesterWeek(semesterStartDate: string, date: string): number;
26
+ //# sourceMappingURL=timetable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timetable.d.ts","sourceRoot":"","sources":["../src/timetable.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAOlF,CAAC;AAkCF;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAgBxD;AAOD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CASrE;AAiBD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAK5E"}
@@ -0,0 +1,110 @@
1
+ // Reading a course's time and location (`Course.timeAndLocation`) and counting teaching weeks, for working out a
2
+ // timetable without the registrar's calendar.
3
+ /**
4
+ * The start and end (Beijing time, HH:mm) of each class period (大节), which is what a course's time and location
5
+ * counts in.
6
+ */
7
+ export const CLASS_PERIOD_TIMES = {
8
+ 1: ['08:00', '09:35'],
9
+ 2: ['09:50', '12:15'],
10
+ 3: ['13:30', '15:05'],
11
+ 4: ['15:20', '16:55'],
12
+ 5: ['17:05', '18:40'],
13
+ 6: ['19:20', '21:45'],
14
+ };
15
+ /** weeks in a regular term, for "every other week", "last eight weeks" and the like */
16
+ const TERM_WEEKS = 16;
17
+ const range = (from, to, step = 1) => {
18
+ const weeks = [];
19
+ for (let w = from; w <= to; w += step)
20
+ weeks.push(w);
21
+ return weeks;
22
+ };
23
+ const WEEKDAYS = { 一: 1, 二: 2, 三: 3, 四: 4, 五: 5, 六: 6, 日: 7, 天: 7 };
24
+ /** English weekdays by their first three letters (the server writes `Mon`, `Tues`, `Thur`, …) */
25
+ const ENGLISH_WEEKDAYS = { mon: 1, tue: 2, wed: 3, thu: 4, fri: 5, sat: 6, sun: 7 };
26
+ /** week specs that aren't a list of weeks, in Chinese and in English (spaces removed, lower case) */
27
+ const NAMED_WEEKS = {
28
+ 全周: () => null,
29
+ all: () => null,
30
+ every: () => null,
31
+ full: () => null,
32
+ 前八周: () => range(1, 8),
33
+ first8: () => range(1, 8),
34
+ firsteight: () => range(1, 8),
35
+ 后八周: () => range(9, TERM_WEEKS),
36
+ last8: () => range(9, TERM_WEEKS),
37
+ lasteight: () => range(9, TERM_WEEKS),
38
+ 单周: () => range(1, TERM_WEEKS, 2),
39
+ odd: () => range(1, TERM_WEEKS, 2),
40
+ 双周: () => range(2, TERM_WEEKS, 2),
41
+ even: () => range(2, TERM_WEEKS, 2),
42
+ };
43
+ /**
44
+ * The teaching weeks a meeting happens in, from the part of its time and location in parentheses: `全周`, `1-8周`,
45
+ * `9,11周`, `单周`, or in English `Week all`, `Week 1-8`, `Odd weeks`. `null` means every week, also for text it
46
+ * doesn't know.
47
+ */
48
+ export function parseWeeks(text) {
49
+ const spec = text
50
+ .replace(/\s/g, '')
51
+ .toLowerCase()
52
+ .replace(/^(?:第|weeks?|wks?)/, '')
53
+ .replace(/(?:周|weeks?|wks?)$/, '');
54
+ const named = NAMED_WEEKS[spec] ?? NAMED_WEEKS[`${spec}周`];
55
+ if (named)
56
+ return named();
57
+ const weeks = [];
58
+ for (const part of spec.split(/[,,、;;]/)) {
59
+ const match = /^(\d+)(?:[-~~–—](\d+))?$/.exec(part);
60
+ if (!match)
61
+ return null;
62
+ const from = Number(match[1]);
63
+ weeks.push(...range(from, match[2] ? Number(match[2]) : from));
64
+ }
65
+ return weeks;
66
+ }
67
+ const toMeeting = (weekday, period, weeks, location) => weekday && CLASS_PERIOD_TIMES[period]
68
+ ? { weekday, period, weeks: parseWeeks(weeks), location: location.trim() }
69
+ : null;
70
+ /**
71
+ * Read one entry of a course's time and location (`Course.timeAndLocation`): `星期六第1节(9,11周),六教6A414`, or
72
+ * `Section 1 of Sat (Week 9,11 ), 六教6A414` when the website is in English. Entries without a day or a known period
73
+ * (`星期第0节(全周),`, `Section 0 (Week all ), `) give `null`.
74
+ */
75
+ export function parseCourseMeeting(text) {
76
+ const chinese = /星期([一二三四五六日天])第(\d+)节\s*[((]([^))]*)[))]\s*[,,]?\s*(.*)$/.exec(text);
77
+ if (chinese)
78
+ return toMeeting(WEEKDAYS[chinese[1]], Number(chinese[2]), chinese[3], chinese[4]);
79
+ const english = /section\s*(\d+)\s*(?:of\s*([a-z]+)\.?)?\s*[((]([^))]*)[))]\s*[,,]?\s*(.*)$/i.exec(text);
80
+ if (english) {
81
+ const day = english[2]?.slice(0, 3).toLowerCase();
82
+ return toMeeting(day ? ENGLISH_WEEKDAYS[day] : undefined, Number(english[1]), english[3], english[4]);
83
+ }
84
+ return null;
85
+ }
86
+ const DAY_MS = 24 * 60 * 60 * 1000;
87
+ /** a YYYY-MM-DD date (anything after it, like a time, is ignored) as days since the epoch */
88
+ const dayNumber = (date) => {
89
+ const match = /^(\d{4})-(\d{2})-(\d{2})/.exec(date);
90
+ const time = match ? Date.UTC(Number(match[1]), Number(match[2]) - 1, Number(match[3])) : NaN;
91
+ if (Number.isNaN(time) || new Date(time).toISOString().slice(0, 10) !== date.slice(0, 10)) {
92
+ throw new RangeError(`invalid date ${date}, expected YYYY-MM-DD`);
93
+ }
94
+ return time / DAY_MS;
95
+ };
96
+ /** days since the epoch of the Monday of the week of `day` (days since the epoch; day 0 was a Thursday) */
97
+ const mondayOf = (day) => day - ((day + 3) % 7);
98
+ /**
99
+ * The teaching week `date` falls in, from 1 (0 or less before the term), for a term whose first day
100
+ * (`SemesterInfo.startDate`) is `semesterStartDate`. Both are YYYY-MM-DD Beijing dates. Week 1 starts on the Monday
101
+ * of the first day, or on the Monday after it when the first day is a weekend (fall 2026 starts on Saturday Sep 12;
102
+ * week 1 is Sep 14–20). Throws a `RangeError` for a date that isn't YYYY-MM-DD.
103
+ */
104
+ export function semesterWeek(semesterStartDate, date) {
105
+ const start = dayNumber(semesterStartDate);
106
+ const weekday = (start + 3) % 7; // 0 Monday … 6 Sunday
107
+ const firstMonday = weekday >= 5 ? start + 7 - weekday : start - weekday;
108
+ return (mondayOf(dayNumber(date)) - firstMonday) / 7 + 1;
109
+ }
110
+ //# sourceMappingURL=timetable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timetable.js","sourceRoot":"","sources":["../src/timetable.ts"],"names":[],"mappings":"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"}
package/lib/types.d.ts CHANGED
@@ -1,4 +1,10 @@
1
1
  import type { CookieJar } from 'tough-cookie';
2
+ /**
3
+ * A time as an ISO 8601 string in Beijing time with its offset, e.g. `2026-11-07T18:28:00+08:00`: `new Date(t)` and
4
+ * `dayjs(t)` read it as the right moment in any time zone. (A string the server sent in another shape is passed on as
5
+ * it is.)
6
+ */
7
+ export type ServerTime = string;
2
8
  export type Fetch = typeof globalThis.fetch;
3
9
  export type Credential = {
4
10
  username?: string;
@@ -29,7 +35,10 @@ export declare enum FailReason {
29
35
  UNEXPECTED_STATUS = "unexpected status",
30
36
  OPERATION_FAILED = "operation failed",
31
37
  ERROR_SETTING_COOKIES = "could not set cookies",
32
- REQUEST_TIMEOUT = "request timed out"
38
+ REQUEST_TIMEOUT = "request timed out",
39
+ /** a request got no answer at all (no connection, DNS or TLS failure, connection reset); the error is in `extra` */
40
+ NETWORK_ERROR = "network error",
41
+ ERROR_REGISTRAR_AUTH = "could not sign in to the registrar (zhjw.cic.tsinghua.edu.cn)"
33
42
  }
34
43
  export interface ApiError {
35
44
  reason: FailReason;
@@ -49,12 +58,15 @@ export declare enum ContentType {
49
58
  QUESTION = "question",
50
59
  QUESTIONNAIRE = "questionnaire"
51
60
  }
52
- interface IUserInfo {
61
+ export interface UserInfo {
53
62
  name: string;
63
+ /**
64
+ * The department (for undergraduates, their 书院) as the homepage shows it, in the website language.
65
+ * `''` when there is none, including in English for departments without an English name (the page says `none`).
66
+ */
54
67
  department: string;
55
68
  }
56
- export type UserInfo = IUserInfo;
57
- interface ISemesterInfo {
69
+ export interface SemesterInfo {
58
70
  id: string;
59
71
  startDate: string;
60
72
  endDate: string;
@@ -62,17 +74,19 @@ interface ISemesterInfo {
62
74
  endYear: number;
63
75
  type: SemesterType;
64
76
  }
65
- export type SemesterInfo = ISemesterInfo;
66
77
  export declare enum CourseType {
67
78
  STUDENT = "student",
68
79
  TEACHER = "teacher"
69
80
  }
70
- interface ICourseInfo {
81
+ export interface CourseInfo {
71
82
  id: string;
72
83
  name: string;
73
84
  chineseName: string;
74
85
  englishName: string;
75
- /** only with `getCourseList(..., { timeAndLocation: true })`; see `getCourseTimeAndLocation` */
86
+ /**
87
+ * only with `getCourseList(..., { timeAndLocation: true })`, and left out for a course whose request failed;
88
+ * see `getCourseTimeAndLocation`. Read an entry with `parseCourseMeeting`.
89
+ */
76
90
  timeAndLocation?: string[];
77
91
  url: string;
78
92
  teacherName: string;
@@ -81,44 +95,42 @@ interface ICourseInfo {
81
95
  courseIndex: number;
82
96
  courseType: CourseType;
83
97
  }
84
- export type CourseInfo = ICourseInfo;
85
- interface IRemoteFile {
98
+ export interface RemoteFile {
86
99
  id: string;
87
100
  name: string;
88
101
  downloadUrl: string;
89
102
  previewUrl: string;
90
103
  size: string;
91
104
  }
92
- export type RemoteFile = IRemoteFile;
93
- export interface INotification {
105
+ /** a course notification as the list gives it, without its attachment */
106
+ export interface CourseNotificationBase {
94
107
  id: string;
95
108
  title: string;
96
109
  content: string;
97
110
  hasRead: boolean;
98
111
  url: string;
99
112
  markedImportant: boolean;
100
- publishTime: string;
113
+ publishTime: ServerTime;
101
114
  publisher: string;
102
- expireTime?: string;
115
+ expireTime?: ServerTime;
103
116
  isFavorite: boolean;
104
117
  comment?: string;
105
118
  /** name of the attachment, if the notice has one; fetch it with `getNotificationAttachment` */
106
119
  attachmentName?: string;
107
120
  }
108
- export interface INotificationDetail {
121
+ export interface CourseNotificationDetail {
109
122
  attachment?: RemoteFile;
110
123
  }
111
- export type Notification = INotification & INotificationDetail;
112
- interface IFileCategory {
124
+ export type CourseNotification = CourseNotificationBase & CourseNotificationDetail;
125
+ export interface FileCategory {
113
126
  id: string;
114
127
  title: string;
115
- creationTime: Date;
128
+ creationTime: ServerTime;
116
129
  }
117
- export type FileCategory = IFileCategory;
118
- interface IFile {
119
- /** previously `id2` */
130
+ export interface CourseFile {
131
+ /** the id of this file entry in the course (`kjxxid`) */
120
132
  id: string;
121
- /** previously `id` */
133
+ /** the id of the stored file (`wjid`), which the download and preview URLs use */
122
134
  fileId: string;
123
135
  /** note: will be unset when calling `getFileListByCategory` */
124
136
  category?: FileCategory;
@@ -128,8 +140,8 @@ interface IFile {
128
140
  size: string;
129
141
  title: string;
130
142
  description: string;
131
- uploadTime: string;
132
- publishTime: string;
143
+ uploadTime: ServerTime;
144
+ publishTime: ServerTime;
133
145
  downloadUrl: string;
134
146
  /** preview is not supported on all types of files, check before use */
135
147
  previewUrl: string;
@@ -138,14 +150,13 @@ interface IFile {
138
150
  visitCount: number;
139
151
  downloadCount: number;
140
152
  fileType: string;
141
- /** for compatibility */
153
+ /** the same file as a `RemoteFile`, the shape attachments have */
142
154
  remoteFile: RemoteFile;
143
155
  /** could not get favorite or comment info when using `getFileList` or in TA mode */
144
156
  isFavorite?: boolean;
145
157
  comment?: string;
146
158
  }
147
- export type File = IFile;
148
- export interface IHomeworkStatus {
159
+ export interface HomeworkStatus {
149
160
  submitted: boolean;
150
161
  graded: boolean;
151
162
  }
@@ -183,32 +194,33 @@ export declare enum HomeworkGradeLevel {
183
194
  NA = "NA",
184
195
  F = "F"
185
196
  }
186
- export interface IHomework extends IHomeworkStatus {
197
+ /** a homework as the lists give it, without its detail */
198
+ export interface HomeworkBase extends HomeworkStatus {
187
199
  id: string;
188
200
  /** @deprecated use `id` */
189
201
  studentHomeworkId: string;
190
202
  baseId: string;
191
203
  title: string;
192
- deadline: string;
193
- lateSubmissionDeadline?: string;
204
+ deadline: ServerTime;
205
+ lateSubmissionDeadline?: ServerTime;
194
206
  url: string;
195
207
  completionType: HomeworkCompletionType;
196
208
  submissionType: HomeworkSubmissionType;
197
209
  submitUrl: string;
198
- submitTime?: string;
210
+ submitTime?: ServerTime;
199
211
  isLateSubmission: boolean;
200
212
  grade?: number;
201
213
  /** some homework has levels but not grades, like A/B/.../F */
202
214
  gradeLevel?: HomeworkGradeLevel;
203
- gradeTime?: string;
215
+ gradeTime?: ServerTime;
204
216
  graderName?: string;
205
217
  gradeContent?: string;
206
218
  isFavorite: boolean;
207
- favoriteTime?: string;
208
219
  comment?: string;
220
+ /** `[]` when there is none; `undefined` when the course's excellent homework list couldn't be fetched */
209
221
  excellentHomeworkList?: ExcellentHomework[];
210
222
  }
211
- export interface IHomeworkDetail {
223
+ export interface HomeworkDetail {
212
224
  description?: string;
213
225
  /** attachment from teacher */
214
226
  attachment?: RemoteFile;
@@ -221,7 +233,7 @@ export interface IHomeworkDetail {
221
233
  /** grade from teacher */
222
234
  gradeAttachment?: RemoteFile;
223
235
  }
224
- export type Homework = IHomework & IHomeworkDetail;
236
+ export type Homework = HomeworkBase & HomeworkDetail;
225
237
  export declare enum HomeworkCompletionType {
226
238
  INDIVIDUAL = 1,
227
239
  GROUP = 2
@@ -230,7 +242,8 @@ export declare enum HomeworkSubmissionType {
230
242
  WEB_LEARNING = 2,
231
243
  OFFLINE = 0
232
244
  }
233
- export interface IExcellentHomework {
245
+ /** an excellent homework as the list gives it, without its detail */
246
+ export interface ExcellentHomeworkBase {
234
247
  id: string;
235
248
  baseId: string;
236
249
  title: string;
@@ -242,17 +255,17 @@ export interface IExcellentHomework {
242
255
  anonymous: boolean;
243
256
  };
244
257
  }
245
- export type ExcellentHomework = IExcellentHomework & IHomeworkDetail;
246
- export interface IHomeworkTA {
258
+ export type ExcellentHomework = ExcellentHomeworkBase & HomeworkDetail;
259
+ export interface HomeworkTA {
247
260
  id: string;
248
261
  index: number;
249
262
  title: string;
250
263
  description: string;
251
264
  publisherId: string;
252
- publishTime: string;
253
- startTime: string;
254
- deadline: string;
255
- lateSubmissionDeadline?: string;
265
+ publishTime: ServerTime;
266
+ startTime: ServerTime;
267
+ deadline: ServerTime;
268
+ lateSubmissionDeadline?: ServerTime;
256
269
  url: string;
257
270
  completionType: HomeworkCompletionType;
258
271
  submissionType: HomeworkSubmissionType;
@@ -260,33 +273,45 @@ export interface IHomeworkTA {
260
273
  submittedCount: number;
261
274
  unsubmittedCount: number;
262
275
  }
263
- export type HomeworkTA = IHomeworkTA;
264
- export interface IHomeworkSubmitAttachment {
276
+ /**
277
+ * A file to upload in React Native, whose `FormData` takes the file's `uri` (and MIME `type`) instead of a `Blob`.
278
+ */
279
+ export interface ReactNativeFile {
280
+ uri: string;
281
+ /** MIME type; `application/octet-stream` if left out */
282
+ type?: string;
283
+ }
284
+ /** The request `submitHomework` sends, from `getHomeworkSubmitRequest`, for sending with another HTTP client */
285
+ export interface HomeworkSubmitRequest {
286
+ /** the submit URL, with the CSRF token */
287
+ url: string;
288
+ /** POST it as multipart form data */
289
+ body: FormData;
290
+ }
291
+ export interface HomeworkSubmitAttachment {
265
292
  filename: string;
266
- content: Blob;
293
+ content: Blob | ReactNativeFile;
267
294
  }
268
- export interface IDiscussionBase {
295
+ export interface DiscussionBase {
269
296
  id: string;
270
297
  title: string;
271
298
  publisherName: string;
272
- publishTime: string;
299
+ publishTime: ServerTime;
273
300
  lastReplierName: string;
274
- lastReplyTime: string;
301
+ lastReplyTime: ServerTime;
275
302
  visitCount: number;
276
303
  replyCount: number;
277
304
  isFavorite: boolean;
278
305
  comment?: string;
279
306
  }
280
- interface IDiscussion extends IDiscussionBase {
307
+ export interface Discussion extends DiscussionBase {
281
308
  url: string;
282
309
  boardId: string;
283
310
  }
284
- export type Discussion = IDiscussion;
285
- interface IQuestion extends IDiscussionBase {
311
+ export interface Question extends DiscussionBase {
286
312
  url: string;
287
313
  question: string;
288
314
  }
289
- export type Question = IQuestion;
290
315
  export declare enum QuestionnaireDetailType {
291
316
  SINGLE = "dnx",
292
317
  MULTI = "dox",
@@ -310,23 +335,22 @@ export declare enum QuestionnaireType {
310
335
  FORM = "tb",
311
336
  SURVEY = "wj"
312
337
  }
313
- export interface IQuestionnaire {
338
+ export interface Questionnaire {
314
339
  id: string;
315
340
  type: QuestionnaireType;
316
341
  title: string;
317
- startTime: string;
318
- endTime: string;
319
- uploadTime: string;
342
+ startTime: ServerTime;
343
+ endTime: ServerTime;
344
+ uploadTime: ServerTime;
320
345
  uploaderId: string;
321
346
  uploaderName: string;
322
- submitTime?: string;
347
+ submitTime?: ServerTime;
323
348
  isFavorite: boolean;
324
349
  comment?: string;
325
350
  url: string;
326
351
  /** the questions; only for the questionnaires `getQuestionnaireList`'s `details` selects (by default all) */
327
352
  detail?: QuestionnaireDetail[];
328
353
  }
329
- export type Questionnaire = IQuestionnaire;
330
354
  /** which items get their extra per-item requests: none (default), all, or those the predicate accepts */
331
355
  export type DetailSelector<T> = 'none' | 'all' | ((item: T) => boolean);
332
356
  export interface CourseListOptions {
@@ -338,26 +362,26 @@ export interface HomeworkListOptions {
338
362
  * Which homework gets its detail (page + description JSON, 2 requests each); default `'none'`.
339
363
  * The same as calling `getHomeworkDetail` for those items.
340
364
  */
341
- details?: DetailSelector<IHomework>;
365
+ details?: DetailSelector<HomeworkBase>;
342
366
  }
343
367
  export interface NotificationListOptions {
344
368
  /**
345
369
  * Which notices with an attachment get it (1 request each); default `'none'`.
346
370
  * The same as calling `getNotificationAttachment` for those items.
347
371
  */
348
- attachments?: DetailSelector<INotification>;
372
+ attachments?: DetailSelector<CourseNotificationBase>;
349
373
  }
350
374
  export interface QuestionnaireListOptions {
351
375
  /**
352
376
  * Which questionnaires get their questions (`detail`, 1 request each); default `'all'` (unlike the other lists, for
353
377
  * compatibility). The same as calling `getQuestionnaireDetail` for those items.
354
378
  */
355
- details?: DetailSelector<IQuestionnaire>;
379
+ details?: DetailSelector<Questionnaire>;
356
380
  }
357
381
  export interface AllContentsOptions<T extends ContentType> {
358
382
  courseType?: CourseType;
359
383
  /** homework or questionnaire `details`, or notification `attachments`, passed to each course's list */
360
- details?: T extends ContentType.HOMEWORK ? DetailSelector<IHomework> : T extends ContentType.NOTIFICATION ? DetailSelector<INotification> : T extends ContentType.QUESTIONNAIRE ? DetailSelector<IQuestionnaire> : never;
384
+ details?: T extends ContentType.HOMEWORK ? DetailSelector<HomeworkBase> : T extends ContentType.NOTIFICATION ? DetailSelector<CourseNotificationBase> : T extends ContentType.QUESTIONNAIRE ? DetailSelector<Questionnaire> : never;
361
385
  }
362
386
  export interface AllContentsResult<T extends ContentType> {
363
387
  /** content of each course that succeeded */
@@ -368,36 +392,34 @@ export interface AllContentsResult<T extends ContentType> {
368
392
  };
369
393
  }
370
394
  export type ContentTypeMap = {
371
- [ContentType.NOTIFICATION]: Notification;
372
- [ContentType.FILE]: File;
395
+ [ContentType.NOTIFICATION]: CourseNotification;
396
+ [ContentType.FILE]: CourseFile;
373
397
  [ContentType.HOMEWORK]: Homework;
374
398
  [ContentType.DISCUSSION]: Discussion;
375
399
  [ContentType.QUESTION]: Question;
376
400
  [ContentType.QUESTIONNAIRE]: Questionnaire;
377
401
  };
378
- interface ICourseContent<T extends ContentType> {
402
+ export interface CourseContent<T extends ContentType = ContentType> {
379
403
  [id: string]: ContentTypeMap[T][];
380
404
  }
381
- export type CourseContent<T extends ContentType = ContentType> = ICourseContent<T>;
382
- interface IFavoriteItem {
405
+ export interface FavoriteItem {
383
406
  id: string;
384
407
  type: ContentType;
385
408
  title: string;
386
- time: string;
409
+ time: ServerTime;
387
410
  state: string;
388
411
  /** 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. */
389
412
  extra?: string;
390
413
  semesterId: string;
391
414
  courseId: string;
392
415
  pinned: boolean;
393
- pinnedTime?: string;
416
+ pinnedTime?: ServerTime;
394
417
  comment?: string;
395
- addedTime: string;
418
+ addedTime: ServerTime;
396
419
  /** for reference */
397
420
  itemId: string;
398
421
  }
399
- export type FavoriteItem = IFavoriteItem;
400
- interface ICommentItem {
422
+ export interface CommentItem {
401
423
  id: string;
402
424
  type: ContentType;
403
425
  content: string;
@@ -405,11 +427,20 @@ interface ICommentItem {
405
427
  title: string;
406
428
  semesterId: string;
407
429
  courseId: string;
408
- commentTime: string;
430
+ commentTime: ServerTime;
409
431
  /** for reference */
410
432
  itemId: string;
411
433
  }
412
- export type CommentItem = ICommentItem;
434
+ /** one entry of a course's time and location, read by `parseCourseMeeting` */
435
+ export interface CourseMeeting {
436
+ /** 1 (Monday) to 7 (Sunday) */
437
+ weekday: number;
438
+ /** the class period (大节), a key of `CLASS_PERIOD_TIMES` */
439
+ period: number;
440
+ /** the teaching weeks it happens in, from 1; `null` for every week */
441
+ weeks: number[] | null;
442
+ location: string;
443
+ }
413
444
  export interface CalendarEvent {
414
445
  location: string;
415
446
  status: string;
@@ -430,12 +461,14 @@ export interface CalendarRange {
430
461
  export interface CalendarResult {
431
462
  /** events of every window that succeeded, in date order */
432
463
  events: CalendarEvent[];
433
- /** windows that failed even after a retry; empty when the whole range was fetched */
464
+ /**
465
+ * windows that failed (after a retry, unless they timed out) or were skipped after repeated timeouts; empty when the
466
+ * whole range was fetched
467
+ */
434
468
  failedRanges: CalendarRange[];
435
469
  }
436
470
  export declare enum Language {
437
471
  ZH = "zh",
438
472
  EN = "en"
439
473
  }
440
- export {};
441
474
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/lib/types.js CHANGED
@@ -11,6 +11,9 @@ export var FailReason;
11
11
  FailReason["OPERATION_FAILED"] = "operation failed";
12
12
  FailReason["ERROR_SETTING_COOKIES"] = "could not set cookies";
13
13
  FailReason["REQUEST_TIMEOUT"] = "request timed out";
14
+ /** a request got no answer at all (no connection, DNS or TLS failure, connection reset); the error is in `extra` */
15
+ FailReason["NETWORK_ERROR"] = "network error";
16
+ FailReason["ERROR_REGISTRAR_AUTH"] = "could not sign in to the registrar (zhjw.cic.tsinghua.edu.cn)";
14
17
  })(FailReason || (FailReason = {}));
15
18
  export var SemesterType;
16
19
  (function (SemesterType) {
package/lib/types.js.map CHANGED
@@ -1 +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;AAqJD,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,qBAAS,CAAA;IACT,qBAAS,CAAA;AACX,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AA6BA,MAAM,CAAN,IAAY,UAeX;AAfD,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;IACrC,oHAAoH;IACpH,6CAA+B,CAAA;IAC/B,oGAAsF,CAAA;AACxF,CAAC,EAfW,UAAU,KAAV,UAAU,QAerB;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;AA4FD,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;AA6CD,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;AAiFD,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;AA2JD,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,qBAAS,CAAA;IACT,qBAAS,CAAA;AACX,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB"}