mirror of
https://gitlab.dit.htwk-leipzig.de/htwk-software/htwkalender.git
synced 2025-07-16 17:48:49 +02:00
52 lines
1.4 KiB
Go
52 lines
1.4 KiB
Go
package v2
|
|
|
|
import (
|
|
"github.com/pocketbase/pocketbase/tools/types"
|
|
"golang.org/x/net/html"
|
|
"htwkalender/model"
|
|
"htwkalender/service/date"
|
|
"htwkalender/service/functions"
|
|
"strings"
|
|
)
|
|
|
|
func toEvents(tables [][]*html.Node, days []string) []model.Event {
|
|
var events []model.Event
|
|
|
|
for table := range tables {
|
|
for row := range tables[table] {
|
|
|
|
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),
|
|
})
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
return events
|
|
}
|