feat: handle class changes
This commit is contained in:
parent
49bb47348e
commit
f04385b6ce
3 changed files with 15 additions and 5 deletions
|
|
@ -3,7 +3,6 @@ import DataManager from './data'
|
||||||
import School from './models/School'
|
import School from './models/School'
|
||||||
import type Timetable from './models/Timetable'
|
import type Timetable from './models/Timetable'
|
||||||
import { encodeBase64, encodeEUCKR } from './utils/encode'
|
import { encodeBase64, encodeEUCKR } from './utils/encode'
|
||||||
import { log10int } from './utils/math'
|
|
||||||
import { parseResponse } from './utils/parse'
|
import { parseResponse } from './utils/parse'
|
||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
|
|
||||||
|
|
@ -57,15 +56,20 @@ export default class Comcigan {
|
||||||
const teachersLen = Math.floor(Math.log10(teachers.length - 1)) + 1
|
const teachersLen = Math.floor(Math.log10(teachers.length - 1)) + 1
|
||||||
const subjects = data[`자료${subjectCode}`] as string[]
|
const subjects = data[`자료${subjectCode}`] as string[]
|
||||||
|
|
||||||
return (data[`자료${dayCode}`] as number[][][][]).slice(1).map((grade) =>
|
const original = data[`자료${originalCode}`] as number[][][][]
|
||||||
grade.slice(1).map((cls) =>
|
const day = data[`자료${dayCode}`] as number[][][][]
|
||||||
cls.slice(1).map((day) =>
|
|
||||||
day.slice(1).map((period) => {
|
return day.slice(1).map((grade, gIdx) =>
|
||||||
|
grade.slice(1).map((cls, cIdx) =>
|
||||||
|
cls.slice(1).map((day, dIdx) =>
|
||||||
|
day.slice(1).map((period, pIdx) => {
|
||||||
const p = period.toString()
|
const p = period.toString()
|
||||||
|
|
||||||
return {
|
return {
|
||||||
subject: subjects[Number(p.slice(0, p.length - teachersLen - 1))],
|
subject: subjects[Number(p.slice(0, p.length - teachersLen - 1))],
|
||||||
teacher: teachers[Number(p.slice(-teachersLen))],
|
teacher: teachers[Number(p.slice(-teachersLen))],
|
||||||
|
changed:
|
||||||
|
period !== original[gIdx + 1][cIdx + 1][dIdx + 1][pIdx + 1],
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ export const RegExes = {
|
||||||
SearchRoute: /(?<=\?)\d+(?=l)/,
|
SearchRoute: /(?<=\?)\d+(?=l)/,
|
||||||
TimetableRoute: /(?<=')\d+(?=_')/,
|
TimetableRoute: /(?<=')\d+(?=_')/,
|
||||||
TeacherCode: /(?<=성명=자료\.자료)\d+/,
|
TeacherCode: /(?<=성명=자료\.자료)\d+/,
|
||||||
|
OriginalCode: /(?<=원자료=Q자료\(자료.자료)\d+/,
|
||||||
DayCode: /(?<=일일자료=Q자료\(자료.자료)\d+/,
|
DayCode: /(?<=일일자료=Q자료\(자료.자료)\d+/,
|
||||||
SubjectCode: /(?<=자료.자료)\d+(?=\[sb\])/,
|
SubjectCode: /(?<=자료.자료)\d+(?=\[sb\])/,
|
||||||
WhiteSpace: /\0+$/,
|
WhiteSpace: /\0+$/,
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ interface Data {
|
||||||
timetableRoute: string
|
timetableRoute: string
|
||||||
|
|
||||||
teacherCode: string
|
teacherCode: string
|
||||||
|
originalCode: string
|
||||||
dayCode: string
|
dayCode: string
|
||||||
subjectCode: string
|
subjectCode: string
|
||||||
}
|
}
|
||||||
|
|
@ -37,6 +38,9 @@ export default class DataManager {
|
||||||
const teacher = RegExes.TeacherCode.exec(data)
|
const teacher = RegExes.TeacherCode.exec(data)
|
||||||
if (!teacher) throw new Error('Failed to fetch teacher code')
|
if (!teacher) throw new Error('Failed to fetch teacher code')
|
||||||
|
|
||||||
|
const original = RegExes.OriginalCode.exec(data)
|
||||||
|
if (!original) throw new Error('Failed to fetch original code')
|
||||||
|
|
||||||
const day = RegExes.DayCode.exec(data)
|
const day = RegExes.DayCode.exec(data)
|
||||||
if (!day) throw new Error('Failed to fetch day code')
|
if (!day) throw new Error('Failed to fetch day code')
|
||||||
|
|
||||||
|
|
@ -49,6 +53,7 @@ export default class DataManager {
|
||||||
searchRoute: search[0],
|
searchRoute: search[0],
|
||||||
timetableRoute: timetable[0],
|
timetableRoute: timetable[0],
|
||||||
teacherCode: teacher[0],
|
teacherCode: teacher[0],
|
||||||
|
originalCode: original[0],
|
||||||
dayCode: day[0],
|
dayCode: day[0],
|
||||||
subjectCode: subject[0],
|
subjectCode: subject[0],
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue