parse-comcigan
Version:
컴시간 알리미에서 시간표를 가져오는 라이브러리입니다.
139 lines (138 loc) • 3.46 kB
TypeScript
export type GetTimetableOptions = {
/**
* 컴시간 학교 코드입니다.
*/
"schoolCode": number;
/**
* 구분을 어떻게 할지 여부입니다.
*
* - weekday로 설정하면 시간표[교시][요일]로 과목과 선생님을 불러옵니다.
* - period로 설정하면 시간표[요일][교시]로 과목과 선생님을 불러옵니다.
*/
"criteria": "weekday" | "period";
/**
* 학년입니다.
*/
"grade": number;
/**
* 반입니다.
*/
"classN": number;
/**
* 8교시를 빼고 리턴할지 여부입니다.
*/
"without8th"?: boolean;
};
export interface ComciganInitializeType {
/**
* 이 기간동안 컴시간과 통신한 데이터가 캐시됩니다.
*
* 기본값은 0ms이며, 0ms일때는 캐시를 하지 않습니다.
*/
cacheMs?: number;
/**
* axios에서 요청을 보내고 status가 오류 status일 때 throw할 지 여부입니다.
* 만약 false일 때 요청에 status가 오류 status면 그 타입에서 빈 값을 리턴합니다.
*
* 기본값은 false입니다.
*/
doNotThrow?: boolean;
/**
* 디버그 메시지를 파라메터로 받습니다.
*
* 기본값은 없습니다.
*/
debug?: (msg: string) => any;
/**
* 컴시간알리미의 앱 버전입니다.
*
* 기본값은 2.11입니다.
*/
appVersion?: string;
}
export type ComciganSearched = {
/**
* 학교의 지역입니다.
*/
region: string;
/**
* 학교의 이름입니다.
*/
name: string;
/**
* 학교의 코드입니다.
*/
code: number;
};
export type ComciganTimetableObject = {
/**
* 과목입니다.
*/
subject: string;
/**
* 교사 성명입니다.
*/
teacher: string;
/**
* 만약 변경되었을때 이 값이 주어집니다.
*/
original?: {
/**
* 과목입니다.
*/
subject: string;
/**
* 교사 성명입니다.
*/
teacher: string;
};
};
export type ComciganTimetable = {
/**
* 컴시간알리미 앱의 최신 버전입니다.
*/
latestVersion: string;
/**
* 수정일입니다.
*/
changed: string;
/**
* 시간표입니다.
*/
timetable: ComciganTimetableObject[][];
};
export default class Comcigan {
private _options;
private _cache;
private mSb;
private mTh;
private unusable;
private request;
private EUC_KR_encodeURI;
/**
* 파서를 초기화 합니다.
* @param options 파서의 옵션입니다.
*/
constructor(options?: ComciganInitializeType);
/**
* 학교를 검색합니다.
* 마지막 "없으면 추가 검색 하세요" 문구는 빠져서 나옵니다.
* @param query 검색어
* @returns 검색된 학교들
*/
SearchSchool(query: string): Promise<ComciganSearched[]>;
/**
* 시간표를 가져옵니다.
*
* @param schoolCode
* @param criteria
*/
GetTimetable(options: GetTimetableOptions): Promise<ComciganTimetable | undefined>;
/**
* 학급 목록을 가져옵니다.
*
* @param schoolCode 학교 코드입니다.
* @returns (학년)-(반) 문자열이 모인 배열
*/
GetClassList(schoolCode: number): Promise<string[]>;
}