small adjustments and bugfix; timeslot was always saved into the database longer than would be correct; for example, a course from 08:15 to 09:45 would have been saved as 08:15 to 11:45

This commit is contained in:
denizk0461
2023-04-10 21:03:02 +02:00
parent cab50b5f2d
commit d6eb7f5ce1
3 changed files with 4 additions and 20 deletions
@@ -14,7 +14,7 @@ object DummyData {
StudIPEvent(7, "Gesellschaft und Raum2", "Lossau, Mossig", "GW2 B1820", 4, 4, 2), StudIPEvent(7, "Gesellschaft und Raum2", "Lossau, Mossig", "GW2 B1820", 4, 4, 2),
) )
val timeslotStartMap: Map<String, Int> = mapOf( private val timeslotStartMap: Map<String, Int> = mapOf(
"6:00" to 0, "6:00" to 0,
"6:15" to 0, "6:15" to 0,
"8:00" to 1, "8:00" to 1,
@@ -31,7 +31,7 @@ object DummyData {
"18:15" to 6, "18:15" to 6,
) )
val timeslotEndMap: Map<String, Int> = mapOf( private val timeslotEndMap: Map<String, Int> = mapOf(
"8:00" to 0, "8:00" to 0,
"7:45" to 0, "7:45" to 0,
"10:00" to 1, "10:00" to 1,
@@ -9,7 +9,6 @@ class StudIPParser {
fun parse(html: String, insert: (events: List<StudIPEvent>) -> Unit) { fun parse(html: String, insert: (events: List<StudIPEvent>) -> Unit) {
var id = 0 var id = 0
val doc = Jsoup.parse(html) val doc = Jsoup.parse(html)
Log.d("HELLO2", "doc: $doc")
val newEvents = mutableListOf<StudIPEvent>() val newEvents = mutableListOf<StudIPEvent>()
val columns = arrayOf( val columns = arrayOf(
doc.getElementById("calendar_view_1_column_0"), doc.getElementById("calendar_view_1_column_0"),
@@ -18,16 +17,14 @@ class StudIPParser {
doc.getElementById("calendar_view_1_column_3"), doc.getElementById("calendar_view_1_column_3"),
doc.getElementById("calendar_view_1_column_4"), doc.getElementById("calendar_view_1_column_4"),
) )
Log.d("HELLO2", "days found: ${columns.size}, element 1: ${columns[0]}")
columns.forEachIndexed { index, element -> columns.forEachIndexed { index, element ->
element?.getElementsByClass("schedule_entry")?.forEachIndexed { entryIndex, entry -> element?.getElementsByClass("schedule_entry")?.forEachIndexed { entryIndex, entry ->
Log.d("HELLO2", "element - $entryIndex - found: $entry")
val entryHeader = entry.getElementsByTag("dt")[0].text() val entryHeader = entry.getElementsByTag("dt")[0].text()
val delimiter = entryHeader.lastIndexOf('(') val delimiter = entryHeader.lastIndexOf('(')
val parsedTitle = entryHeader.substring(0 until delimiter) val parsedTitle = entryHeader.substring(0 until delimiter)
val parsedLecturers = entryHeader.substring(delimiter + 1 until entryHeader.length - 1) val parsedLecturers = entryHeader.substring(delimiter + 1 until entryHeader.length - 1)
val entryInfos = entry.getElementsByTag("dd")[0].text().split(", ") val entryInfos = entry.getElementsByTag("dd")[0].text().split(", ", limit = 2)
val timeSlot = DummyData.parseTimeslot(entryInfos[0]) val timeSlot = DummyData.parseTimeslot(entryInfos[0])
val event = StudIPEvent( val event = StudIPEvent(
@@ -41,7 +38,6 @@ class StudIPParser {
) )
newEvents.add(event) newEvents.add(event)
id += 1 id += 1
Log.d("HELLO2", event.toString())
} }
} }
insert(newEvents) insert(newEvents)
@@ -16,22 +16,10 @@ data class StudIPEvent(
val timeslotEnd: Int, // 1 = 09:45 etc. val timeslotEnd: Int, // 1 = 09:45 etc.
) { ) {
// constructor(
// val title: String,
// val lecturer: String,
// val room: String,
// val day: Int,
// val
// ) : this(title, lecturer, room, day, 1, 1)
@Ignore private val timeSlotStartTimes: List<String> = listOf("06:15", "08:15", "10:15", "12:15", "14:15", "16:15", "18:15") @Ignore private val timeSlotStartTimes: List<String> = listOf("06:15", "08:15", "10:15", "12:15", "14:15", "16:15", "18:15")
@Ignore private val timeSlotEndTimes: List<String> = listOf("07:45", "09:45", "11:45", "13:45", "15:45", "17:45", "19:45") @Ignore private val timeSlotEndTimes: List<String> = listOf("07:45", "09:45", "11:45", "13:45", "15:45", "17:45", "19:45")
fun timeslot(): String { fun timeslot(): String = "${timeSlotStartTimes[timeslotStart]} ${timeSlotEndTimes[timeslotEnd]}"
Log.d("HELLO3", title)
Log.d("HELLO3", "s $timeslotStart st $timeslotEnd")
return "${timeSlotStartTimes[timeslotStart]} ${timeSlotEndTimes[timeslotEnd]}"
}
override fun equals(other: Any?): Boolean { override fun equals(other: Any?): Boolean {
if (this === other) return true if (this === other) return true