Weekdays and null handling
This commit is contained in:
parent
6175a93bd7
commit
efbcc70038
14
bakalari.nim
14
bakalari.nim
|
@ -46,6 +46,12 @@ type
|
|||
const
|
||||
iso8601 = initTimeFormat("yyyy-MM-dd'T'HH:mm:sszzz")
|
||||
|
||||
let
|
||||
invalidHour = Hour(number: "-", beginTime: "--:--", endTime: "--:--")
|
||||
invalidRoom = Room(name: "---", abbrev: "---")
|
||||
invalidSubject = Subject(name: "---", abbrev: "---")
|
||||
invalidTeacher = Teacher(name: "---", abbrev: "---")
|
||||
|
||||
proc newBakalari*(website: Uri, username: string, password: string): Bakalari =
|
||||
new result
|
||||
result.website = website
|
||||
|
@ -159,10 +165,10 @@ proc timetable*(bakalari: Bakalari, permanent: bool): Timetable =
|
|||
var day: Day
|
||||
for lessonNode in dayNode{"Atoms"}:
|
||||
var lesson: Lesson
|
||||
lesson.hour = hours[lessonNode{"HourId"}.getInt]
|
||||
lesson.subject = subjects[lessonNode{"SubjectId"}.getStr]
|
||||
lesson.teacher = teachers[lessonNode{"TeacherId"}.getStr]
|
||||
lesson.room = rooms[lessonNode{"RoomId"}.getStr]
|
||||
lesson.hour = hours.getOrDefault(lessonNode{"HourId"}.getInt, invalidHour)
|
||||
lesson.room = rooms.getOrDefault(lessonNode{"RoomId"}.getStr, invalidRoom)
|
||||
lesson.subject = subjects.getOrDefault(lessonNode{"SubjectId"}.getStr, invalidSubject)
|
||||
lesson.teacher = teachers.getOrDefault(lessonNode{"TeacherId"}.getStr, invalidTeacher)
|
||||
day.lessons.add lesson
|
||||
day.dayOfWeek = dayNode{"DayOfWeek"}.getInt
|
||||
day.date = dayNode{"Date"}.getStr.parse(iso8601)
|
||||
|
|
11
bk.nim
11
bk.nim
|
@ -10,6 +10,15 @@ type
|
|||
|
||||
const
|
||||
defaultConfigFile = getConfigDir() / "bk.json"
|
||||
dayNames = [
|
||||
1: "Mon",
|
||||
2: "Tue",
|
||||
3: "Wed",
|
||||
4: "Thu",
|
||||
5: "Fri",
|
||||
6: "Sat",
|
||||
7: "Sun",
|
||||
]
|
||||
|
||||
proc loadConfig(configFile = defaultConfigFile): Config =
|
||||
defaultConfigFile.readFile.parseJson.to(Config)
|
||||
|
@ -46,7 +55,7 @@ proc timetable(
|
|||
configFile.saveConfig(config)
|
||||
let timetable = baka.timetable(bakalari, permanent)
|
||||
for day in timetable.days:
|
||||
stdout.writeLine day.date.format("yyyyMMdd")
|
||||
stdout.writeLine dayNames[day.dayOfWeek] & " " & day.date.format("yyyyMMdd")
|
||||
for lesson in day.lessons:
|
||||
var line = ""
|
||||
line &= lesson.hour.number
|
||||
|
|
Loading…
Reference in New Issue