parse-comcigan
v0.3.0
Published
컴시간 알리미에서 시간표를 가져오는 라이브러리입니다.
Downloads
155
Readme
parse-comcigan
컴시간을 파싱하는 라이브러리입니다.
안드로이드 컴시간알리미 앱에서 파싱합니다.
아직 학생 시간표밖에 지원하지 않습니다.
경고
본 라이브러리는 비공식적으로 컴시간알리미의 데이터를 파싱합니다.
상업적으로 사용하다 문제가 발생할경우, 제작자는 책임을 지지 않습니다.
설치
npm install parse-comcigan
개발
Comcigan
Comcigan 클래스의 인스턴스를 생성하여 사용합니다.
인스턴스를 생성할 때 옵션을 지정할 수 있습니다.
|옵션|타입|기본값|설명| |------|------|------|-----------| |cacheMs|number|0|캐시될 시간(밀리초)입니다. 0일때 캐시를 비활성화합니다.| |doNotThrow|boolean|true|Axios에서 validateStatus를 항상 true로 반환할 지에 대한 여부입니다.| |debug|(msg: string) => any|undefined|디버그 메시지를 처리하는 콜백입니다. 이 콜백은 주로 컴시간과 통신할 때 호출됩니다.| |appVersion|string|2.11|컴시간알리미 안드로이드 앱의 버전입니다.|
import Comcigan from 'parse-comcigan';
const comci = new Comcigan({
"cacheMs": 10000, // 10초동안 캐시됩니다.
"doNotThrow": false, // false일때, status가 4 또는 5로 시작하면 throw 됩니다.
"debug": (msg) => console.log(msg) // 모듈에서 디버그 메시지를 보내면 콘솔에 출력합니다.
});SearchSchool
학교를 검색합니다.
마지막 "없으면 추가 검색 하세요." 문구는 자동으로 빠져서 나옵니다.
당연하지만 컴시간을 사용하는 학교만 검색됩니다.
|파라메터|타입|필수|설명| |------|------|------|-----------| |query|string|Yes|검색어|
comci.SearchSchool("서울").then(data => {
console.log(data);
});다음을 Promise 형태로 리턴합니다.
|키|타입|설명| |-----|----|-----| |region|string|학교의 지역| |name|string|학교 이름| |code|number|학교 코드|
GetTimetable
시간표를 가져옵니다.
|파라메터|타입|필수|설명| |------|------|------|-----------| |options|GetTimetableOptions|Yes|옵션|
comci.GetTimetable({
"schoolCode": 96211,
"criteria": "period",
"grade": 3,
"classN": 5,
"without8th": false,
"nextWeek": true // 다음 주 시간표 가져오기 (등록된 일자가 1개이면 이번 주 시간표를 가져옵니다.)
}).then(data => {
console.log(data.timetable[0][7]); // [요일][교시] 다음주 월요일 8교시
});
comci.GetTimetable({
"schoolCode": 96211,
"criteria": "weekday",
"grade": 3,
"classN": 5,
"without8th": true
}).then(data => {
console.log(data.timetable[4][0]); // [교시][요일] 월요일 5교시
});다음을 Promise 형태로 리턴합니다.
|키|타입|설명| |-----|----|-----| |latestVersion|string|컴시간 앱 최신버전| |changed|string|수정된 날짜 시간| |timetable|ComciganTimetableObject[][]|시간표|
GetClassList
학급 리스트를 가져옵니다.
|파라메터|타입|필수|설명| |------|------|------|-----------| |schoolCode|number|Yes|학교 코드|
comci.GetClassList(96211).then(data => {
console.log(data[0]); // 1-1
});리턴 타입: Promise<string>
타입
ComciganTimetableObject
|키|타입|설명|필수| |-----|----|-----|-----| |subject|string|과목|Yes| |changed|string|교사|Yes| |original|여기서 original만 빠진 오브젝트|원래 시간표|No|
GetTimetableOptions
|파라메터|타입|필수|설명| |------|------|------|-----------| |schoolCode|number|Yes|학교 코드| |criteria|"weekday" or "period"|Yes|리스트 반환을 어떻게 할지 여부입니다.| |grade|number|Yes|학년| |classN|number|Yes|반| |without8th|boolean|No|8교시를 빼고 리턴할지에 대한 여부입니다.| |nextWeek|boolean|No|다음 주 시간표를 반환할지에 대한 여부입니다.|
업데이트 로그
0.3.0
- 다음 주 시간표 보기
- 디버그 메시지 수정
0.2.0
- 버전 넘버링 수정
- 앱 버전 수정 기능 추가
- 시간표 버그 수정
0.0.6
- 모듈이 불러와지지 않던 버그 수정
0.0.5
- 문서의 많은 오류 수정
- 8교시 제외 추가
0.0.4
- 모듈이 불러와지지 않던 버그 수정
0.0.3
- undefined 참조 버그 수정
- 문서 잘못되어있던 버그 수정
0.0.2
- package.json 수정
0.0.1
- 첫번째 릴리즈
