reddy-api-srm 1.0.11 → 1.1.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/dist/src/auth/login.d.ts +14 -0
- package/dist/src/auth/login.d.ts.map +1 -0
- package/dist/src/auth/login.js +96 -0
- package/dist/src/auth/login.js.map +1 -0
- package/dist/src/auth/sessionSeed.d.ts +7 -0
- package/dist/src/auth/sessionSeed.d.ts.map +1 -0
- package/dist/src/auth/sessionSeed.js +40 -0
- package/dist/src/auth/sessionSeed.js.map +1 -0
- package/dist/src/auth/terminateSessions.d.ts +9 -24
- package/dist/src/auth/terminateSessions.d.ts.map +1 -0
- package/dist/src/auth/terminateSessions.js +99 -100
- package/dist/src/auth/terminateSessions.js.map +1 -0
- package/dist/src/auth/validatePassword.d.ts +1 -1
- package/dist/src/auth/validatePassword.d.ts.map +1 -1
- package/dist/src/auth/validatePassword.js +138 -87
- package/dist/src/auth/validatePassword.js.map +1 -1
- package/dist/src/auth/validateUser.d.ts +1 -1
- package/dist/src/auth/validateUser.d.ts.map +1 -1
- package/dist/src/auth/validateUser.js +14 -40
- package/dist/src/auth/validateUser.js.map +1 -1
- package/dist/src/fetch/fetchAttendance.d.ts +5 -1
- package/dist/src/fetch/fetchAttendance.d.ts.map +1 -1
- package/dist/src/fetch/fetchAttendance.js +3 -33
- package/dist/src/fetch/fetchAttendance.js.map +1 -1
- package/dist/src/fetch/fetchCalender.d.ts +5 -1
- package/dist/src/fetch/fetchCalender.d.ts.map +1 -1
- package/dist/src/fetch/fetchCalender.js +4 -37
- package/dist/src/fetch/fetchCalender.js.map +1 -1
- package/dist/src/fetch/fetchCourseDetails.d.ts +5 -1
- package/dist/src/fetch/fetchCourseDetails.d.ts.map +1 -1
- package/dist/src/fetch/fetchCourseDetails.js +5 -40
- package/dist/src/fetch/fetchCourseDetails.js.map +1 -1
- package/dist/src/fetch/fetchDayOrder.d.ts +5 -1
- package/dist/src/fetch/fetchDayOrder.d.ts.map +1 -1
- package/dist/src/fetch/fetchDayOrder.js +3 -33
- package/dist/src/fetch/fetchDayOrder.js.map +1 -1
- package/dist/src/fetch/fetchLogout.d.ts +2 -4
- package/dist/src/fetch/fetchLogout.d.ts.map +1 -1
- package/dist/src/fetch/fetchLogout.js +15 -9
- package/dist/src/fetch/fetchLogout.js.map +1 -1
- package/dist/src/fetch/fetchMarks.d.ts +5 -1
- package/dist/src/fetch/fetchMarks.d.ts.map +1 -1
- package/dist/src/fetch/fetchMarks.js +4 -33
- package/dist/src/fetch/fetchMarks.js.map +1 -1
- package/dist/src/fetch/fetchPage.d.ts +6 -0
- package/dist/src/fetch/fetchPage.d.ts.map +1 -0
- package/dist/src/fetch/fetchPage.js +58 -0
- package/dist/src/fetch/fetchPage.js.map +1 -0
- package/dist/src/fetch/fetchTimetable.d.ts +5 -1
- package/dist/src/fetch/fetchTimetable.d.ts.map +1 -1
- package/dist/src/fetch/fetchTimetable.js +5 -40
- package/dist/src/fetch/fetchTimetable.js.map +1 -1
- package/dist/src/fetch/fetchUserInfo.d.ts +5 -1
- package/dist/src/fetch/fetchUserInfo.d.ts.map +1 -1
- package/dist/src/fetch/fetchUserInfo.js +6 -35
- package/dist/src/fetch/fetchUserInfo.js.map +1 -1
- package/dist/src/index.d.ts +39 -5
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +86 -33
- package/dist/src/index.js.map +1 -1
- package/dist/src/parser/decodeHtml.d.ts +6 -0
- package/dist/src/parser/decodeHtml.d.ts.map +1 -0
- package/dist/src/parser/decodeHtml.js +18 -0
- package/dist/src/parser/decodeHtml.js.map +1 -0
- package/dist/src/parser/parseAttendance.d.ts +2 -2
- package/dist/src/parser/parseAttendance.d.ts.map +1 -1
- package/dist/src/parser/parseAttendance.js +68 -16
- package/dist/src/parser/parseAttendance.js.map +1 -1
- package/dist/src/parser/parseCalender.d.ts +2 -2
- package/dist/src/parser/parseCalender.d.ts.map +1 -1
- package/dist/src/parser/parseCalender.js +125 -43
- package/dist/src/parser/parseCalender.js.map +1 -1
- package/dist/src/parser/parseCourse.d.ts +2 -2
- package/dist/src/parser/parseCourse.d.ts.map +1 -1
- package/dist/src/parser/parseCourse.js +19 -8
- package/dist/src/parser/parseCourse.js.map +1 -1
- package/dist/src/parser/parseDayOrder.d.ts +2 -2
- package/dist/src/parser/parseDayOrder.d.ts.map +1 -1
- package/dist/src/parser/parseDayOrder.js +31 -12
- package/dist/src/parser/parseDayOrder.js.map +1 -1
- package/dist/src/parser/parseMarks.d.ts +2 -2
- package/dist/src/parser/parseMarks.d.ts.map +1 -1
- package/dist/src/parser/parseMarks.js +23 -11
- package/dist/src/parser/parseMarks.js.map +1 -1
- package/dist/src/parser/parseTimetable.d.ts +2 -2
- package/dist/src/parser/parseTimetable.d.ts.map +1 -1
- package/dist/src/parser/parseTimetable.js +51 -27
- package/dist/src/parser/parseTimetable.js.map +1 -1
- package/dist/src/parser/parseUserInfo.d.ts +2 -2
- package/dist/src/parser/parseUserInfo.d.ts.map +1 -1
- package/dist/src/parser/parseUserInfo.js +57 -25
- package/dist/src/parser/parseUserInfo.js.map +1 -1
- package/dist/src/type/attendance.d.ts +5 -5
- package/dist/src/type/attendance.d.ts.map +1 -1
- package/dist/src/type/auth.d.ts +33 -5
- package/dist/src/type/auth.d.ts.map +1 -1
- package/dist/src/type/calendar.d.ts.map +1 -1
- package/dist/src/type/common.d.ts.map +1 -1
- package/dist/src/type/course.d.ts.map +1 -1
- package/dist/src/type/dayOrder.d.ts.map +1 -1
- package/dist/src/type/index.d.ts +0 -1
- package/dist/src/type/index.d.ts.map +1 -1
- package/dist/src/type/index.js +0 -1
- package/dist/src/type/index.js.map +1 -1
- package/dist/src/type/marks.d.ts.map +1 -1
- package/dist/src/type/timetable.d.ts.map +1 -1
- package/dist/src/type/user.d.ts +1 -0
- package/dist/src/type/user.d.ts.map +1 -1
- package/dist/src/utils/attendanceStatus.d.ts +8 -0
- package/dist/src/utils/attendanceStatus.d.ts.map +1 -0
- package/dist/src/utils/attendanceStatus.js +20 -0
- package/dist/src/utils/attendanceStatus.js.map +1 -0
- package/dist/src/utils/data.d.ts +11 -0
- package/dist/src/utils/data.d.ts.map +1 -0
- package/dist/src/utils/data.js +36 -0
- package/dist/src/utils/data.js.map +1 -0
- package/dist/src/utils/dynamicUrl.d.ts +14 -0
- package/dist/src/utils/dynamicUrl.d.ts.map +1 -0
- package/dist/src/utils/dynamicUrl.js +105 -0
- package/dist/src/utils/dynamicUrl.js.map +1 -0
- package/package.json +2 -2
package/dist/src/index.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
// ─── Type exports ────────────────────────────────────────────────────────────
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.resetUrlCache = void 0;
|
|
5
|
+
exports.login = login;
|
|
3
6
|
exports.verifyUser = verifyUser;
|
|
4
7
|
exports.verifyPassword = verifyPassword;
|
|
5
8
|
exports.logoutUser = logoutUser;
|
|
@@ -11,108 +14,158 @@ exports.getUserInfo = getUserInfo;
|
|
|
11
14
|
exports.getCalendar = getCalendar;
|
|
12
15
|
exports.getDayOrder = getDayOrder;
|
|
13
16
|
exports.getCourse = getCourse;
|
|
14
|
-
|
|
17
|
+
exports.getAllData = getAllData;
|
|
18
|
+
// ─── Auth imports ────────────────────────────────────────────────────────────
|
|
15
19
|
const validateUser_1 = require("./auth/validateUser");
|
|
20
|
+
const validatePassword_1 = require("./auth/validatePassword");
|
|
16
21
|
const terminateSessions_1 = require("./auth/terminateSessions");
|
|
22
|
+
const login_1 = require("./auth/login");
|
|
23
|
+
// ─── Fetch imports ───────────────────────────────────────────────────────────
|
|
24
|
+
const fetchTimetable_1 = require("./fetch/fetchTimetable");
|
|
17
25
|
const fetchAttendance_1 = require("./fetch/fetchAttendance");
|
|
18
|
-
const fetchCourseDetails_1 = require("./fetch/fetchCourseDetails");
|
|
19
26
|
const fetchMarks_1 = require("./fetch/fetchMarks");
|
|
20
27
|
const fetchUserInfo_1 = require("./fetch/fetchUserInfo");
|
|
21
|
-
const
|
|
28
|
+
const fetchCalender_1 = require("./fetch/fetchCalender");
|
|
29
|
+
const fetchCourseDetails_1 = require("./fetch/fetchCourseDetails");
|
|
22
30
|
const fetchDayOrder_1 = require("./fetch/fetchDayOrder");
|
|
31
|
+
const fetchLogout_1 = require("./fetch/fetchLogout");
|
|
32
|
+
// ─── Parser imports ──────────────────────────────────────────────────────────
|
|
33
|
+
const parseTimetable_1 = require("./parser/parseTimetable");
|
|
23
34
|
const parseAttendance_1 = require("./parser/parseAttendance");
|
|
35
|
+
const parseMarks_1 = require("./parser/parseMarks");
|
|
24
36
|
const parseCalender_1 = require("./parser/parseCalender");
|
|
25
37
|
const parseCourse_1 = require("./parser/parseCourse");
|
|
26
|
-
const parseMarks_1 = require("./parser/parseMarks");
|
|
27
|
-
const parseTimetable_1 = require("./parser/parseTimetable");
|
|
28
38
|
const parseUserInfo_1 = require("./parser/parseUserInfo");
|
|
29
39
|
const parseDayOrder_1 = require("./parser/parseDayOrder");
|
|
30
|
-
|
|
31
|
-
const
|
|
32
|
-
|
|
40
|
+
// ─── Utils ───────────────────────────────────────────────────────────────────
|
|
41
|
+
const dynamicUrl_1 = require("./utils/dynamicUrl");
|
|
42
|
+
Object.defineProperty(exports, "resetUrlCache", { enumerable: true, get: function () { return dynamicUrl_1.resetUrlCache; } });
|
|
43
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
44
|
+
// Public API
|
|
45
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
46
|
+
/**
|
|
47
|
+
* One-call login: verifyUser → verifyPassword → auto-terminate if needed → re-login.
|
|
48
|
+
* Returns cookies or error.
|
|
49
|
+
*/
|
|
50
|
+
async function login(email, password, maxRetries) {
|
|
51
|
+
return (0, login_1.login)(email, password, maxRetries);
|
|
52
|
+
}
|
|
53
|
+
/** Verify a user exists by their email/username */
|
|
33
54
|
async function verifyUser(username) {
|
|
34
|
-
return
|
|
55
|
+
return (0, validateUser_1.validateUser)(username);
|
|
35
56
|
}
|
|
36
|
-
|
|
57
|
+
/** Verify password after verifyUser */
|
|
37
58
|
async function verifyPassword({ identifier, digest, password, }) {
|
|
38
|
-
return
|
|
59
|
+
return (0, validatePassword_1.validatePassword)({ identifier, digest, password });
|
|
39
60
|
}
|
|
40
|
-
|
|
61
|
+
/** Logout user */
|
|
41
62
|
async function logoutUser(cookie) {
|
|
42
|
-
return
|
|
63
|
+
return (0, fetchLogout_1.fetchLogout)(cookie);
|
|
43
64
|
}
|
|
44
|
-
|
|
45
|
-
async function terminateSessions(
|
|
46
|
-
return
|
|
65
|
+
/** Terminate concurrent sessions (2-device limit bypass) */
|
|
66
|
+
async function terminateSessions(params) {
|
|
67
|
+
return (0, terminateSessions_1.terminateSessions)(params);
|
|
47
68
|
}
|
|
48
|
-
|
|
69
|
+
/** Get timetable data */
|
|
49
70
|
async function getTimetable(cookie) {
|
|
50
71
|
const fetch = await (0, fetchTimetable_1.fetchTimetable)(cookie);
|
|
51
72
|
if (fetch.error)
|
|
52
73
|
return { error: fetch.error, status: fetch.status };
|
|
53
|
-
const parse = await (0, parseTimetable_1.parseTimetable)(fetch);
|
|
74
|
+
const parse = await (0, parseTimetable_1.parseTimetable)(fetch.data);
|
|
54
75
|
if (parse.error)
|
|
55
76
|
return { error: parse.error, status: parse.status };
|
|
56
77
|
return parse;
|
|
57
78
|
}
|
|
58
|
-
|
|
79
|
+
/** Get attendance data */
|
|
59
80
|
async function getAttendance(cookie) {
|
|
60
81
|
const fetch = await (0, fetchAttendance_1.fetchAttendance)(cookie);
|
|
61
82
|
if (fetch.error)
|
|
62
83
|
return { error: fetch.error, status: fetch.status };
|
|
63
|
-
const parse = await (0, parseAttendance_1.parseAttendance)(fetch);
|
|
84
|
+
const parse = await (0, parseAttendance_1.parseAttendance)(fetch.data);
|
|
64
85
|
if (parse.error)
|
|
65
86
|
return { error: parse.error, status: parse.status };
|
|
66
87
|
return parse;
|
|
67
88
|
}
|
|
68
|
-
|
|
89
|
+
/** Get marks data */
|
|
69
90
|
async function getMarks(cookie) {
|
|
70
91
|
const fetch = await (0, fetchMarks_1.fetchMarks)(cookie);
|
|
71
92
|
if (fetch.error)
|
|
72
93
|
return { error: fetch.error, status: fetch.status };
|
|
73
|
-
const parse = await (0, parseMarks_1.parseMarks)(fetch);
|
|
94
|
+
const parse = await (0, parseMarks_1.parseMarks)(fetch.data);
|
|
74
95
|
if (parse.error)
|
|
75
96
|
return { error: parse.error, status: parse.status };
|
|
76
97
|
return parse;
|
|
77
98
|
}
|
|
78
|
-
|
|
99
|
+
/** Get user information */
|
|
79
100
|
async function getUserInfo(cookie) {
|
|
101
|
+
// Try timetable page first (has user info)
|
|
80
102
|
const fetch = await (0, fetchUserInfo_1.fetchUserInfo)(cookie);
|
|
81
|
-
if (fetch.error)
|
|
82
|
-
|
|
83
|
-
|
|
103
|
+
if (fetch.error) {
|
|
104
|
+
// Fallback: try attendance page (also has user info)
|
|
105
|
+
const attFetch = await (0, fetchAttendance_1.fetchAttendance)(cookie);
|
|
106
|
+
if (attFetch.error)
|
|
107
|
+
return { error: attFetch.error, status: attFetch.status };
|
|
108
|
+
const parse = await (0, parseUserInfo_1.parseUserInfo)(attFetch.data);
|
|
109
|
+
if (parse.error)
|
|
110
|
+
return { error: parse.error, status: parse.status };
|
|
111
|
+
return parse;
|
|
112
|
+
}
|
|
113
|
+
const parse = await (0, parseUserInfo_1.parseUserInfo)(fetch.data);
|
|
84
114
|
if (parse.error)
|
|
85
115
|
return { error: parse.error, status: parse.status };
|
|
86
116
|
return parse;
|
|
87
117
|
}
|
|
88
|
-
|
|
118
|
+
/** Get academic calendar */
|
|
89
119
|
async function getCalendar(cookie) {
|
|
90
120
|
const fetch = await (0, fetchCalender_1.fetchCalendar)(cookie);
|
|
91
121
|
if (fetch.error)
|
|
92
122
|
return { error: fetch.error, status: fetch.status };
|
|
93
|
-
const parse = await (0, parseCalender_1.parseCalendar)(fetch);
|
|
123
|
+
const parse = await (0, parseCalender_1.parseCalendar)(fetch.data);
|
|
94
124
|
if (parse.error)
|
|
95
125
|
return { error: parse.error, status: parse.status };
|
|
96
126
|
return parse;
|
|
97
127
|
}
|
|
98
|
-
|
|
128
|
+
/** Get current day order */
|
|
99
129
|
async function getDayOrder(cookie) {
|
|
100
130
|
const fetch = await (0, fetchDayOrder_1.fetchDayOrder)(cookie);
|
|
101
131
|
if (fetch.error)
|
|
102
132
|
return { error: fetch.error, status: fetch.status };
|
|
103
|
-
const parse = await (0, parseDayOrder_1.parseDayOrder)(fetch);
|
|
133
|
+
const parse = await (0, parseDayOrder_1.parseDayOrder)(fetch.data);
|
|
104
134
|
if (parse.error)
|
|
105
135
|
return { error: parse.error, status: parse.status };
|
|
106
136
|
return parse;
|
|
107
137
|
}
|
|
108
|
-
|
|
138
|
+
/** Get course details */
|
|
109
139
|
async function getCourse(cookie) {
|
|
110
140
|
const fetch = await (0, fetchCourseDetails_1.fetchCourseDetails)(cookie);
|
|
111
141
|
if (fetch.error)
|
|
112
142
|
return { error: fetch.error, status: fetch.status };
|
|
113
|
-
const parse = await (0, parseCourse_1.parseCourseDetails)(fetch);
|
|
143
|
+
const parse = await (0, parseCourse_1.parseCourseDetails)(fetch.data);
|
|
114
144
|
if (parse.error)
|
|
115
145
|
return { error: parse.error, status: parse.status };
|
|
116
146
|
return parse;
|
|
117
147
|
}
|
|
118
|
-
|
|
148
|
+
/** Fetch all data in parallel (attendance, marks, timetable, calendar, userInfo, dayOrder, course) */
|
|
149
|
+
async function getAllData(cookie) {
|
|
150
|
+
const [att, mrk, tt, cal, ui, dord, crs] = await Promise.allSettled([
|
|
151
|
+
getAttendance(cookie),
|
|
152
|
+
getMarks(cookie),
|
|
153
|
+
getTimetable(cookie),
|
|
154
|
+
getCalendar(cookie),
|
|
155
|
+
getUserInfo(cookie),
|
|
156
|
+
getDayOrder(cookie),
|
|
157
|
+
getCourse(cookie),
|
|
158
|
+
]);
|
|
159
|
+
return {
|
|
160
|
+
attendance: att.status === "fulfilled" ? att.value : { error: "Failed", status: 500 },
|
|
161
|
+
marks: mrk.status === "fulfilled" ? mrk.value : { error: "Failed", status: 500 },
|
|
162
|
+
timetable: tt.status === "fulfilled" ? tt.value : { error: "Failed", status: 500 },
|
|
163
|
+
calendar: cal.status === "fulfilled" ? cal.value : { error: "Failed", status: 500 },
|
|
164
|
+
userInfo: ui.status === "fulfilled" ? ui.value : { error: "Failed", status: 500 },
|
|
165
|
+
dayOrder: dord.status === "fulfilled"
|
|
166
|
+
? dord.value
|
|
167
|
+
: { error: "Failed", status: 500 },
|
|
168
|
+
course: crs.status === "fulfilled" ? crs.value : { error: "Failed", status: 500 },
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decodeHtml.d.ts","sourceRoot":"","sources":["../../../src/parser/decodeHtml.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,OAAO,GAChB,MAAM,GAAG,IAAI,CAcf"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.decodePageSanitizer = decodePageSanitizer;
|
|
4
|
+
/**
|
|
5
|
+
* Decodes SRM's escaped HTML from the pageSanitizer.sanitize() wrapper.
|
|
6
|
+
* Returns null if the pattern is not found.
|
|
7
|
+
*/
|
|
8
|
+
function decodePageSanitizer(response) {
|
|
9
|
+
const text = typeof response === "string" ? response : JSON.stringify(response);
|
|
10
|
+
const match = text.match(/pageSanitizer\.sanitize\s*\(\s*'(.*?)'\s*\)/s);
|
|
11
|
+
if (!match || !match[1])
|
|
12
|
+
return null;
|
|
13
|
+
return match[1]
|
|
14
|
+
.replace(/\\x([0-9A-Fa-f]{2})/g, (_, hex) => String.fromCharCode(parseInt(hex, 16)))
|
|
15
|
+
.replace(/\\\\/g, "")
|
|
16
|
+
.replace(/\\'/g, "'");
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=decodeHtml.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decodeHtml.js","sourceRoot":"","sources":["../../../src/parser/decodeHtml.ts"],"names":[],"mappings":";;AAIA,kDAgBC;AApBD;;;GAGG;AACH,SAAgB,mBAAmB,CACjC,QAAiB;IAEjB,MAAM,IAAI,GACR,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAErE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAEzE,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAErC,OAAO,KAAK,CAAC,CAAC,CAAC;SACZ,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,GAAW,EAAE,EAAE,CAClD,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CACvC;SACA,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;SACpB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { AttendanceResponse } from "../type/attendance";
|
|
2
|
-
export declare function parseAttendance(response:
|
|
1
|
+
import type { AttendanceResponse } from "../type/attendance";
|
|
2
|
+
export declare function parseAttendance(response: unknown): Promise<AttendanceResponse>;
|
|
3
3
|
//# sourceMappingURL=parseAttendance.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseAttendance.d.ts","sourceRoot":"","sources":["../../../src/parser/parseAttendance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"parseAttendance.d.ts","sourceRoot":"","sources":["../../../src/parser/parseAttendance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAI7D,wBAAsB,eAAe,CACnC,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,kBAAkB,CAAC,CA2H7B"}
|
|
@@ -35,24 +35,71 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.parseAttendance = parseAttendance;
|
|
37
37
|
const cheerio = __importStar(require("cheerio"));
|
|
38
|
-
const attendanceStatus_1 = require("
|
|
38
|
+
const attendanceStatus_1 = require("../utils/attendanceStatus");
|
|
39
|
+
const decodeHtml_1 = require("./decodeHtml");
|
|
39
40
|
async function parseAttendance(response) {
|
|
40
41
|
try {
|
|
41
|
-
const
|
|
42
|
-
if (!
|
|
42
|
+
const decodedHtml = (0, decodeHtml_1.decodePageSanitizer)(response);
|
|
43
|
+
if (!decodedHtml) {
|
|
43
44
|
return { error: "Failed to extract attendance data", status: 404 };
|
|
44
45
|
}
|
|
45
|
-
const encodedHtml = match[1];
|
|
46
|
-
const decodedHtml = encodedHtml
|
|
47
|
-
.replace(/\\x([0-9A-Fa-f]{2})/g, (_, hex) => String.fromCharCode(parseInt(hex, 16)))
|
|
48
|
-
.replace(/\\\\/g, "")
|
|
49
|
-
.replace(/\\'/g, "'");
|
|
50
46
|
const $ = cheerio.load(decodedHtml);
|
|
51
|
-
|
|
47
|
+
// Strategy 1: Old format - table with bgcolor="#FAFAD2"
|
|
48
|
+
let table = $('table[style*="font-size :16px;"][bgcolor="#FAFAD2"]');
|
|
49
|
+
// Strategy 2: Find table by header content
|
|
50
|
+
if (!table.length) {
|
|
51
|
+
$("table").each((_, el) => {
|
|
52
|
+
const headerRow = $(el).find("tr").first();
|
|
53
|
+
const headerText = headerRow.text().toLowerCase();
|
|
54
|
+
if (headerText.includes("course code") &&
|
|
55
|
+
headerText.includes("conducted") &&
|
|
56
|
+
headerText.includes("absent")) {
|
|
57
|
+
table = $(el);
|
|
58
|
+
return false; // break
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
// Strategy 3: Find the largest data table with numeric columns
|
|
63
|
+
if (!table.length) {
|
|
64
|
+
let bestTable = null;
|
|
65
|
+
let bestScore = 0;
|
|
66
|
+
$("table").each((_, el) => {
|
|
67
|
+
const $el = $(el);
|
|
68
|
+
const rows = $el.find("tr");
|
|
69
|
+
if (rows.length < 2)
|
|
70
|
+
return; // need header + at least 1 data row
|
|
71
|
+
// Check if rows have numeric-looking columns (conducted/absent)
|
|
72
|
+
const dataRow = rows.eq(1);
|
|
73
|
+
const cells = dataRow.find("td");
|
|
74
|
+
let numericCells = 0;
|
|
75
|
+
cells.each((__, cell) => {
|
|
76
|
+
const text = $(cell).text().trim();
|
|
77
|
+
if (/^\d+$/.test(text))
|
|
78
|
+
numericCells++;
|
|
79
|
+
});
|
|
80
|
+
const score = rows.length * numericCells;
|
|
81
|
+
if (score > bestScore && cells.length >= 7) {
|
|
82
|
+
bestScore = score;
|
|
83
|
+
bestTable = $el;
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
if (bestTable && bestScore > 0) {
|
|
87
|
+
table = bestTable;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (!table.length) {
|
|
91
|
+
// No attendance table found — could be semester break
|
|
92
|
+
return { attendance: [], status: 200 };
|
|
93
|
+
}
|
|
52
94
|
const rows = table.find("tr").slice(1).toArray();
|
|
95
|
+
if (rows.length === 0) {
|
|
96
|
+
return { attendance: [], status: 200 };
|
|
97
|
+
}
|
|
53
98
|
const attendanceDetails = await Promise.all(rows.map(async (row) => {
|
|
54
99
|
const cols = $(row).find("td");
|
|
55
100
|
const get = (idx) => cols[idx] ? $(cols[idx]).text().trim() : "";
|
|
101
|
+
const courseConducted = get(6) ? Number(get(6)) : 0;
|
|
102
|
+
const courseAbsent = get(7) ? Number(get(7)) : 0;
|
|
56
103
|
const data = {
|
|
57
104
|
courseCode: cols[0]
|
|
58
105
|
? $(cols[0]).contents().first().text().trim()
|
|
@@ -61,21 +108,26 @@ async function parseAttendance(response) {
|
|
|
61
108
|
courseCategory: get(2),
|
|
62
109
|
courseFaculty: get(3).split("(")[0].trim(),
|
|
63
110
|
courseSlot: get(4),
|
|
64
|
-
courseConducted
|
|
65
|
-
courseAbsent
|
|
111
|
+
courseConducted,
|
|
112
|
+
courseAbsent,
|
|
66
113
|
courseAttendanceStatus: await (0, attendanceStatus_1.attendanceStatus)({
|
|
67
|
-
conducted:
|
|
68
|
-
absent:
|
|
114
|
+
conducted: courseConducted,
|
|
115
|
+
absent: courseAbsent,
|
|
69
116
|
}),
|
|
70
117
|
};
|
|
71
|
-
const courseAttendance =
|
|
72
|
-
|
|
118
|
+
const courseAttendance = data.courseConducted > 0
|
|
119
|
+
? Number((((data.courseConducted - data.courseAbsent) /
|
|
120
|
+
data.courseConducted) *
|
|
121
|
+
100).toFixed(2)).toFixed(2)
|
|
122
|
+
: "0.00";
|
|
73
123
|
return {
|
|
74
124
|
...data,
|
|
75
125
|
courseAttendance,
|
|
76
126
|
};
|
|
77
127
|
}));
|
|
78
|
-
|
|
128
|
+
// Filter out rows with empty course codes (header-like rows)
|
|
129
|
+
const validAttendance = attendanceDetails.filter((a) => a.courseCode.length > 0);
|
|
130
|
+
return { attendance: validAttendance, status: 200 };
|
|
79
131
|
}
|
|
80
132
|
catch (error) {
|
|
81
133
|
console.error("Error parsing attendance:", error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseAttendance.js","sourceRoot":"","sources":["../../../src/parser/parseAttendance.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"parseAttendance.js","sourceRoot":"","sources":["../../../src/parser/parseAttendance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { CalendarResponse } from "../type/calendar";
|
|
2
|
-
export declare function parseCalendar(response:
|
|
1
|
+
import type { CalendarResponse } from "../type/calendar";
|
|
2
|
+
export declare function parseCalendar(response: unknown): Promise<CalendarResponse>;
|
|
3
3
|
//# sourceMappingURL=parseCalender.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseCalender.d.ts","sourceRoot":"","sources":["../../../src/parser/parseCalender.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"parseCalender.d.ts","sourceRoot":"","sources":["../../../src/parser/parseCalender.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAyBzD,wBAAsB,aAAa,CACjC,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,gBAAgB,CAAC,CAgO3B"}
|