parse-comcigan 0.0.6 → 0.2.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/README.md +7 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +17 -10
- package/dist/index.js.map +1 -1
- package/package.json +4 -2
- package/src/index.ts +23 -9
package/README.md
CHANGED
|
@@ -25,6 +25,7 @@ Comcigan 클래스의 인스턴스를 생성하여 사용합니다.
|
|
|
25
25
|
|cacheMs|number|0|캐시될 시간(밀리초)입니다. 0일때 캐시를 비활성화합니다.|
|
|
26
26
|
|doNotThrow|boolean|true|[Axios](https://axios-http.com/)에서 validateStatus를 항상 true로 반환할 지에 대한 여부입니다.|
|
|
27
27
|
|debug|(msg: string) => any|undefined|디버그 메시지를 처리하는 콜백입니다. 이 콜백은 주로 컴시간과 통신할 때 호출됩니다.|
|
|
28
|
+
|appVersion|string|2.11|컴시간알리미 안드로이드 앱의 버전입니다.|
|
|
28
29
|
|
|
29
30
|
```typescript
|
|
30
31
|
import Comcigan from 'parse-comcigan';
|
|
@@ -141,6 +142,12 @@ comci.GetClassList(96211).then(data => {
|
|
|
141
142
|
|
|
142
143
|
## 업데이트 로그
|
|
143
144
|
|
|
145
|
+
### 0.2.0
|
|
146
|
+
|
|
147
|
+
- 버전 넘버링 수정
|
|
148
|
+
- 앱 버전 수정 기능 추가
|
|
149
|
+
- 시간표 버그 수정
|
|
150
|
+
|
|
144
151
|
### 0.0.6
|
|
145
152
|
|
|
146
153
|
- 모듈이 불러와지지 않던 버그 수정
|
package/dist/index.d.ts
CHANGED
|
@@ -43,6 +43,12 @@ export interface ComciganInitializeType {
|
|
|
43
43
|
* 기본값은 없습니다.
|
|
44
44
|
*/
|
|
45
45
|
debug?: (msg: string) => any;
|
|
46
|
+
/**
|
|
47
|
+
* 컴시간알리미의 앱 버전입니다.
|
|
48
|
+
*
|
|
49
|
+
* 기본값은 2.11입니다.
|
|
50
|
+
*/
|
|
51
|
+
appVersion?: string;
|
|
46
52
|
}
|
|
47
53
|
export type ComciganSearched = {
|
|
48
54
|
/**
|
|
@@ -100,6 +106,7 @@ export default class Comcigan {
|
|
|
100
106
|
private _cache;
|
|
101
107
|
private mSb;
|
|
102
108
|
private mTh;
|
|
109
|
+
private unusable;
|
|
103
110
|
private request;
|
|
104
111
|
private EUC_KR_encodeURI;
|
|
105
112
|
/**
|
package/dist/index.js
CHANGED
|
@@ -18,6 +18,11 @@ export default class Comcigan {
|
|
|
18
18
|
mTh(mm, m2) { if (m2 == 100) {
|
|
19
19
|
return Math.floor(mm / m2);
|
|
20
20
|
} return mm % m2; }
|
|
21
|
+
unusable(object, array) {
|
|
22
|
+
if (object === array[0])
|
|
23
|
+
return;
|
|
24
|
+
return object;
|
|
25
|
+
}
|
|
21
26
|
request(route, doNotParse) {
|
|
22
27
|
return __awaiter(this, void 0, void 0, function* () {
|
|
23
28
|
if (this._cache.has(route)) {
|
|
@@ -54,7 +59,8 @@ export default class Comcigan {
|
|
|
54
59
|
constructor(options) {
|
|
55
60
|
this._options = {
|
|
56
61
|
"cacheMs": 0,
|
|
57
|
-
"doNotThrow": false
|
|
62
|
+
"doNotThrow": false,
|
|
63
|
+
"appVersion": "2.11",
|
|
58
64
|
};
|
|
59
65
|
this._cache = new Cache();
|
|
60
66
|
this._options = Object.assign(Object.assign({}, this._options), options);
|
|
@@ -83,9 +89,10 @@ export default class Comcigan {
|
|
|
83
89
|
*/
|
|
84
90
|
GetTimetable(options) {
|
|
85
91
|
return __awaiter(this, void 0, void 0, function* () {
|
|
86
|
-
var _a;
|
|
92
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
87
93
|
const { schoolCode, criteria, grade, classN, without8th } = options;
|
|
88
|
-
const
|
|
94
|
+
const { appVersion } = this._options;
|
|
95
|
+
const str = `36174_${schoolCode}_1_4_0_3_${appVersion}`;
|
|
89
96
|
const route = (str.substring(9) + str.substring(0, 9)).split("").reverse().join("");
|
|
90
97
|
const data = yield this.request(`7813?${route}`, true);
|
|
91
98
|
const [latestVersion, step1] = data.split("^");
|
|
@@ -106,7 +113,7 @@ export default class Comcigan {
|
|
|
106
113
|
for (let period = 1; period < (without8th ? 8 : 9); period++) {
|
|
107
114
|
const o = origin[weekday][period];
|
|
108
115
|
const t = today[weekday][period];
|
|
109
|
-
if (
|
|
116
|
+
if (o === undefined || t === undefined) {
|
|
110
117
|
weekdayList.push({
|
|
111
118
|
"subject": "-",
|
|
112
119
|
"teacher": "-"
|
|
@@ -117,19 +124,19 @@ export default class Comcigan {
|
|
|
117
124
|
const originTeacher = json.성명[this.mTh(o, sep) % sep];
|
|
118
125
|
if (o === t) {
|
|
119
126
|
weekdayList.push({
|
|
120
|
-
"subject": originSubject,
|
|
121
|
-
"teacher": originTeacher
|
|
127
|
+
"subject": (_b = this.unusable(originSubject, json.과목명)) !== null && _b !== void 0 ? _b : "-",
|
|
128
|
+
"teacher": (_c = this.unusable(originTeacher, json.성명)) !== null && _c !== void 0 ? _c : "-"
|
|
122
129
|
});
|
|
123
130
|
continue;
|
|
124
131
|
}
|
|
125
132
|
const changedSubject = json.과목명[this.mSb(t, sep) % sep];
|
|
126
133
|
const changedTeacher = json.성명[this.mTh(t, sep) % sep];
|
|
127
134
|
weekdayList.push({
|
|
128
|
-
"subject":
|
|
129
|
-
"teacher":
|
|
135
|
+
"subject": (_d = this.unusable(changedSubject, json.과목명)) !== null && _d !== void 0 ? _d : "-",
|
|
136
|
+
"teacher": (_e = this.unusable(changedTeacher, json.성명)) !== null && _e !== void 0 ? _e : "-",
|
|
130
137
|
"original": {
|
|
131
|
-
"subject":
|
|
132
|
-
"teacher":
|
|
138
|
+
"subject": (_f = this.unusable(originSubject, json.과목명)) !== null && _f !== void 0 ? _f : "-",
|
|
139
|
+
"teacher": (_g = this.unusable(originTeacher, json.성명)) !== null && _g !== void 0 ? _g : "-",
|
|
133
140
|
}
|
|
134
141
|
});
|
|
135
142
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,KAAK,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "parse-comcigan",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "컴시간 알리미에서 시간표를 가져오는 라이브러리입니다.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -11,7 +11,9 @@
|
|
|
11
11
|
"pack": "npm run clean && npm run build",
|
|
12
12
|
"build": "tsc",
|
|
13
13
|
"clean": "tsc --build --clean",
|
|
14
|
-
"dev": "nodemon --exec ts-node src/index.ts"
|
|
14
|
+
"dev": "nodemon --exec ts-node src/index.ts",
|
|
15
|
+
"test": "npm run pack && node \"test.js\"",
|
|
16
|
+
"publish": "npm run pack && npm publish"
|
|
15
17
|
},
|
|
16
18
|
"devDependencies": {
|
|
17
19
|
"@types/node": "^22.15.30",
|
package/src/index.ts
CHANGED
|
@@ -48,6 +48,12 @@ export interface ComciganInitializeType {
|
|
|
48
48
|
* 기본값은 없습니다.
|
|
49
49
|
*/
|
|
50
50
|
debug?: (msg: string) => any;
|
|
51
|
+
/**
|
|
52
|
+
* 컴시간알리미의 앱 버전입니다.
|
|
53
|
+
*
|
|
54
|
+
* 기본값은 2.11입니다.
|
|
55
|
+
*/
|
|
56
|
+
appVersion?: string;
|
|
51
57
|
}
|
|
52
58
|
export type ComciganSearched = {
|
|
53
59
|
/**
|
|
@@ -105,13 +111,20 @@ export type ComciganTimetable = {
|
|
|
105
111
|
export default class Comcigan {
|
|
106
112
|
private _options: ComciganInitializeType = {
|
|
107
113
|
"cacheMs": 0,
|
|
108
|
-
"doNotThrow": false
|
|
114
|
+
"doNotThrow": false,
|
|
115
|
+
"appVersion": "2.11",
|
|
109
116
|
};
|
|
110
117
|
private _cache = new Cache();
|
|
111
118
|
|
|
112
119
|
private mSb(mm: number, m2: number) { if (m2 == 100) { return mm % m2; } return Math.floor(mm / m2); }
|
|
113
120
|
private mTh(mm: number, m2: number) { if (m2 == 100) { return Math.floor(mm / m2); } return mm % m2; }
|
|
114
121
|
|
|
122
|
+
private unusable(object: any, array: any[]) {
|
|
123
|
+
if (object === array[0]) return;
|
|
124
|
+
|
|
125
|
+
return object;
|
|
126
|
+
}
|
|
127
|
+
|
|
115
128
|
private async request<T = any>(route: string, doNotParse?: boolean): Promise<T> {
|
|
116
129
|
if (this._cache.has(route)) {
|
|
117
130
|
this._options.debug ? this._options.debug(`[request] Return cache with id registered as ${route}`) : 0;
|
|
@@ -181,8 +194,9 @@ export default class Comcigan {
|
|
|
181
194
|
*/
|
|
182
195
|
public async GetTimetable(options: GetTimetableOptions): Promise<ComciganTimetable | undefined> {
|
|
183
196
|
const { schoolCode, criteria, grade, classN, without8th } = options;
|
|
197
|
+
const { appVersion } = this._options;
|
|
184
198
|
|
|
185
|
-
const str = `36174_${schoolCode}
|
|
199
|
+
const str = `36174_${schoolCode}_1_4_0_3_${appVersion}`;
|
|
186
200
|
const route = (str.substring(9) + str.substring(0, 9)).split("").reverse().join("");
|
|
187
201
|
const data = await this.request<string>(`7813?${route}`, true);
|
|
188
202
|
|
|
@@ -209,7 +223,7 @@ export default class Comcigan {
|
|
|
209
223
|
const o = origin[weekday][period];
|
|
210
224
|
const t = today[weekday][period];
|
|
211
225
|
|
|
212
|
-
if (
|
|
226
|
+
if (o === undefined || t === undefined) {
|
|
213
227
|
weekdayList.push({
|
|
214
228
|
"subject": "-",
|
|
215
229
|
"teacher": "-"
|
|
@@ -222,8 +236,8 @@ export default class Comcigan {
|
|
|
222
236
|
|
|
223
237
|
if (o === t) {
|
|
224
238
|
weekdayList.push({
|
|
225
|
-
"subject": originSubject,
|
|
226
|
-
"teacher": originTeacher
|
|
239
|
+
"subject": this.unusable(originSubject, json.과목명) ?? "-",
|
|
240
|
+
"teacher": this.unusable(originTeacher, json.성명) ?? "-"
|
|
227
241
|
});
|
|
228
242
|
continue;
|
|
229
243
|
}
|
|
@@ -232,11 +246,11 @@ export default class Comcigan {
|
|
|
232
246
|
const changedTeacher = json.성명[this.mTh(t, sep) % sep];
|
|
233
247
|
|
|
234
248
|
weekdayList.push({
|
|
235
|
-
"subject":
|
|
236
|
-
"teacher":
|
|
249
|
+
"subject": this.unusable(changedSubject, json.과목명) ?? "-",
|
|
250
|
+
"teacher": this.unusable(changedTeacher, json.성명) ?? "-",
|
|
237
251
|
"original": {
|
|
238
|
-
"subject":
|
|
239
|
-
"teacher":
|
|
252
|
+
"subject": this.unusable(originSubject, json.과목명) ?? "-",
|
|
253
|
+
"teacher": this.unusable(originTeacher, json.성명) ?? "-",
|
|
240
254
|
}
|
|
241
255
|
});
|
|
242
256
|
}
|