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 {
var events []model.Event
for table := range tables {
for row := range tables[table] {
for tableIndex, table := range tables {
day := days[tableIndex]
tableData := findTableData(tables[table][row])
if len(tableData) > 0 {
start, _ := types.ParseDateTime(date.CreateTimeFromHourAndMinuteString(getTextContent(tableData[1])))
end, _ := types.ParseDateTime(date.CreateTimeFromHourAndMinuteString(getTextContent(tableData[2])))
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),
})
}
}
for _, row := range table {
tableData := findTableData(row)
if len(tableData) == 0 {
continue
}
events = append(events, createEventsFromTableData(tableData, day)...)
}
}
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
}