🚧 Add merger for free games from the Epic games store
[rhynodge.git] / src / main / kotlin / net / pterodactylus / rhynodge / filters / webpages / epicgames / EpicGamesMerger.kt
diff --git a/src/main/kotlin/net/pterodactylus/rhynodge/filters/webpages/epicgames/EpicGamesMerger.kt b/src/main/kotlin/net/pterodactylus/rhynodge/filters/webpages/epicgames/EpicGamesMerger.kt
new file mode 100644 (file)
index 0000000..80ab923
--- /dev/null
@@ -0,0 +1,18 @@
+package net.pterodactylus.rhynodge.filters.webpages.epicgames
+
+import net.pterodactylus.rhynodge.Merger
+import net.pterodactylus.rhynodge.State
+
+class EpicGamesMerger : Merger {
+
+       override fun mergeStates(previousState: State, currentState: State): State {
+               previousState as? FreeGamesState ?: throw IllegalArgumentException("previousState is not a FreeGamesState")
+               currentState as? FreeGamesState ?: throw IllegalArgumentException("currentState is not a FreeGamesState")
+
+               val oldGames = previousState.games
+               val newGames = currentState.games
+
+               return FreeGamesState(newGames, (newGames - oldGames).isNotEmpty())
+       }
+
+}