From 3fef0590ddbec31c0bb5756774a1f3440a4797be Mon Sep 17 00:00:00 2001 From: Starcea Date: Tue, 16 Jul 2024 23:24:00 +0900 Subject: [PATCH] refactor: use mathmatical method instead of number <=> string conversion --- .gitignore | 3 +++ docs/README.md | 8 ++++++-- src/client.ts | 4 ++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index f06235c..79939a7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ node_modules dist + +# PIIs included +tests diff --git a/docs/README.md b/docs/README.md index c0fb590..5382b25 100644 --- a/docs/README.md +++ b/docs/README.md @@ -94,6 +94,10 @@ User-Agent에 따라 요청을 거부하는 경우가 있으므로, User-Agent $$\lfloor \log_{10}(\text{{amount of teachers}}) \rfloor + 1$$ -2. 교시 코드에서 마지막 `teachersLen + 1`자리를 제외하면 교사 코드를 얻을 수 있고, 응답의 `자료{teacherCode}`에서 index `교사 코드`의 값이 교사 이름입니다. +2. 교사 코드는 다음과 같고, 응답의 `자료{teacherCode}`에서 index `교사 코드`의 값이 교사 이름입니다. -3. 교시 코드의 마지막 `teachersLen`자리는 과목 코드이고, 응답의 `자료{subjectCode}`에서 index `과목 코드`의 값이 과목 이름입니다. +$$ \text{{교시 코드}} \mod 10^{\text{{teachersLen}}} $$ + +3. 과목 코드는 다음과 같고, 응답의 `자료{subjectCode}`에서 index `과목 코드`의 값이 과목 이름입니다. + +$$ \left\lfloor \frac{\text{{교시 코드}}}{10^{\text{{teachersLen}} + 1}} \right\rfloor $$ diff --git a/src/client.ts b/src/client.ts index 2a1a537..b2944cb 100644 --- a/src/client.ts +++ b/src/client.ts @@ -62,10 +62,10 @@ export default class Comcigan { const getSubject = (code?: number) => code - ? subjects[Number(code.toString().slice(0, -teachersLen - 1))] + ? subjects[code / 10 ** (teachersLen + 1) | 0] : '없음' const getTeacher = (code?: number) => - code ? teachers[Number(code.toString().slice(-teachersLen))] : '없음' + code ? teachers[code % 10 ** teachersLen] : '없음' return mergeMap(now.slice(1), original.slice(1), (gNow, gOrigin) => mergeMap(gNow.slice(1), gOrigin.slice(1), (cNow, cOrigin) =>