58 lines
1.8 KiB
Kotlin
58 lines
1.8 KiB
Kotlin
|
|
import org.jsoup.Jsoup
|
|
|
|
class MensaParser {
|
|
fun getMensaMenu() {
|
|
val menuHTML = Jsoup.connect("https://www.swfr.de/de/essen-trinken/speiseplaene/mensa-offenburg/").get()
|
|
|
|
menuHTML.select("#speiseplan-tabs").select("div.tab-content").select("div.menu-tagesplan").forEachIndexed { index, element ->
|
|
var day = element.select("h3").text()
|
|
for (i in 0 .. (element.select("div.row h4").size - 1)) {
|
|
try {
|
|
var heading = element.select("div.row h4")[i].text()
|
|
var parts = ArrayList<String>(element.select("div.row").select("div.menu-info")[i].html().substringBefore("<span").replace("<br>", "|").split("|"))
|
|
var additives = element.select("div.row").select("div.menu-info")[i].select("span.show-with-allergenes").text()
|
|
|
|
mealList.add(Meal(day, heading, parts, additives))
|
|
} catch (e: Exception) {
|
|
// catch
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// TODO The following code can be removed
|
|
|
|
fun printMensaMenu(mealList: ArrayList<Meal>) {
|
|
for (meal in mealList) {
|
|
printMeal(meal)
|
|
}
|
|
println()
|
|
}
|
|
|
|
fun printDayMenu(mealList: ArrayList<Meal>, day: Int) {
|
|
var strDay: String = when(day) {
|
|
0 -> "Mon"
|
|
1 -> "Die"
|
|
2 -> "Mit"
|
|
3 -> "Don"
|
|
4 -> "Fre"
|
|
5 -> "Sam"
|
|
else -> "TODAY" //TODO
|
|
}
|
|
|
|
for (meal in mealList) {
|
|
if (meal.day.contains(strDay)) printMeal(meal)
|
|
}
|
|
}
|
|
|
|
fun printMeal(meal: Meal) {
|
|
println(meal.day)
|
|
println(meal.heading)
|
|
for (part in meal.parts) {
|
|
print(part)
|
|
}
|
|
println("\n" + meal.additives + "\n\n")
|
|
}
|
|
|
|
} |