From 49e9d98de4d1aca0cdb8ec7c440147ae000e8748 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20Florczak?= <84631301+florczaq@users.noreply.github.com> Date: Thu, 18 Sep 2025 21:07:34 +0200 Subject: [PATCH 1/2] Hard code hours --- .../timetable/TimetableCacheService.java | 32 +++++++++++++++++-- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/pkwmtt/timetable/TimetableCacheService.java b/src/main/java/org/pkwmtt/timetable/TimetableCacheService.java index c36307d..449e7ea 100644 --- a/src/main/java/org/pkwmtt/timetable/TimetableCacheService.java +++ b/src/main/java/org/pkwmtt/timetable/TimetableCacheService.java @@ -73,7 +73,10 @@ public TimetableDTO getGeneralGroupSchedule (String generalGroupName) public Map getGeneralGroupsMap () throws WebPageContentNotAvailableException { var url = mainUrl + "lista.html"; var html = fetchData(url); - String json = cache.get("generalGroupMap", () -> mapper.writeValueAsString(parser.parseGeneralGroups(html))); + String json = cache.get( + "generalGroupMap", + () -> mapper.writeValueAsString(parser.parseGeneralGroups(html)) + ); return getMappedValue( json, "generalGroupList", cache, new TypeReference<>() { @@ -88,6 +91,30 @@ public Map getGeneralGroupsMap () throws WebPageContentNotAvaila * @throws WebPageContentNotAvailableException if hour definition page can't be loaded */ public List getListOfHours () throws WebPageContentNotAvailableException { + + //Hard coded values for hours, caused by inconsistent timetable hours range + return List.of( + "7:30-8:15", + "8:15-9:00", + "9:15-10:00", + "10:00-10:45", + "11:00-11:45", + "11:45-12:30", + "12:45-13:30", + "13:30-14:15", + "14:30-15:15", + "15:15-16:00", + "16:15-17:00", + "17:00-17:45", + "18:00-18:45", + "18:45-19:30", + "19:45-20:30", + "20:30-21:15" + ); + } + + @SuppressWarnings("unused") + private List fetchListOfHours () { String url = mainUrl + "plany/o25.html"; String json = cache.get("hourList", () -> mapper.writeValueAsString(parser.parseHours(fetchData(url)))); @@ -97,9 +124,8 @@ public List getListOfHours () throws WebPageContentNotAvailableException ); //Delete useless spaces - result = result.stream().map(item -> item.replaceAll(" ", "")).toList(); + return result.stream().map(item -> item.replaceAll(" ", "")).toList(); - return result; } /** From abf16c92b65fbe5f76c51bd3c5143e13fc56e757 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20Florczak?= <84631301+florczaq@users.noreply.github.com> Date: Thu, 18 Sep 2025 21:07:34 +0200 Subject: [PATCH 2/2] Hard code hours --- .../timetable/TimetableCacheService.java | 32 +++++++++++++++++-- .../timetable/TimetableCacheServiceTest.java | 2 ++ 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/pkwmtt/timetable/TimetableCacheService.java b/src/main/java/org/pkwmtt/timetable/TimetableCacheService.java index c36307d..449e7ea 100644 --- a/src/main/java/org/pkwmtt/timetable/TimetableCacheService.java +++ b/src/main/java/org/pkwmtt/timetable/TimetableCacheService.java @@ -73,7 +73,10 @@ public TimetableDTO getGeneralGroupSchedule (String generalGroupName) public Map getGeneralGroupsMap () throws WebPageContentNotAvailableException { var url = mainUrl + "lista.html"; var html = fetchData(url); - String json = cache.get("generalGroupMap", () -> mapper.writeValueAsString(parser.parseGeneralGroups(html))); + String json = cache.get( + "generalGroupMap", + () -> mapper.writeValueAsString(parser.parseGeneralGroups(html)) + ); return getMappedValue( json, "generalGroupList", cache, new TypeReference<>() { @@ -88,6 +91,30 @@ public Map getGeneralGroupsMap () throws WebPageContentNotAvaila * @throws WebPageContentNotAvailableException if hour definition page can't be loaded */ public List getListOfHours () throws WebPageContentNotAvailableException { + + //Hard coded values for hours, caused by inconsistent timetable hours range + return List.of( + "7:30-8:15", + "8:15-9:00", + "9:15-10:00", + "10:00-10:45", + "11:00-11:45", + "11:45-12:30", + "12:45-13:30", + "13:30-14:15", + "14:30-15:15", + "15:15-16:00", + "16:15-17:00", + "17:00-17:45", + "18:00-18:45", + "18:45-19:30", + "19:45-20:30", + "20:30-21:15" + ); + } + + @SuppressWarnings("unused") + private List fetchListOfHours () { String url = mainUrl + "plany/o25.html"; String json = cache.get("hourList", () -> mapper.writeValueAsString(parser.parseHours(fetchData(url)))); @@ -97,9 +124,8 @@ public List getListOfHours () throws WebPageContentNotAvailableException ); //Delete useless spaces - result = result.stream().map(item -> item.replaceAll(" ", "")).toList(); + return result.stream().map(item -> item.replaceAll(" ", "")).toList(); - return result; } /** diff --git a/src/test/java/org/pkwmtt/timetable/TimetableCacheServiceTest.java b/src/test/java/org/pkwmtt/timetable/TimetableCacheServiceTest.java index bef3add..c4c80a3 100644 --- a/src/test/java/org/pkwmtt/timetable/TimetableCacheServiceTest.java +++ b/src/test/java/org/pkwmtt/timetable/TimetableCacheServiceTest.java @@ -2,6 +2,7 @@ import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.pkwmtt.ValuesForTest; import org.pkwmtt.cache.CacheInspector; @@ -39,6 +40,7 @@ public void initWireMock () { } @Test + @Disabled("hard coded values") public void shouldHourListBePresentInCache () { //given var key = "hourList";