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
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.courseDynamicUrl = courseDynamicUrl;
|
|
7
|
+
exports.calendarDynamicUrl = calendarDynamicUrl;
|
|
8
|
+
exports.resetUrlCache = resetUrlCache;
|
|
9
|
+
const axios_1 = __importDefault(require("axios"));
|
|
10
|
+
// Cache for resolved URLs to avoid repeated 404 probing
|
|
11
|
+
let resolvedCourseUrl = null;
|
|
12
|
+
let resolvedCalendarUrl = null;
|
|
13
|
+
function getAcademicYearStrings() {
|
|
14
|
+
const now = new Date();
|
|
15
|
+
const year = now.getFullYear();
|
|
16
|
+
const month = now.getMonth() + 1;
|
|
17
|
+
// Generate current and fallback academic year strings
|
|
18
|
+
const years = [];
|
|
19
|
+
if (month >= 1 && month <= 6) {
|
|
20
|
+
// EVEN semester: Jan-June, academic year is (year-1)_yy
|
|
21
|
+
years.push(`${year - 1}_${String(year).slice(-2)}`);
|
|
22
|
+
years.push(`${year - 2}_${String(year - 1).slice(-2)}`);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
// ODD semester: July-Dec, academic year is year_(year+1 last 2 digits)
|
|
26
|
+
years.push(`${year}_${String(year + 1).slice(-2)}`);
|
|
27
|
+
years.push(`${year - 1}_${String(year).slice(-2)}`);
|
|
28
|
+
}
|
|
29
|
+
return years;
|
|
30
|
+
}
|
|
31
|
+
function getSemesterType() {
|
|
32
|
+
const month = new Date().getMonth() + 1;
|
|
33
|
+
return month >= 1 && month <= 6 ? "EVEN" : "ODD";
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Resolves the correct course/timetable URL by trying multiple patterns.
|
|
37
|
+
* SRM changes page names across semesters, so we probe and cache.
|
|
38
|
+
*/
|
|
39
|
+
async function courseDynamicUrl(cookie) {
|
|
40
|
+
if (resolvedCourseUrl)
|
|
41
|
+
return resolvedCourseUrl;
|
|
42
|
+
const base = "https://academia.srmist.edu.in/srm_university/academia-academic-services/page/";
|
|
43
|
+
const yearStrings = getAcademicYearStrings();
|
|
44
|
+
// Build candidate URLs in priority order
|
|
45
|
+
const candidates = [];
|
|
46
|
+
for (const ys of yearStrings) {
|
|
47
|
+
candidates.push(`${base}My_Time_Table_${ys}`);
|
|
48
|
+
}
|
|
49
|
+
// Known working fallback
|
|
50
|
+
candidates.push(`${base}My_Time_Table_2023_24`);
|
|
51
|
+
// If we have a cookie, probe each URL
|
|
52
|
+
if (cookie) {
|
|
53
|
+
for (const url of candidates) {
|
|
54
|
+
try {
|
|
55
|
+
const r = await axios_1.default.get(url, {
|
|
56
|
+
headers: {
|
|
57
|
+
cookie,
|
|
58
|
+
"x-requested-with": "XMLHttpRequest",
|
|
59
|
+
Referer: "https://academia.srmist.edu.in/",
|
|
60
|
+
},
|
|
61
|
+
responseType: "text",
|
|
62
|
+
validateStatus: () => true,
|
|
63
|
+
timeout: 5000,
|
|
64
|
+
});
|
|
65
|
+
if (r.status === 200 &&
|
|
66
|
+
r.data.includes("course_tbl")) {
|
|
67
|
+
resolvedCourseUrl = url;
|
|
68
|
+
return url;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
// continue to next candidate
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// If no probing possible (no cookie) or all failed, return the first candidate
|
|
77
|
+
// The fetch functions will handle the 404 appropriately
|
|
78
|
+
return candidates[0];
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Resolves the correct academic calendar URL.
|
|
82
|
+
*/
|
|
83
|
+
async function calendarDynamicUrl() {
|
|
84
|
+
if (resolvedCalendarUrl)
|
|
85
|
+
return resolvedCalendarUrl;
|
|
86
|
+
const base = "https://academia.srmist.edu.in/srm_university/academia-academic-services/page/";
|
|
87
|
+
const yearStrings = getAcademicYearStrings();
|
|
88
|
+
const semester = getSemesterType();
|
|
89
|
+
// Build candidate URLs
|
|
90
|
+
const candidates = [];
|
|
91
|
+
for (const ys of yearStrings) {
|
|
92
|
+
candidates.push(`${base}Academic_Planner_${ys}_${semester}`);
|
|
93
|
+
}
|
|
94
|
+
// Return first candidate (calendar page is more stable)
|
|
95
|
+
resolvedCalendarUrl = candidates[0];
|
|
96
|
+
return candidates[0];
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Reset cached URLs (useful for testing or when semester changes)
|
|
100
|
+
*/
|
|
101
|
+
function resetUrlCache() {
|
|
102
|
+
resolvedCourseUrl = null;
|
|
103
|
+
resolvedCalendarUrl = null;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=dynamicUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamicUrl.js","sourceRoot":"","sources":["../../../src/utils/dynamicUrl.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "reddy-api-srm",
|
|
3
3
|
"description": "SRMIST KTR Academia portal",
|
|
4
|
-
"version": "1.0
|
|
4
|
+
"version": "1.1.0",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"types": "dist/src/index.d.ts",
|
|
7
7
|
"exports": {
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"@types/node": "^24.1.0",
|
|
45
45
|
"eslint": "^9.32.0",
|
|
46
46
|
"ts-node": "^10.9.2",
|
|
47
|
-
"typescript": "^5.
|
|
47
|
+
"typescript": "^5.9.3",
|
|
48
48
|
"typescript-eslint": "^8.38.0"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|