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