parse-comcigan 0.3.0 → 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/README.md CHANGED
@@ -1,7 +1,6 @@
1
1
  # parse-comcigan
2
2
 
3
3
  컴시간을 파싱하는 라이브러리입니다.
4
- 안드로이드 컴시간알리미 앱에서 파싱합니다.
5
4
  아직 학생 시간표밖에 지원하지 않습니다.
6
5
 
7
6
  ## 경고
@@ -13,136 +12,125 @@
13
12
 
14
13
  ```npm install parse-comcigan```
15
14
 
16
- ## 개발
15
+ ## 사용법
17
16
 
18
- ### Comcigan
17
+ ## 1. 학교 검색하기
19
18
 
20
- Comcigan 클래스의 인스턴스를 생성하여 사용합니다.
21
- 인스턴스를 생성할 때 옵션을 지정할 수 있습니다.
19
+ 학교를 검색하려면 먼저 `Comcigan` 클래스를 가져오신 후, `search` 메서드를 호출하시면 됩니다.
22
20
 
23
- |옵션|타입|기본값|설명|
24
- |------|------|------|-----------|
25
- |cacheMs|number|0|캐시될 시간(밀리초)입니다. 0일때 캐시를 비활성화합니다.|
26
- |doNotThrow|boolean|true|[Axios](https://axios-http.com/)에서 validateStatus를 항상 true로 반환할 지에 대한 여부입니다.|
27
- |debug|(msg: string) => any|undefined|디버그 메시지를 처리하는 콜백입니다. 이 콜백은 주로 컴시간과 통신할 때 호출됩니다.|
28
- |appVersion|string|2.11|컴시간알리미 안드로이드 앱의 버전입니다.|
21
+ 반환:
22
+ |이름|타입|설명|
23
+ |-|-|-|
24
+ |code|number|학교 코드|
25
+ |region|string|지역|
26
+ |name|string|이름|
27
+ 의 배열
28
+
29
+ ### 예시 코드
29
30
 
30
31
  ```typescript
32
+ // Comcigan 가져오기
31
33
  import Comcigan from 'parse-comcigan';
32
34
 
33
- const comci = new Comcigan({
34
- "cacheMs": 10000, // 10초동안 캐시됩니다.
35
- "doNotThrow": false, // false일때, status가 4 또는 5로 시작하면 throw 됩니다.
36
- "debug": (msg) => console.log(msg) // 모듈에서 디버그 메시지를 보내면 콘솔에 출력합니다.
37
- });
38
- ```
35
+ // 학교 검색
36
+ const schools = await Comcigan.search("서울");
39
37
 
40
- ---
38
+ for (const school of schools) {
39
+ console.log();
40
+ console.log(`코드: ${school.code}`);
41
+ console.log(`이름: ${school.name}`);
42
+ console.log(`지역: ${school.region}`);
43
+ }
44
+ ```
41
45
 
42
- ### SearchSchool
46
+ ## 2. 컴시간 인스턴스 생성하기
43
47
 
44
- 학교를 검색합니다.
45
- 마지막 "없으면 추가 검색 하세요." 문구는 자동으로 빠져서 나옵니다.
46
- 당연하지만 컴시간을 사용하는 학교만 검색됩니다.
48
+ 컴시간 인스턴스를 생성해 학교의 여러 정보를 가져올 수 있습니다.
49
+ `new Comcigan(code)`로 컴시간 인스턴스를 생성할 수 있습니다.
47
50
 
48
- |파라메터|타입|필수|설명|
49
- |------|------|------|-----------|
50
- |query|string|Yes|검색어|
51
+ ### 예시 코드
51
52
 
52
53
  ```typescript
53
- comci.SearchSchool("서울").then(data => {
54
- console.log(data);
55
- });
56
- ```
57
-
58
- 다음을 Promise 형태로 리턴합니다.
54
+ import Comcigan from 'parse-comcigan';
55
+ import readline from 'readline';
59
56
 
60
- |키|타입|설명|
61
- |-----|----|-----|
62
- |region|string|학교의 지역|
63
- |name|string|학교 이름|
64
- |code|number|학교 코드|
57
+ const rl = readline.createInterface({
58
+ "input": process.stdin,
59
+ "output": process.stdout
60
+ });
65
61
 
66
- ---
62
+ (async () => {
63
+ // 검색어 입력
64
+ const answer = await new Promise<string>(r => rl.question("학교 이름을 입력해주세요: ", r));
65
+ rl.close();
66
+
67
+ // 학교 검색하기
68
+ const school = (await Comcigan.search(answer))[0];
69
+
70
+ console.log(`검색된 학교:`);
71
+ console.log(`- 이름: ${school.name}`);
72
+ console.log(`- 지역: ${school.region}`);
73
+ console.log();
74
+
75
+ // 컴시간 인스턴스 생성
76
+ const comci = new Comcigan(school.code);
77
+
78
+ // 시간표 조회
79
+ console.log(await comci.timetable({
80
+ "grade": 1,
81
+ "classNum": 6
82
+ }));
83
+ })();
84
+ ```
67
85
 
68
- ### GetTimetable
86
+ ## 3. 시간표 가져오기
69
87
 
70
- 시간표를 가져옵니다.
88
+ 위에서 생성한 컴시간 인스턴스로 학교의 시간표를 조회할 수 있습니다.
71
89
 
72
- |파라메터|타입|필수|설명|
73
- |------|------|------|-----------|
74
- |options|[GetTimetableOptions](#gettimetableoptions)|Yes|옵션|
90
+ ### 예시 코드
75
91
 
76
92
  ```typescript
77
- comci.GetTimetable({
78
- "schoolCode": 96211,
79
- "criteria": "period",
80
- "grade": 3,
81
- "classN": 5,
82
- "without8th": false,
83
- "nextWeek": true // 다음 주 시간표 가져오기 (등록된 일자가 1개이면 이번 주 시간표를 가져옵니다.)
84
- }).then(data => {
85
- console.log(data.timetable[0][7]); // [요일][교시] 다음주 월요일 8교시
86
- });
87
- comci.GetTimetable({
88
- "schoolCode": 96211,
89
- "criteria": "weekday",
90
- "grade": 3,
91
- "classN": 5,
92
- "without8th": true
93
- }).then(data => {
94
- console.log(data.timetable[4][0]); // [교시][요일] 월요일 5교시
95
- });
96
- ```
97
-
98
- 다음을 Promise 형태로 리턴합니다.
93
+ import Comcigan from 'parse-comcigan';
99
94
 
100
- |키|타입|설명|
101
- |-----|----|-----|
102
- |latestVersion|string|컴시간 앱 최신버전|
103
- |changed|string|수정된 날짜 시간|
104
- |timetable|[ComciganTimetableObject](#comcigantimetableobject)[][]|시간표|
95
+ (async () => {
96
+ // 컴시간 인스턴스 생성
97
+ const comci = new Comcigan(24966);
105
98
 
106
- ---
99
+ // 시간표 조회
100
+ console.log(await comci.timetable({
101
+ "grade": 1,
102
+ "classNum": 6
103
+ }));
104
+ })();
105
+ ```
107
106
 
108
- ### GetClassList
107
+ ## 4. 학교 정보 가져오기
109
108
 
110
- 학급 리스트를 가져옵니다.
109
+ 위에서 생성한 컴시간 인스턴스로 학교의 여러 정보를 가져올 수 있습니다.
111
110
 
112
- |파라메터|타입|필수|설명|
113
- |------|------|------|-----------|
114
- |schoolCode|number|Yes|학교 코드|
111
+ ### 예시 코드
115
112
 
116
113
  ```typescript
117
- comci.GetClassList(96211).then(data => {
118
- console.log(data[0]); // 1-1
119
- });
120
- ```
114
+ import Comcigan from 'parse-comcigan';
121
115
 
122
- 리턴 타입: ```Promise<string>```
116
+ (async () => {
117
+ // 컴시간 인스턴스 생성
118
+ const comci = new Comcigan(24966);
123
119
 
124
- ## 타입
120
+ // 학교 정보 조회
121
+ console.log(await comci.schoolInfo());
122
+ })();
123
+ ```
125
124
 
126
- ### ComciganTimetableObject
125
+ ## 업데이트 로그
127
126
 
128
- |키|타입|설명|필수|
129
- |-----|----|-----|-----|
130
- |subject|string|과목|Yes|
131
- |changed|string|교사|Yes|
132
- |original|여기서 original만 빠진 오브젝트|원래 시간표|No|
127
+ ### 1.1.0
133
128
 
134
- ### GetTimetableOptions
129
+ - 타입 import 가능하게
135
130
 
136
- |파라메터|타입|필수|설명|
137
- |------|------|------|-----------|
138
- |schoolCode|number|Yes|학교 코드|
139
- |criteria|"weekday" or "period"|Yes|리스트 반환을 어떻게 할지 여부입니다.|
140
- |grade|number|Yes|학년|
141
- |classN|number|Yes|반|
142
- |without8th|boolean|No|8교시를 빼고 리턴할지에 대한 여부입니다.|
143
- |nextWeek|boolean|No|다음 주 시간표를 반환할지에 대한 여부입니다.|
131
+ ### 1.0.0
144
132
 
145
- ## 업데이트 로그
133
+ - 갈아엎기
146
134
 
147
135
  ### 0.3.0
148
136
 
package/bun.lock ADDED
@@ -0,0 +1,175 @@
1
+ {
2
+ "lockfileVersion": 1,
3
+ "configVersion": 0,
4
+ "workspaces": {
5
+ "": {
6
+ "name": "parse-comcigan",
7
+ "dependencies": {
8
+ "axios": "^1.17.0",
9
+ "dayjs": "^1.11.21",
10
+ "iconv-lite": "^0.6.3",
11
+ },
12
+ "devDependencies": {
13
+ "@types/node": "^22.19.20",
14
+ "nodemon": "^3.1.14",
15
+ "ts-node": "^10.9.2",
16
+ "typescript": "^5.9.3",
17
+ },
18
+ },
19
+ },
20
+ "packages": {
21
+ "@cspotcode/source-map-support": ["@cspotcode/source-map-support@0.8.1", "", { "dependencies": { "@jridgewell/trace-mapping": "0.3.9" } }, "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw=="],
22
+
23
+ "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="],
24
+
25
+ "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.0", "", {}, "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="],
26
+
27
+ "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.9", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" } }, "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ=="],
28
+
29
+ "@tsconfig/node10": ["@tsconfig/node10@1.0.11", "", {}, "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw=="],
30
+
31
+ "@tsconfig/node12": ["@tsconfig/node12@1.0.11", "", {}, "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag=="],
32
+
33
+ "@tsconfig/node14": ["@tsconfig/node14@1.0.3", "", {}, "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow=="],
34
+
35
+ "@tsconfig/node16": ["@tsconfig/node16@1.0.4", "", {}, "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA=="],
36
+
37
+ "@types/node": ["@types/node@22.19.20", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-6tELRwSDYWW9EdZhbeZmYGZ1/7Djkt+Ah3/ScEYT9cDord7UJzasR/4D3VONg9tQI5CDp+/CZC1AXj2pCFOvpw=="],
38
+
39
+ "acorn": ["acorn@8.14.1", "", { "bin": "bin/acorn" }, "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg=="],
40
+
41
+ "acorn-walk": ["acorn-walk@8.3.4", "", { "dependencies": { "acorn": "^8.11.0" } }, "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g=="],
42
+
43
+ "agent-base": ["agent-base@6.0.2", "", { "dependencies": { "debug": "4" } }, "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ=="],
44
+
45
+ "anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="],
46
+
47
+ "arg": ["arg@4.1.3", "", {}, "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="],
48
+
49
+ "asynckit": ["asynckit@0.4.0", "", {}, "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="],
50
+
51
+ "axios": ["axios@1.17.0", "", { "dependencies": { "follow-redirects": "^1.16.0", "form-data": "^4.0.5", "https-proxy-agent": "^5.0.1", "proxy-from-env": "^2.1.0" } }, "sha512-J8SwNxprqqpbfenehxWYXE7CW+wM1BB4w3+N+g+/Wx40xM4rsLrfPmHHxSWIxJLYDgSY/HqlFPIYb2/S3rxafw=="],
52
+
53
+ "balanced-match": ["balanced-match@4.0.4", "", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="],
54
+
55
+ "binary-extensions": ["binary-extensions@2.3.0", "", {}, "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="],
56
+
57
+ "brace-expansion": ["brace-expansion@5.0.6", "", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g=="],
58
+
59
+ "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="],
60
+
61
+ "call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="],
62
+
63
+ "chokidar": ["chokidar@3.6.0", "", { "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="],
64
+
65
+ "combined-stream": ["combined-stream@1.0.8", "", { "dependencies": { "delayed-stream": "~1.0.0" } }, "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="],
66
+
67
+ "create-require": ["create-require@1.1.1", "", {}, "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ=="],
68
+
69
+ "dayjs": ["dayjs@1.11.21", "", {}, "sha512-98IT+HOahAisibz/yjKbzuOBwYcjJ7BCLPzARyHiyEBmRz4fatF+KPJszEHXsGYjUG234aH/cOjW1wwTbKUZlA=="],
70
+
71
+ "debug": ["debug@4.4.0", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="],
72
+
73
+ "delayed-stream": ["delayed-stream@1.0.0", "", {}, "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="],
74
+
75
+ "diff": ["diff@4.0.2", "", {}, "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A=="],
76
+
77
+ "dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="],
78
+
79
+ "es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="],
80
+
81
+ "es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="],
82
+
83
+ "es-object-atoms": ["es-object-atoms@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="],
84
+
85
+ "es-set-tostringtag": ["es-set-tostringtag@2.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA=="],
86
+
87
+ "fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="],
88
+
89
+ "follow-redirects": ["follow-redirects@1.16.0", "", {}, "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw=="],
90
+
91
+ "form-data": ["form-data@4.0.5", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.2", "mime-types": "^2.1.12" } }, "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w=="],
92
+
93
+ "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="],
94
+
95
+ "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="],
96
+
97
+ "get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="],
98
+
99
+ "get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="],
100
+
101
+ "glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="],
102
+
103
+ "gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="],
104
+
105
+ "has-flag": ["has-flag@3.0.0", "", {}, "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="],
106
+
107
+ "has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="],
108
+
109
+ "has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="],
110
+
111
+ "hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="],
112
+
113
+ "https-proxy-agent": ["https-proxy-agent@5.0.1", "", { "dependencies": { "agent-base": "6", "debug": "4" } }, "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA=="],
114
+
115
+ "iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="],
116
+
117
+ "ignore-by-default": ["ignore-by-default@1.0.1", "", {}, "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA=="],
118
+
119
+ "is-binary-path": ["is-binary-path@2.1.0", "", { "dependencies": { "binary-extensions": "^2.0.0" } }, "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw=="],
120
+
121
+ "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="],
122
+
123
+ "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="],
124
+
125
+ "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="],
126
+
127
+ "make-error": ["make-error@1.3.6", "", {}, "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="],
128
+
129
+ "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="],
130
+
131
+ "mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="],
132
+
133
+ "mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="],
134
+
135
+ "minimatch": ["minimatch@10.2.5", "", { "dependencies": { "brace-expansion": "^5.0.5" } }, "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg=="],
136
+
137
+ "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
138
+
139
+ "nodemon": ["nodemon@3.1.14", "", { "dependencies": { "chokidar": "^3.5.2", "debug": "^4", "ignore-by-default": "^1.0.1", "minimatch": "^10.2.1", "pstree.remy": "^1.1.8", "semver": "^7.5.3", "simple-update-notifier": "^2.0.0", "supports-color": "^5.5.0", "touch": "^3.1.0", "undefsafe": "^2.0.5" }, "bin": { "nodemon": "bin/nodemon.js" } }, "sha512-jakjZi93UtB3jHMWsXL68FXSAosbLfY0In5gtKq3niLSkrWznrVBzXFNOEMJUfc9+Ke7SHWoAZsiMkNP3vq6Jw=="],
140
+
141
+ "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="],
142
+
143
+ "picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="],
144
+
145
+ "proxy-from-env": ["proxy-from-env@2.1.0", "", {}, "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA=="],
146
+
147
+ "pstree.remy": ["pstree.remy@1.1.8", "", {}, "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w=="],
148
+
149
+ "readdirp": ["readdirp@3.6.0", "", { "dependencies": { "picomatch": "^2.2.1" } }, "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="],
150
+
151
+ "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="],
152
+
153
+ "semver": ["semver@7.7.1", "", { "bin": "bin/semver.js" }, "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA=="],
154
+
155
+ "simple-update-notifier": ["simple-update-notifier@2.0.0", "", { "dependencies": { "semver": "^7.5.3" } }, "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w=="],
156
+
157
+ "supports-color": ["supports-color@5.5.0", "", { "dependencies": { "has-flag": "^3.0.0" } }, "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="],
158
+
159
+ "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="],
160
+
161
+ "touch": ["touch@3.1.1", "", { "bin": { "nodetouch": "bin/nodetouch.js" } }, "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA=="],
162
+
163
+ "ts-node": ["ts-node@10.9.2", "", { "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", "@tsconfig/node12": "^1.0.7", "@tsconfig/node14": "^1.0.0", "@tsconfig/node16": "^1.0.2", "acorn": "^8.4.1", "acorn-walk": "^8.1.1", "arg": "^4.1.0", "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "v8-compile-cache-lib": "^3.0.1", "yn": "3.1.1" }, "peerDependencies": { "@swc/core": ">=1.2.50", "@swc/wasm": ">=1.2.50", "@types/node": "*", "typescript": ">=2.7" }, "optionalPeers": ["@swc/core", "@swc/wasm"], "bin": { "ts-node": "dist/bin.js", "ts-node-cwd": "dist/bin-cwd.js", "ts-node-esm": "dist/bin-esm.js", "ts-node-script": "dist/bin-script.js", "ts-node-transpile-only": "dist/bin-transpile.js", "ts-script": "dist/bin-script-deprecated.js" } }, "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ=="],
164
+
165
+ "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="],
166
+
167
+ "undefsafe": ["undefsafe@2.0.5", "", {}, "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA=="],
168
+
169
+ "undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="],
170
+
171
+ "v8-compile-cache-lib": ["v8-compile-cache-lib@3.0.1", "", {}, "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg=="],
172
+
173
+ "yn": ["yn@3.1.1", "", {}, "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q=="],
174
+ }
175
+ }
@@ -0,0 +1,43 @@
1
+ import { ComciganTimetable } from "./types/index.js";
2
+ export default class Comcigan {
3
+ code: number;
4
+ constructor(code: number);
5
+ private _data;
6
+ /**
7
+ * 학교를 검색합니다.
8
+ *
9
+ * @param query 검색어
10
+ * @returns 검색 결과
11
+ */
12
+ static search(query: string): Promise<{
13
+ code: number;
14
+ region: string;
15
+ name: string;
16
+ }[]>;
17
+ private _getdata;
18
+ /**
19
+ * 학교의 정보를 가져옵니다.
20
+ *
21
+ * @returns 학교의 정보
22
+ */
23
+ schoolInfo(): Promise<{
24
+ changedAt: Date;
25
+ classes: number[];
26
+ times: {
27
+ number: number;
28
+ start: `${number}:${number}`;
29
+ }[];
30
+ code: number;
31
+ }>;
32
+ /**
33
+ * 시간표를 조회합니다.
34
+ *
35
+ * @param options 시간표 옵션
36
+ * @returns 시간표
37
+ */
38
+ timetable(options: {
39
+ "grade": number;
40
+ "classNum": number;
41
+ "week"?: number;
42
+ }): Promise<ComciganTimetable>;
43
+ }
package/dist/class.js ADDED
@@ -0,0 +1,140 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import ComciganError from "./error.js";
11
+ import axios from "axios";
12
+ import iconv from "iconv-lite";
13
+ import dayjs from "dayjs";
14
+ axios.defaults.validateStatus = () => true;
15
+ function splitData(dat) {
16
+ const d = String(dat).match(/\d{1,3}(?=(\d{3})+(?!\d))|\d{1,3}$/g);
17
+ if (!d)
18
+ return -1;
19
+ return d.reverse().map(Number);
20
+ }
21
+ export default class Comcigan {
22
+ constructor(code) {
23
+ this.code = code;
24
+ this._data = [];
25
+ }
26
+ /**
27
+ * 학교를 검색합니다.
28
+ *
29
+ * @param query 검색어
30
+ * @returns 검색 결과
31
+ */
32
+ static search(query) {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ const euckr = Array.from(iconv.encode(query, "euc-kr"))
35
+ .map(byte => '%' + byte.toString(16).toUpperCase().padStart(2, '0'))
36
+ .join('');
37
+ const r = yield axios.get("http://comci.net:4082/36179?17384l" + euckr);
38
+ const obj = JSON.parse(r.data.substring(0, r.data.lastIndexOf("}") + 1));
39
+ return obj.학교검색
40
+ .filter(v => v[3] !== 0)
41
+ .map(v => ({
42
+ "code": v[3],
43
+ "region": v[1],
44
+ "name": v[2]
45
+ }));
46
+ });
47
+ }
48
+ _getdata(index) {
49
+ return __awaiter(this, void 0, void 0, function* () {
50
+ const idx = index !== null && index !== void 0 ? index : 1;
51
+ if (this._data[idx])
52
+ return this._data[idx];
53
+ const route = btoa(`73629_${this.code}_0_${idx}`);
54
+ const r = yield axios.get(`http://comci.net:4082/36179?${route}`);
55
+ if (r.data.startsWith("{}"))
56
+ throw new ComciganError(`학교 정보를 가져오는데 실패했어요. 학교 코드가 올바른지 확인해주세요.`);
57
+ const obj = JSON.parse(r.data.substring(0, r.data.lastIndexOf("}") + 1));
58
+ this._data[idx] = obj;
59
+ });
60
+ }
61
+ /**
62
+ * 학교의 정보를 가져옵니다.
63
+ *
64
+ * @returns 학교의 정보
65
+ */
66
+ schoolInfo() {
67
+ return __awaiter(this, void 0, void 0, function* () {
68
+ yield this._getdata();
69
+ const data = this._data[1];
70
+ return {
71
+ "changedAt": dayjs(data.자료244, "YYYY-MM-DD HH:mm:ss").toDate(),
72
+ "classes": data.학급수.slice(1),
73
+ "times": data.일과시간.map(v => ({
74
+ "number": Number(v.slice(0, 1)),
75
+ "start": v.slice(2, 7),
76
+ })),
77
+ "code": this.code
78
+ };
79
+ });
80
+ }
81
+ /**
82
+ * 시간표를 조회합니다.
83
+ *
84
+ * @param options 시간표 옵션
85
+ * @returns 시간표
86
+ */
87
+ timetable(options) {
88
+ return __awaiter(this, void 0, void 0, function* () {
89
+ var _a, _b, _c, _d;
90
+ const { grade, classNum, week } = options;
91
+ if (!grade || !classNum)
92
+ throw new ComciganError("학년 (grade), 반 (classNum)을 제공해주세요.");
93
+ yield this._getdata(week);
94
+ const data = this._data[week !== null && week !== void 0 ? week : 1];
95
+ const toReturn = [];
96
+ // 자료481: 현재 데이터
97
+ // 자료147: 원본 데이터
98
+ // 자료446: 선생님
99
+ // 자료492: 과목
100
+ for (let day = 1; day <= 5; day++) {
101
+ const dayItems = [];
102
+ for (let time = 1; time <= 8; time++) {
103
+ const now = splitData(data.자료481[grade][classNum][day][time]);
104
+ if (now === -1)
105
+ continue;
106
+ const subject = data.자료492[now[1]];
107
+ const teacher = data.자료446[now[0]];
108
+ const classRoom = data.자료245[grade][classNum][day][time];
109
+ const classRoomAvailable = classRoom !== undefined && classRoom !== "";
110
+ const origin = splitData((_d = (_c = (_b = (_a = data.자료147) === null || _a === void 0 ? void 0 : _a[grade]) === null || _b === void 0 ? void 0 : _b[classNum]) === null || _c === void 0 ? void 0 : _c[day]) === null || _d === void 0 ? void 0 : _d[time]);
111
+ if (origin !== -1) {
112
+ const newSubject = data.자료492[origin[1]];
113
+ const newTeacher = data.자료446[origin[0]];
114
+ dayItems.push({
115
+ subject,
116
+ teacher,
117
+ "classRoom": classRoomAvailable ? classRoom.split("_")[1] : undefined,
118
+ "original": newSubject === subject && newTeacher === teacher ? undefined : {
119
+ "subject": newSubject,
120
+ "teacher": newTeacher
121
+ }
122
+ });
123
+ continue;
124
+ }
125
+ dayItems.push({
126
+ subject,
127
+ teacher,
128
+ "classRoom": classRoomAvailable ? classRoom : undefined
129
+ });
130
+ }
131
+ toReturn[day - 1] = {
132
+ "total": dayItems.length,
133
+ "items": dayItems
134
+ };
135
+ }
136
+ return toReturn;
137
+ });
138
+ }
139
+ }
140
+ //# sourceMappingURL=class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"class.js","sourceRoot":"","sources":["../src/class.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export default class ComciganError extends Error {
2
+ message: string;
3
+ constructor(message: string);
4
+ }
package/dist/error.js ADDED
@@ -0,0 +1,7 @@
1
+ export default class ComciganError extends Error {
2
+ constructor(message) {
3
+ super(message);
4
+ this.message = message;
5
+ }
6
+ }
7
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,KAAK;IAC5C,YACW,OAAe;QACtB,KAAK,CAAC,OAAO,CAAC,CAAC;QADR,YAAO,GAAP,OAAO,CAAQ;IACN,CAAC;CAGxB"}