import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
import java.time.LocalDateTime
+import java.time.ZoneId.of
+import java.time.ZonedDateTime
import java.time.format.DateTimeFormatter
/**
return wetterComState
}
- private fun parseDateTime(document: Document): LocalDateTime? {
+ private fun parseDateTime(document: Document): ZonedDateTime? {
val dateElement = document.select("#furtherDetails .portable-mb h3")
.single()?.text()?.split(",")?.get(1)?.trim() ?: return null
val timeElement = document.select(".weather-strip--detail .delta.palm-hide")
.first()?.text()?.split(" ")?.first() ?: return null
- return LocalDateTime.from(dateTimeFormatter.parse("%s %s".format(dateElement, timeElement)))
+ return LocalDateTime.from(dateTimeFormatter.parse("%s %s".format(dateElement, timeElement))).atZone(of("Europe/Berlin"))
}
- private fun parseHourStates(document: Document): List<WetterComState.HourState> {
+ private fun parseHourStates(document: Document): List<HourState> {
return document.select(".weather-strip--detail").mapIndexed { index, element -> parseHourState(index, element) }
}
- private fun parseHourState(index: Int, hourElement: Element): WetterComState.HourState {
- return WetterComState.HourState.atHour(index)
+ private fun parseHourState(index: Int, hourElement: Element): HourState {
+ return HourState.atHour(index)
.temperature(parseTemperature(hourElement))
.rainProbability(parseRainProbability(hourElement))
.rainAmount(parseRainAmount(hourElement))