docs: update w/ changelog

This commit is contained in:
Starcea 2024-08-10 17:39:04 +09:00
commit a16de4b778
No known key found for this signature in database
GPG key ID: B7A77E32374911E1

View file

@ -1,4 +1,4 @@
# How to parse Comcigan - 2024/07/14 # How to parse Comcigan
> [!WARNING] > [!WARNING]
> 컴시간알리미 측에선 3rd party 앱을 허용하지 않기 때문에, 이 문서에서 설명할 방법은 언제든지 작동을 멈출 수 있습니다. 또한 이 문서는 오로지 학습 목적으로 작성되었으며, 이를 통해 발생하는 모든 문제에 대해 작성자는 책임지지 않습니다. > 컴시간알리미 측에선 3rd party 앱을 허용하지 않기 때문에, 이 문서에서 설명할 방법은 언제든지 작동을 멈출 수 있습니다. 또한 이 문서는 오로지 학습 목적으로 작성되었으며, 이를 통해 발생하는 모든 문제에 대해 작성자는 책임지지 않습니다.
@ -9,9 +9,7 @@
Base URL: `http://comci.net:4082` (protocol이 `http`인 것에 주의) Base URL: `http://comci.net:4082` (protocol이 `http`인 것에 주의)
User-Agent에 따라 요청을 거부하는 경우가 있으므로, User-Agent를 브라우저의 것과 동일하게 설정하는 것을 추천합니다. 컴시간알리미는 일정 주기마다 모든 route와 응답의 구조를 변형합니다. 따라서 `GET /st`을 요청해 응답을 `EUC-KR`로 decode한 뒤, 아래 테이블의 정규표현식을 사용해 route와 code를 추출해야 합니다.
컴시간알리미는 일정 주기마다 (24시간으로 추정) 모든 route와 응답의 구조를 변형합니다. 따라서 `GET /st`을 요청해 응답을 `EUC-KR`로 디코딩한 뒤, 아래 테이블의 정규표현식을 사용해 route와 code를 추출해야 합니다.
| Name | RegExp | | Name | RegExp |
| -------------- | ----------------------------------- | | -------------- | ----------------------------------- |
@ -35,7 +33,7 @@ User-Agent에 따라 요청을 거부하는 경우가 있으므로, User-Agent
{ {
"학교검색": [ "학교검색": [
{ {
12345, // 지역 코드 (확실하지 않음) 12345, // 알 수 없는 값 (comcigan.ts에선 지역 코드로 사용)
"서울", // 지역 이름 "서울", // 지역 이름
"ㅇㅇ중학교", // 학교 이름 "ㅇㅇ중학교", // 학교 이름
12345 // 학교 코드 12345 // 학교 코드
@ -101,3 +99,19 @@ $$ \text{{교시 코드}} \mod 10^{\text{{teachersLen}}} $$
3. 과목 코드는 다음과 같고, 응답의 `자료{subjectCode}`에서 index `과목 코드`의 값이 과목 이름입니다. 3. 과목 코드는 다음과 같고, 응답의 `자료{subjectCode}`에서 index `과목 코드`의 값이 과목 이름입니다.
$$ \left\lfloor \frac{\text{{교시 코드}}}{10^{\text{{teachersLen}} + 1}} \right\rfloor $$ $$ \left\lfloor \frac{\text{{교시 코드}}}{10^{\text{{teachersLen}} + 1}} \right\rfloor $$
# Changelog
## 2024-08-10
- User-Agent 관련 내용 삭제 (불필요한 정보)
- route 및 응답 주기 관련 내용 삭제 (불확실한 정보)
- 학교 검색 결과의 1번째 값이 지역 코드가 아닐 수 있다는 것을 명시
## 2024-07-16
- 교사 코드 및 과목 코드 계산 방법 변경 (string slice w/ type conversion -> modulo operation, floor division)
## 2024-07-14
- 문서 최초 작성