Better null checks

This commit is contained in:
Hannes Braun 2021-10-23 13:50:09 +02:00
parent ca8efdaa85
commit 5ba9dfc263
Signed by: hannesbraun
GPG Key ID: 7B6557E1DFD685BE
1 changed files with 16 additions and 28 deletions

View File

@ -42,11 +42,7 @@ class TimetableParser(timetableURL: String? = null, htmlDoc: Document? = null) {
val semaphore = Semaphore(3, 0)
}
private val htmlDoc: Document? =
htmlDoc
?: if (timetableURL == null) {
null
} else {
private val htmlDoc: Document? = htmlDoc ?: timetableURL?.let {
runBlocking {
try {
// Only allow sending a limited amount of requests at the same time
@ -66,13 +62,9 @@ class TimetableParser(timetableURL: String? = null, htmlDoc: Document? = null) {
* the timetable is organised per row not per column;
* Mon 1, Tue 1, Wed 1, Thur 1, Fri 1, Sat 1, Mon 2 and so on
*/
fun parseTimeTable(): TimetableWeek? {
if (htmlDoc == null) {
return null
}
fun parseTimeTable(): TimetableWeek? = htmlDoc?.let {
val timetableWeek = TimetableWeek()
val rows = htmlDoc.select("table.timetable").select("tr[scope=\"row\"]")
val rows = it.select("table.timetable").select("tr[scope=\"row\"]")
var sDay = -1
var sRow = -1
@ -141,12 +133,8 @@ class TimetableParser(timetableURL: String? = null, htmlDoc: Document? = null) {
/**
* parse the week number of the year for the timetable
*/
fun parseWeekNumberYear(): Int? {
if (htmlDoc == null) {
return null
}
return htmlDoc.select("h1.timetable-caption").text().substringAfter("- ")
fun parseWeekNumberYear(): Int? = htmlDoc?.let {
it.select("h1.timetable-caption").text().substringAfter("- ")
.substringBefore(".").replace(" ", "").toInt()
}