fix:#41 added error if html request isn't 200

This commit is contained in:
Elmar Kresse
2024-06-24 10:23:04 +02:00
parent 9f3d2294dd
commit 2ff37ea441
6 changed files with 125 additions and 32 deletions

View File

@@ -50,25 +50,51 @@ func ClearEmptySeminarGroups(seminarGroup model.SeminarGroup) model.SeminarGroup
return newSeminarGroup
}
func GetSeminarGroupEventsFromHTML(seminarGroupLabel string) model.SeminarGroup {
var seminarGroup model.SeminarGroup
func fetchHTMLFromURL(semester, seminarGroupLabel string) (string, error) {
url := "https://stundenplan.htwk-leipzig.de/" + semester + "/Berichte/Text-Listen;Studenten-Sets;name;" + seminarGroupLabel + "?template=sws_semgrp&weeks=1-65"
result, err := fetch.GetHTML(url)
if err != nil {
slog.Error("Error occurred while fetching the HTML document:", "error", err)
return "", err
}
return result, nil
}
if (time.Now().Month() >= 3) && (time.Now().Month() <= 10) {
ssUrl := "https://stundenplan.htwk-leipzig.de/" + string("ss") + "/Berichte/Text-Listen;Studenten-Sets;name;" + seminarGroupLabel + "?template=sws_semgrp&weeks=1-65"
result, getError := fetch.GetHTML(ssUrl)
if getError == nil {
seminarGroup = parseSeminarGroup(result)
func GetSeminarGroupEventsFromHTML(seminarGroupLabel string) (model.SeminarGroup, error) {
var seminarGroup [2]model.SeminarGroup
var result string
var errSS error
var errWS error
currentMonth := time.Now().Month()
if currentMonth >= 3 && currentMonth <= 10 {
result, errSS = fetchHTMLFromURL("ss", seminarGroupLabel)
if errSS == nil {
seminarGroup[0] = parseSeminarGroup(result)
}
}
if currentMonth >= 9 || currentMonth <= 4 {
result, errWS = fetchHTMLFromURL("ws", seminarGroupLabel)
if errWS == nil {
seminarGroup[1] = parseSeminarGroup(result)
}
}
if (time.Now().Month() >= 9) || (time.Now().Month() <= 4) {
wsUrl := "https://stundenplan.htwk-leipzig.de/" + string("ws") + "/Berichte/Text-Listen;Studenten-Sets;name;" + seminarGroupLabel + "?template=sws_semgrp&weeks=1-65"
result, getError := fetch.GetHTML(wsUrl)
if getError == nil {
seminarGroup = parseSeminarGroup(result)
if errSS != nil {
if errWS != nil {
return model.SeminarGroup{}, errWS
} else {
return seminarGroup[1], nil
}
} else {
if errWS != nil {
return seminarGroup[0], nil
} else {
seminarGroup[0].Events = append(seminarGroup[0].Events, seminarGroup[1].Events...)
return seminarGroup[0], nil
}
}
return seminarGroup
}
func SplitEventType(events []model.Event) ([]model.Event, error) {