made CacheCOntroller() static
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Jannik 2020-02-16 17:17:39 +01:00
parent f20279a4b4
commit be95af43c2
Signed by: Seil0
GPG Key ID: E8459F3723C52C24
1 changed files with 100 additions and 128 deletions

View File

@ -44,14 +44,11 @@ import kotlin.concurrent.scheduleAtFixedRate
class CacheController {
private val logger: Logger = LoggerFactory.getLogger(CacheController::class.java)
init {
initUpdates()
scheduledUpdates()
}
// cache objects
companion object{
private val logger: Logger = LoggerFactory.getLogger(CacheController::class.java)
@ -77,18 +74,13 @@ class CacheController {
val courseLink = courseList.courses.stream().filter { x -> x.courseName == courseName }.findFirst().orElse(null).courseLink
val timetableLink = courseLink.replace("week=0","week=$weekIndex")
val jobTimetable = GlobalScope.async {
val jobTimetable = async {
timetable = TimetableParser().getTimeTable(timetableLink)
weekNumberYear = TimetableParser().getWeekNumberYear(timetableLink)
}
jobTimetable.await()
timetableList.add(
TimetableCourseWeek(TimetableCourseMeta(currentTime, courseName, weekIndex, weekNumberYear, timetableLink),
timetable
)
)
timetableList.add(TimetableCourseWeek(TimetableCourseMeta(currentTime, courseName, weekIndex, weekNumberYear, timetableLink), timetable))
logger.info("added new timetable for $courseName, week $weekIndex")
}
@ -133,7 +125,8 @@ class CacheController {
return lessonList
}
}
// private cache functions
/**
* this function updates the courseList
@ -141,9 +134,7 @@ class CacheController {
*/
private fun asyncUpdateCourseList() = GlobalScope.launch {
CourseListParser().getCourseLinks(StartupController.courseListURL)?.let {
courseList = CoursesList(
CoursesMeta(System.currentTimeMillis() / 1000, it.size), it
)
courseList = CoursesList(CoursesMeta(System.currentTimeMillis() / 1000, it.size), it)
}
logger.info("Updated courses successful at ${Date(courseList.meta.updateTime * 1000)}")
@ -159,9 +150,7 @@ class CacheController {
// only update if we get valid data
if (mensaCurrentWeek != null && mensaNextWeek != null) {
mensaMenu = MensaMenu(
MensaMeta(System.currentTimeMillis() / 1000, StartupController.mensaName), mensaCurrentWeek, mensaNextWeek
)
mensaMenu = MensaMenu(MensaMeta(System.currentTimeMillis() / 1000, StartupController.mensaName), mensaCurrentWeek, mensaNextWeek)
}
logger.info("Updated mensamenu successful at ${Date(mensaMenu.meta.updateTime * 1000)}")
@ -215,29 +204,11 @@ class CacheController {
*/
private fun initUpdates() = runBlocking {
// get all course links on startup, make sure there are course links
val jobCourseUpdate = GlobalScope.async {
CourseListParser().getCourseLinks(StartupController.courseListURL)?.let {
courseList = CoursesList(
CoursesMeta(System.currentTimeMillis() / 1000, it.size), it
)
}
}
val jobCourseUpdate = asyncUpdateCourseList()
val jobMensa = asyncUpdateMensa()
// get the current and next weeks mensa menu
val jobMensa = GlobalScope.async{
val mensaCurrentWeek = MensaParser().getMensaMenu(StartupController.mensaMenuURL)
val mensaNextWeek = MensaParser().getMensaMenu(MensaParser().getMenuLinkNextWeek(StartupController.mensaMenuURL))
// only update if we get valid data
if (mensaCurrentWeek != null && mensaNextWeek != null) {
mensaMenu = MensaMenu(
MensaMeta(System.currentTimeMillis() / 1000, StartupController.mensaName), mensaCurrentWeek, mensaNextWeek
)
}
}
jobCourseUpdate.await()
jobMensa.await()
jobCourseUpdate.join()
jobMensa.join()
logger.info("Initial updates successful")
}
@ -276,3 +247,4 @@ class CacheController {
}
}
}