parse-comcigan 0.0.4 → 0.0.6

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 CHANGED
@@ -7,7 +7,7 @@
7
7
  ## 경고
8
8
 
9
9
  본 라이브러리는 **비공식적**으로 컴시간알리미의 데이터를 파싱합니다.
10
- 상업적으로 사용하다 문제가 발생할경우, **제작자는 책임을 지지 않습니다.**
10
+ 상업적으로 사용하다 문제가 발생할경우, **제작자는 책임을 지지 않습니다.**
11
11
 
12
12
  ## 설치
13
13
 
@@ -31,7 +31,7 @@ import Comcigan from 'parse-comcigan';
31
31
 
32
32
  const comci = new Comcigan({
33
33
  "cacheMs": 10000, // 10초동안 캐시됩니다.
34
- "doNotThrow": true, // true일때, status가 4 또는 5로 시작하면 throw 됩니다.
34
+ "doNotThrow": false, // false일때, status가 4 또는 5로 시작하면 throw 됩니다.
35
35
  "debug": (msg) => console.log(msg) // 모듈에서 디버그 메시지를 보내면 콘솔에 출력합니다.
36
36
  });
37
37
  ```
@@ -70,17 +70,27 @@ comci.SearchSchool("서울").then(data => {
70
70
 
71
71
  |파라메터|타입|필수|설명|
72
72
  |------|------|------|-----------|
73
- |schoolCode|number|Yes|학교 코드|
74
- |criteria|"weekday" or "period"|Yes|리스트 반환을 어떻게 할지 여부입니다.|
75
- |grade|number|Yes|학년|
76
- |classN|number|Yes|반|
73
+ |options|[GetTimetableOptions](#gettimetableoptions)|Yes|옵션|
77
74
 
78
75
  ```typescript
