From d9f97f1de5cbdfef3b732377f2dd2860d13cf23f Mon Sep 17 00:00:00 2001 From: grimsi <9295182+grimsi@users.noreply.github.com> Date: Fri, 13 Jun 2025 19:26:47 +0200 Subject: [PATCH] I hate Steam. Why is releaseDate a free-text field in the API? --- .../gameyfinplugins/steam/util/SteamDateSerializer.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/plugins/steam/src/main/kotlin/de/grimsi/gameyfinplugins/steam/util/SteamDateSerializer.kt b/plugins/steam/src/main/kotlin/de/grimsi/gameyfinplugins/steam/util/SteamDateSerializer.kt index 3fca1bc..05b6b5e 100644 --- a/plugins/steam/src/main/kotlin/de/grimsi/gameyfinplugins/steam/util/SteamDateSerializer.kt +++ b/plugins/steam/src/main/kotlin/de/grimsi/gameyfinplugins/steam/util/SteamDateSerializer.kt @@ -21,7 +21,8 @@ class SteamDateSerializer : KSerializer { val log: Logger = LoggerFactory.getLogger(SteamDateSerializer::class.java) const val COMING_SOON_TEXT = "Coming Soon" - val COMING_SOON_FALLBACK_DATE: LocalDate = LocalDate.parse("2999-12-31") + const val TO_BE_ANNOUNCED_TEXT = "To be announced" + val FALLBACK_DATE: LocalDate = LocalDate.parse("2999-12-31") val formatter: DateTimeFormatter = DateTimeFormatter.ofPattern("d MMM, yyyy", Locale.ENGLISH) } @@ -38,8 +39,8 @@ class SteamDateSerializer : KSerializer { } // Match "Coming Soon" and return a fallback date - if (dateString.equals(COMING_SOON_TEXT, true)) { - return COMING_SOON_FALLBACK_DATE.atStartOfDay().toInstant(ZoneOffset.UTC) + if (dateString.equals(COMING_SOON_TEXT, true) || dateString.equals(TO_BE_ANNOUNCED_TEXT, true)) { + return FALLBACK_DATE.atStartOfDay().toInstant(ZoneOffset.UTC) } // Match quarters like "Q1 2023", "Q2 2023", etc.