Various improvements #17
| @ -48,11 +48,11 @@ class CacheController { | ||||
|         scheduledUpdates() | ||||
|     } | ||||
|  | ||||
|     companion object{ | ||||
|     companion object { | ||||
|         private val logger: Logger = LoggerFactory.getLogger(CacheController::class.java) | ||||
|  | ||||
|         var courseList = CoursesList(CoursesMeta(), sortedMapOf()) | ||||
|         var mensaMenu = MensaMenu(MensaMeta(0,""), MensaWeek(), MensaWeek()) | ||||
|         var mensaMenu = MensaMenu(MensaMeta(0, ""), MensaWeek(), MensaWeek()) | ||||
|         var timetableList = HashMap<String, TimetableCourseWeek>() // this list contains all timetables | ||||
|  | ||||
|         /** | ||||
| @ -68,7 +68,7 @@ class CacheController { | ||||
|                 val currentTime = System.currentTimeMillis() / 1000 | ||||
|                 val timetableLink = "https://mosad.xyz" | ||||
|                 val weekNumberYear = 0 | ||||
|                 val instr = javaClass.getResourceAsStream("/html/Timetable_normal-week.html") | ||||
|                 val instr = CacheController::class.java.getResourceAsStream("/html/Timetable_normal-week.html") | ||||
|  | ||||
|                 val timetableParser = | ||||
|                     TimetableParser(htmlDoc = Jsoup.parse(instr, "UTF-8", "https://www.hs-offenburg.de/")) | ||||
| @ -151,7 +151,7 @@ class CacheController { | ||||
|  | ||||
|         /** | ||||
|          * this function updates the courseList | ||||
|          * during the update process the old data will be returned for a API request | ||||
|          * during the update process the old data will be returned for an API request | ||||
|          */ | ||||
|         private fun asyncUpdateCourseList() = GlobalScope.launch { | ||||
|             CourseListParser().getCourseLinks(StartupController.courseListURL)?.let { | ||||
| @ -167,7 +167,7 @@ class CacheController { | ||||
|  | ||||
|         /** | ||||
|          * this function updates the mensa menu list | ||||
|          * during the update process the old data will be returned for a API request | ||||
|          * during the update process the old data will be returned for an API request | ||||
|          */ | ||||
|         private fun asyncUpdateMensa() = GlobalScope.launch { | ||||
|             val mensaCurrentWeek = MensaParser().getMensaMenu(StartupController.mensaMenuURL) | ||||
| @ -183,7 +183,7 @@ class CacheController { | ||||
|  | ||||
|         /** | ||||
|          * this function updates all existing timetables | ||||
|          * during the update process the old data will be returned for a API request | ||||
|          * during the update process the old data will be returned for an API request | ||||
|          * a FixedThreadPool is used to make parallel requests for faster updates | ||||
|          */ | ||||
|         private fun asyncUpdateTimetables() = GlobalScope.launch { | ||||
|  | ||||
| @ -135,7 +135,8 @@ class StartupController { | ||||
|                 try { | ||||
|                     val timetableObject = JsonParser.parseString(bufferedReader.readLine()).asJsonObject | ||||
|                     val timetable = Gson().fromJson(timetableObject, TimetableCourseWeek().javaClass) | ||||
|                     CacheController.timetableList.put("${timetable.meta.courseName}-${timetable.meta.weekIndex}", timetable) | ||||
|                     CacheController.timetableList["${timetable.meta.courseName}-${timetable.meta.weekIndex}"] = | ||||
|                         timetable | ||||
|                 } catch (ex: Exception) { | ||||
|                     logger.error("error while reading cache", ex) | ||||
|                 } finally { | ||||
|  | ||||
| @ -62,7 +62,7 @@ class StatusController { | ||||
|         } | ||||
|  | ||||
|         fun updateTimetableRequests(courseName: String) { | ||||
|             timetableRequests[courseName] = timetableRequests.getOrPut(courseName) {0} + 1 | ||||
|             timetableRequests[courseName] = (timetableRequests[courseName] ?: 0) + 1 | ||||
|             totalRequests++ | ||||
|         } | ||||
|  | ||||
|  | ||||
| @ -72,7 +72,7 @@ class TimetableParser(timetableURL: String? = null, htmlDoc: Document? = null) { | ||||
|             var lessonIndexDay = 0 // the index of the lesson per timeslot | ||||
|  | ||||
|             // elements are now all lessons, including empty ones | ||||
|             row.select("td.lastcol, td[style]").forEach {element -> | ||||
|             row.select("td.lastcol, td[style]").forEach { element -> | ||||
|  | ||||
|                 // if there is a lecture with rowspan="2", we need to shift everything by one to the left. This is stupid and ugly there needs to bee an API | ||||
|                 if ((sDay > -1 && sRow > -1) && (sDay == day && ((sRow + 1) == rowIndex))) { | ||||
| @ -115,8 +115,7 @@ class TimetableParser(timetableURL: String? = null, htmlDoc: Document? = null) { | ||||
|  | ||||
|                 lessonIndexDay++ | ||||
|  | ||||
|                 if (element.hasClass("lastcol")) | ||||
|                 { | ||||
|                 if (element.hasClass("lastcol")) { | ||||
|                     day++ | ||||
|                     lessonIndexDay = 0 | ||||
|                 } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user