|
@ -19,7 +19,7 @@ type ( |
|
|
} |
|
|
} |
|
|
// Menu contains all info to menues in a mensa on one day
|
|
|
// Menu contains all info to menues in a mensa on one day
|
|
|
Menu struct { |
|
|
Menu struct { |
|
|
Day string `json:"day"` |
|
|
|
|
|
|
|
|
Day int `json:"day"` |
|
|
Mensa string `json:"mensa"` |
|
|
Mensa string `json:"mensa"` |
|
|
Meals []Meal `json:"meals"` |
|
|
Meals []Meal `json:"meals"` |
|
|
} |
|
|
} |
|
@ -30,11 +30,6 @@ var ( |
|
|
"Zentralmensa", |
|
|
"Zentralmensa", |
|
|
"Nordmensa", |
|
|
"Nordmensa", |
|
|
} |
|
|
} |
|
|
days = []string{ |
|
|
|
|
|
"heute", |
|
|
|
|
|
"morgen", |
|
|
|
|
|
"uebermorgen", |
|
|
|
|
|
} |
|
|
|
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
func main() { |
|
|
func main() { |
|
@ -44,7 +39,7 @@ func main() { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
for _, mensa := range mensen { |
|
|
for _, mensa := range mensen { |
|
|
for _, day := range days { |
|
|
|
|
|
|
|
|
for day := 1; day < 8; day = day + 1 { |
|
|
menu, err := operate(mensa, day) |
|
|
menu, err := operate(mensa, day) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
fmt.Println(err.Error()) |
|
|
fmt.Println(err.Error()) |
|
@ -57,7 +52,7 @@ func main() { |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
err = ioutil.WriteFile(fmt.Sprintf("%s/%s.%s.json", path, strings.ToLower(mensa), day), content, 0644) |
|
|
|
|
|
|
|
|
err = ioutil.WriteFile(fmt.Sprintf("%s/%s.%v.json", path, strings.ToLower(mensa), day), content, 0644) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
fmt.Println(err.Error()) |
|
|
fmt.Println(err.Error()) |
|
|
return |
|
|
return |
|
@ -74,8 +69,8 @@ func writeToFile(content []byte) error { |
|
|
return nil |
|
|
return nil |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
func operate(mensa, day string) (Menu, error) { |
|
|
|
|
|
meals, err := parseHTML(fmt.Sprintf("https://phpapp2.zvw.uni-goettingen.de/portlet_mensaplan/public/ajaxresponse/getgerichte?mensa=%s&tag=%s&preis=stu&vegetarisch=true&schweinefleisch=true&vegan=true&fisch=true&gefluegel=true&rind=true&wild=true&lamm=true&alkohol=true&knoblauch=true&sonstige_gerichte=true", mensa, day)) |
|
|
|
|
|
|
|
|
func operate(mensa string, day int) (Menu, error) { |
|
|
|
|
|
meals, err := parseHTML(fmt.Sprintf("http://www.studentenwerk-goettingen.de/speiseplan.html?no_cache=1&day=%vpush=0&selectmensa=%s", day, mensa)) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
return Menu{}, err |
|
|
return Menu{}, err |
|
|
} |
|
|
} |
|
@ -90,11 +85,10 @@ func parseHTML(url string) ([]Meal, error) { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
meals := []Meal{} |
|
|
meals := []Meal{} |
|
|
doc.Find("table tr").Each(func(i int, s *goquery.Selection) { |
|
|
|
|
|
|
|
|
doc.Find("table.speise-tblmain tbody tr").Each(func(i int, s *goquery.Selection) { |
|
|
meal := Meal{ |
|
|
meal := Meal{ |
|
|
Category: s.Find(".gericht_kategorie").Text(), |
|
|
|
|
|
Price: s.Find(".gericht_preis").Text(), |
|
|
|
|
|
Title: s.Find(".spalte_gericht").Text(), |
|
|
|
|
|
|
|
|
Category: s.Find(".ext_sits_preis").Text(), // yes, really preis
|
|
|
|
|
|
Title: s.Find(".ext_sits_essen").Text(), |
|
|
} |
|
|
} |
|
|
meals = append(meals, meal) |
|
|
meals = append(meals, meal) |
|
|
}) |
|
|
}) |
|
|