feat:#57 fixed bug

This commit is contained in:
Elmar Kresse
2024-10-07 20:50:00 +02:00
parent 8d0657acec
commit 8e9976e607
7 changed files with 717 additions and 17 deletions

View File

@ -98,8 +98,13 @@ func parseSeminarGroup(result string) model.SeminarGroup {
}
table := findFirstTable(doc)
eventTables := getEventTables(doc)
allDayLabels := getAllDayLabels(doc)
eventTables := getEventTables(doc, allDayLabels)
if table == nil {
slog.Error("Failed to find first table")
return model.SeminarGroup{}
}
course := findFirstSpanWithClass(table, "header-2-0-1").FirstChild.Data
semesterString := findFirstSpanWithClass(table, "header-0-2-0").FirstChild.Data
@ -113,7 +118,7 @@ func parseSeminarGroup(result string) model.SeminarGroup {
}
}
eventsWithCombinedWeeks := toEvents(eventTables, allDayLabels, course)
eventsWithCombinedWeeks := toEvents(eventTables, course)
splitEventsByWeekVal := splitEventsByWeek(eventsWithCombinedWeeks)
events := splitEventsBySingleWeek(splitEventsByWeekVal)
events = convertWeeksToDates(events, semester, year)
@ -210,18 +215,18 @@ func extractSemesterAndYear(semesterString string) (string, string) {
return semesterShortcut, year
}
func toEvents(tables [][]*html.Node, days []string, course string) []model.Event {
func toEvents(tables map[string][]*html.Node, course string) []model.Event {
var events []model.Event
for table := range tables {
for row := range tables[table] {
for day := range tables {
for row := range tables[day] {
tableData := findTableData(tables[table][row])
tableData := findTableData(tables[day][row])
if len(tableData) > 0 {
start, _ := types.ParseDateTime(createTimeFromHourAndMinuteString(getTextContent(tableData[1])))
end, _ := types.ParseDateTime(createTimeFromHourAndMinuteString(getTextContent(tableData[2])))
events = append(events, model.Event{
Day: days[table],
Day: day,
Week: getTextContent(tableData[0]),
Start: start,
End: end,