79
- comci.GetTimetable(96211, "period", 3, 5).then(data => {
80
- console.log(data[0][5]); // [요일][교시] 월요일 5교시
76
+ comci.GetTimetable({
77
+ "schoolCode": 96211,
78
+ "criteria": "period",
79
+ "grade": 3,
80
+ "classN": 5,
81
+ "without8th": false
82
+ }).then(data => {
83
+ console.log(data.timetable[0][7]); // [요일][교시] 월요일 8교시
81
84
  });
82
- comci.GetTimetable(96211, "weekday", 3, 5).then(data => {
83
- console.log(data[5][0]); // [교시][요일] 월요일 5교시
85
+ comci.GetTimetable({
86
+ "schoolCode": 96211,
87
+ "criteria": "weekday",
88
+ "grade": 3,
89
+ "classN": 5,
90
+ "without8th": true
91
+ }).then(data => {
92
+ console.log(data.timetable[4][0]); // [교시][요일] 월요일 5교시
93
+ console.log(data.timetable[7]); // undefined
84
94
  });
85
95
  ```
86
96
 
@@ -120,8 +130,26 @@ comci.GetClassList(96211).then(data => {
120
130
  |changed|string|교사|Yes|
121
131
  |original|여기서 original만 빠진 오브젝트|원래 시간표|No|
122
132
 
133
+ ### GetTimetableOptions
134
+
135
+ |파라메터|타입|필수|설명|
136
+ |------|------|------|-----------|
137
+ |schoolCode|number|Yes|학교 코드|
138
+ |criteria|"weekday" or "period"|Yes|리스트 반환을 어떻게 할지 여부입니다.|
139
+ |grade|number|Yes|학년|
140
+ |classN|number|Yes|반|
141
+
123
142
  ## 업데이트 로그
124
143
 
144
+ ### 0.0.6
145
+
146
+ - 모듈이 불러와지지 않던 버그 수정
147
+
148
+ ### 0.0.5
149
+
150
+ - 문서의 많은 오류 수정
151
+ - 8교시 제외 추가
152
+
125
153
  ### 0.0.4
126
154
 
127
155
  - 모듈이 불러와지지 않던 버그 수정
@@ -0,0 +1,8 @@
1
+ export default class Cache {
2
+ private _cacheStorage;
3
+ register(id: string, data: any, duration: number): void;
4
+ delete(id: string): void;
5
+ clear(): void;
6
+ has(id: string): boolean;
7
+ get(id: string): any;
8
+ }
package/dist/cache.js ADDED
@@ -0,0 +1,32 @@
1
+ export default class Cache {
2
+ constructor() {
3
+ this._cacheStorage = {};
4
+ }
5
+ register(id, data, duration) {
6
+ this._cacheStorage[id] = {
7
+ "timeout": setTimeout(() => {
8
+ delete this._cacheStorage[id];
9
+ }, duration),
10
+ "data": data
11
+ };
12
+ }
13
+ delete(id) {
14
+ clearTimeout(this._cacheStorage[id].timeout);
15
+ delete this._cacheStorage[id];
16
+ }
17
+ clear() {
18
+ const caches = Object.keys(this._cacheStorage);
19
+ for (let cache of caches) {
20
+ clearTimeout(this._cacheStorage[cache].timeout);
21
+ delete this._cacheStorage[cache];
22
+ }
23
+ }
24
+ has(id) {
25
+ return Boolean(this._cacheStorage[id]);
26
+ }
27
+ get(id) {
28
+ var _a;
29
+ return (_a = this._cacheStorage[id]) === null || _a === void 0 ? void 0 : _a.data;
30
+ }
31
+ }
32
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,KAAK;IAA1B;QACY,kBAAa,GAGhB,EAAE,CAAC;IA2BZ,CAAC;IAzBU,QAAQ,CAAC,EAAU,EAAE,IAAS,EAAE,QAAgB;QACnD,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG;YACrB,SAAS,EAAE,UAAU,CAAC,GAAG,EAAE;gBACvB,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAClC,CAAC,EAAE,QAAQ,CAAC;YACZ,MAAM,EAAE,IAAI;SACf,CAAC;IACN,CAAC;IACM,MAAM,CAAC,EAAU;QACpB,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IACM,KAAK;QACR,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/C,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;YACvB,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;IACL,CAAC;IACM,GAAG,CAAC,EAAU;QACjB,OAAO,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC;IACM,GAAG,CAAC,EAAU;;QACjB,OAAO,MAAA,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,0CAAE,IAAI,CAAC;IACxC,CAAC;CACJ"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,28 @@
1
+ export type GetTimetableOptions = {
2
+ /**
3
+ * 컴시간 학교 코드입니다.
4
+ */
5
+ "schoolCode": number;
6
+ /**
7
+ * 구분을 어떻게 할지 여부입니다.
8
+ *
9
+ * - weekday로 설정하면 시간표[교시][요일]로 과목과 선생님을 불러옵니다.
10
+ * - period로 설정하면 시간표[요일][교시]로 과목과 선생님을 불러옵니다.
11
+ */
12
+ "criteria": "weekday" | "period";
13
+ /**
14
+ * 학년입니다.
15
+ */
16
+ "grade": number;
17
+ /**
18
+ * 반입니다.
19
+ */
20
+ "classN": number;
21
+ /**
22
+ * 8교시를 빼고 리턴할지 여부입니다.
23
+ */
24
+ "without8th"?: boolean;
25
+ };
1
26
  export interface ComciganInitializeType {
2
27
  /**
3
28
  * 이 기간동안 컴시간과 통신한 데이터가 캐시됩니다.
@@ -95,7 +120,7 @@ export default class Comcigan {
95
120
  * @param schoolCode
96
121
  * @param criteria
97
122
  */
98
- GetTimetable(schoolCode: number, criteria: "weekday" | "period", grade: number, classN: number): Promise<ComciganTimetable | undefined>;
123
+ GetTimetable(options: GetTimetableOptions): Promise<ComciganTimetable | undefined>;
99
124
  /**
100
125
  * 학급 목록을 가져옵니다.
101
126
  *
package/dist/index.js CHANGED
@@ -9,37 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import axios from 'axios';
11
11
  import iconv from 'iconv-lite';
12
- class Cache {
13
- constructor() {
14
- this._cacheStorage = {};
15
- }
16
- register(id, data, duration) {
17
- this._cacheStorage[id] = {
18
- "timeout": setTimeout(() => {
19
- delete this._cacheStorage[id];
20
- }, duration),
21
- "data": data
22
- };
23
- }
24
- delete(id) {
25
- clearTimeout(this._cacheStorage[id].timeout);
26
- delete this._cacheStorage[id];
27
- }
28
- clear() {
29
- const caches = Object.keys(this._cacheStorage);
30
- for (let cache of caches) {
31
- clearTimeout(this._cacheStorage[cache].timeout);
32
- delete this._cacheStorage[cache];
33
- }
34
- }
35
- has(id) {
36
- return Boolean(this._cacheStorage[id]);
37
- }
38
- get(id) {
39
- var _a;
40
- return (_a = this._cacheStorage[id]) === null || _a === void 0 ? void 0 : _a.data;
41
- }
42
- }
12
+ import Cache from './cache.js';
43
13
  //#endregion
44
14
  export default class Comcigan {
45
15
  mSb(mm, m2) { if (m2 == 100) {
@@ -111,9 +81,10 @@ export default class Comcigan {
111
81
  * @param schoolCode
112
82
  * @param criteria
113
83
  */
114
- GetTimetable(schoolCode, criteria, grade, classN) {
84
+ GetTimetable(options) {
115
85
  return __awaiter(this, void 0, void 0, function* () {
116
86
  var _a;
87
+ const { schoolCode, criteria, grade, classN, without8th } = options;
117
88
  const str = `36174_${schoolCode}_1_4_0_3_1.00`;
118
89
  const route = (str.substring(9) + str.substring(0, 9)).split("").reverse().join("");
119
90
  const data = yield this.request(`7813?${route}`, true);
@@ -132,7 +103,7 @@ export default class Comcigan {
132
103
  if (criteria === "period") {
133
104
  for (let weekday = 1; weekday < WEEKDAY.length + 1; weekday++) {
134
105
  const weekdayList = [];
135
- for (let period = 1; period < 9; period++) {
106
+ for (let period = 1; period < (without8th ? 8 : 9); period++) {
136
107
  const o = origin[weekday][period];
137
108
  const t = today[weekday][period];
138
109
  if (!o || !t) {
@@ -166,7 +137,7 @@ export default class Comcigan {
166
137
  }
167
138
  }
168
139
  else {
169
- for (let period = 1; period < 9; period++) {
140
+ for (let period = 1; period < (without8th ? 8 : 9); period++) {
170
141
  const periodList = [];
171
142
  for (let weekday = 1; weekday < WEEKDAY.length + 1; weekday++) {
172
143
  const o = origin[weekday][period];
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
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.4",
3
+ "version": "0.0.6",
4
4
  "description": "컴시간 알리미에서 시간표를 가져오는 라이브러리입니다.",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -14,7 +14,7 @@
14
14
  "dev": "nodemon --exec ts-node src/index.ts"
15
15
  },
16
16
  "devDependencies": {
17
- "@types/node": "^22.14.1",
17
+ "@types/node": "^22.15.30",
18
18
  "nodemon": "^3.1.9",
19
19
  "ts-node": "^10.9.2",
20
20
  "typescript": "^5.8.3"
@@ -36,4 +36,4 @@
36
36
  "bugs": {
37
37
  "url": "https://github.com/Pro203S/parse-comcigan/issues"
38
38
  }
39
- }
39
+ }
package/src/cache.ts ADDED
@@ -0,0 +1,32 @@
1
+ export default class Cache {
2
+ private _cacheStorage: Collection<{
3
+ "timeout": NodeJS.Timeout;
4
+ "data": any;
5
+ }> = {};
6
+
7
+ public register(id: string, data: any, duration: number) {
8
+ this._cacheStorage[id] = {
9
+ "timeout": setTimeout(() => {
10
+ delete this._cacheStorage[id];
11
+ }, duration),
12
+ "data": data
13
+ };
14
+ }
15
+ public delete(id: string) {
16
+ clearTimeout(this._cacheStorage[id].timeout);
17
+ delete this._cacheStorage[id];
18
+ }
19
+ public clear() {
20
+ const caches = Object.keys(this._cacheStorage);
21
+ for (let cache of caches) {
22
+ clearTimeout(this._cacheStorage[cache].timeout);
23
+ delete this._cacheStorage[cache];
24
+ }
25
+ }
26
+ public has(id: string) {
27
+ return Boolean(this._cacheStorage[id]);
28
+ }
29
+ public get(id: string) {
30
+ return this._cacheStorage[id]?.data;
31
+ }
32
+ }
package/src/index.ts CHANGED
@@ -1,84 +1,33 @@
1
1
  import axios from 'axios';
2
2
  import iconv from 'iconv-lite';
3
+ import Cache from './cache.js';
3
4
 
4
- class Cache {
5
- private _cacheStorage: {
6
- [id: string]: {
7
- "timeout": NodeJS.Timeout;
8
- "data": any;
9
- }
10
- } = {};
11
-
12
- public register(id: string, data: any, duration: number) {
13
- this._cacheStorage[id] = {
14
- "timeout": setTimeout(() => {
15
- delete this._cacheStorage[id];
16
- }, duration),
17
- "data": data
18
- };
19
- }
20
- public delete(id: string) {
21
- clearTimeout(this._cacheStorage[id].timeout);
22
- delete this._cacheStorage[id];
23
- }
24
- public clear() {
25
- const caches = Object.keys(this._cacheStorage);
26
- for (let cache of caches) {
27
- clearTimeout(this._cacheStorage[cache].timeout);
28
- delete this._cacheStorage[cache];
29
- }
30
- }
31
- public has(id: string) {
32
- return Boolean(this._cacheStorage[id]);
33
- }
34
- public get(id: string) {
35
- return this._cacheStorage[id]?.data;
36
- }
37
- }
38
-
39
- //#region 내부 타입
40
- type RawComciganSearched = {
41
- "학교검색": [
42
- number,
43
- string,
44
- string,
45
- number
46
- ][];
47
- };
48
- type RawComciganTimetable = {
49
- 교사수: number;
50
- 성명: string[];
51
- 학급수: number[];
52
- 요일별시수: number[][];
53
- 과목명: any[];
54
- 시간표: any;
55
- 전일제: number[];
56
- 버젼: string;
57
- 동시수업수: number;
58
- 담임: number[][];
59
- 가상학급수: number[];
60
- 특별실수: number;
61
- 열람제한일: string;
62
- 저장일: string;
63
- 학기시작일자: string;
64
- 학교명: string;
65
- 지역명: string;
66
- 학년도: number;
67
- 분리?: number;
68
- 강의실: number;
69
- 시작일: string;
70
- 일과시간: string[];
71
- 일자자료: [number, string][];
72
- 오늘r: number;
73
- 학급시간표: any;
74
- 교사시간표: any[];
75
- 강의실시간표: any;
76
- 동시그룹: number[][];
77
- 컴시간?: string;
5
+ //#region 타입 export
6
+ export type GetTimetableOptions = {
7
+ /**
8
+ * 컴시간 학교 코드입니다.
9
+ */
10
+ "schoolCode": number,
11
+ /**
12
+ * 구분을 어떻게 할지 여부입니다.
13
+ *
14
+ * - weekday로 설정하면 시간표[교시][요일]로 과목과 선생님을 불러옵니다.
15
+ * - period로 설정하면 시간표[요일][교시]로 과목과 선생님을 불러옵니다.
16
+ */
17
+ "criteria": "weekday" | "period",
18
+ /**
19
+ * 학년입니다.
20
+ */
21
+ "grade": number,
22
+ /**
23
+ * 반입니다.
24
+ */
25
+ "classN": number,
26
+ /**
27
+ * 8교시를 빼고 리턴할지 여부입니다.
28
+ */
29
+ "without8th"?: boolean,
78
30
  };
79
- //#endregion
80
-
81
- //#region 외부 타입
82
31
  export interface ComciganInitializeType {
83
32
  /**
84
33
  * 이 기간동안 컴시간과 통신한 데이터가 캐시됩니다.
@@ -230,7 +179,9 @@ export default class Comcigan {
230
179
  * @param schoolCode
231
180
  * @param criteria
232
181
  */
233
- public async GetTimetable(schoolCode: number, criteria: "weekday" | "period", grade: number, classN: number): Promise<ComciganTimetable | undefined> {
182
+ public async GetTimetable(options: GetTimetableOptions): Promise<ComciganTimetable | undefined> {
183
+ const { schoolCode, criteria, grade, classN, without8th } = options;
184
+
234
185
  const str = `36174_${schoolCode}_1_4_0_3_1.00`;
235
186
  const route = (str.substring(9) + str.substring(0, 9)).split("").reverse().join("");
236
187
  const data = await this.request<string>(`7813?${route}`, true);
@@ -254,7 +205,7 @@ export default class Comcigan {
254
205
  if (criteria === "period") {
255
206
  for (let weekday = 1; weekday < WEEKDAY.length + 1; weekday++) {
256
207
  const weekdayList: ComciganTimetableObject[] = [];
257
- for (let period = 1; period < 9; period++) {
208
+ for (let period = 1; period < (without8th ? 8 : 9); period++) {
258
209
  const o = origin[weekday][period];
259
210
  const t = today[weekday][period];
260
211
 
@@ -292,7 +243,7 @@ export default class Comcigan {
292
243
  toReturn.push(weekdayList);
293
244
  }
294
245
  } else {
295
- for (let period = 1; period < 9; period++) {
246
+ for (let period = 1; period < (without8th ? 8 : 9); period++) {
296
247
  const periodList: ComciganTimetableObject[] = [];
297
248
  for (let weekday = 1; weekday < WEEKDAY.length + 1; weekday++) {
298
249
  const o = origin[weekday][period];
@@ -356,9 +307,9 @@ export default class Comcigan {
356
307
  const json: RawComciganTimetable = JSON.parse(step2.slice(0, step2.indexOf("}") + 1));
357
308
  const rawClasses = json.학급수;
358
309
  if (!rawClasses) return [];
359
-
310
+
360
311
  const toReturn: string[] = [];
361
-
312
+
362
313
  for (let g = 1; g < rawClasses.length; g++) {
363
314
  for (let c = 1; c < rawClasses[g] + 1; c++) {
364
315
  toReturn.push(`${g}-${c}`);
@@ -0,0 +1,45 @@
1
+ declare global {
2
+ type Collection<V = any> = { [key: string]: V };
3
+
4
+ type RawComciganSearched = {
5
+ "학교검색": [
6
+ number,
7
+ string,
8
+ string,
9
+ number
10
+ ][];
11
+ };
12
+ type RawComciganTimetable = {
13
+ 교사수: number;
14
+ 성명: string[];
15
+ 학급수: number[];
16
+ 요일별시수: number[][];
17
+ 과목명: any[];
18
+ 시간표: any;
19
+ 전일제: number[];
20
+ 버젼: string;
21
+ 동시수업수: number;
22
+ 담임: number[][];
23
+ 가상학급수: number[];
24
+ 특별실수: number;
25
+ 열람제한일: string;
26
+ 저장일: string;
27
+ 학기시작일자: string;
28
+ 학교명: string;
29
+ 지역명: string;
30
+ 학년도: number;
31
+ 분리?: number;
32
+ 강의실: number;
33
+ 시작일: string;
34
+ 일과시간: string[];
35
+ 일자자료: [number, string][];
36
+ 오늘r: number;
37
+ 학급시간표: any;
38
+ 교사시간표: any[];
39
+ 강의실시간표: any;
40
+ 동시그룹: number[][];
41
+ 컴시간?: string;
42
+ };
43
+ }
44
+
45
+ export { }
package/tsconfig.json CHANGED
@@ -11,7 +11,14 @@
11
11
  "esModuleInterop": true,
12
12
  "declaration": true,
13
13
  "strict": true,
14
- "sourceMap": true
14
+ "sourceMap": true,
15
+ "types": [
16
+ "node"
17
+ ],
18
+ "typeRoots": [
19
+ "./src/types",
20
+ "./node_modules/@types"
21
+ ]
15
22
  },
16
23
  "include": [
17
24
  "src/**/*"