fix:#41 refactored function

This commit is contained in:
Elmar Kresse
2024-06-24 15:34:24 +02:00
parent bfb05b6704
commit a65a57bec6

View File

@@ -28,40 +28,48 @@ import (
func toEvents(tables [][]*html.Node, days []string) []model.Event { func toEvents(tables [][]*html.Node, days []string) []model.Event {
var events []model.Event var events []model.Event
for table := range tables { for tableIndex, table := range tables {
for row := range tables[table] { day := days[tableIndex]
tableData := findTableData(tables[table][row]) for _, row := range table {
if len(tableData) > 0 { tableData := findTableData(row)
start, _ := types.ParseDateTime(date.CreateTimeFromHourAndMinuteString(getTextContent(tableData[1]))) if len(tableData) == 0 {
end, _ := types.ParseDateTime(date.CreateTimeFromHourAndMinuteString(getTextContent(tableData[2]))) continue
courses := getTextContent(tableData[7])
name := getTextContent(tableData[3])
if functions.OnlyWhitespace(name) {
name = "Sonderveranstaltung"
}
if len(courses) > 0 {
for _, course := range strings.Split(courses, " ") {
events = append(events, model.Event{
Day: days[table],
Week: getTextContent(tableData[0]),
Start: start,
End: end,
Name: name,
EventType: getTextContent(tableData[4]),
Notes: getTextContent(tableData[5]),
Prof: getTextContent(tableData[6]),
Rooms: getTextContent(tableData[8]),
BookedAt: getTextContent(tableData[10]),
Course: strings.TrimSpace(course),
})
}
}
} }
events = append(events, createEventsFromTableData(tableData, day)...)
} }
} }
return events return events
} }
func createEventsFromTableData(tableData []*html.Node, day string) []model.Event {
var events []model.Event
start, _ := types.ParseDateTime(date.CreateTimeFromHourAndMinuteString(getTextContent(tableData[1])))
end, _ := types.ParseDateTime(date.CreateTimeFromHourAndMinuteString(getTextContent(tableData[2])))
name := getTextContent(tableData[3])
if functions.OnlyWhitespace(name) {
name = "Sonderveranstaltung"
}
courses := getTextContent(tableData[7])
if len(courses) > 0 {
for _, course := range strings.Split(courses, " ") {
events = append(events, model.Event{
Day: day,
Week: getTextContent(tableData[0]),
Start: start,
End: end,
Name: name,
EventType: getTextContent(tableData[4]),
Notes: getTextContent(tableData[5]),
Prof: getTextContent(tableData[6]),
Rooms: getTextContent(tableData[8]),
BookedAt: getTextContent(tableData[10]),
Course: strings.TrimSpace(course),
})
}
}
return events
}