From 5f176bab0fad88014d9c12ed09ac338ec157794b Mon Sep 17 00:00:00 2001 From: eric <3024947@stud.hs-mannheim.de> Date: Tue, 12 Aug 2025 01:19:55 +0200 Subject: [PATCH] offset dynamisch gestalten --- .../Roullette/service/SpotifyAuthService.java | 48 ++++++++++--------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/src/main/java/eric/Roullette/service/SpotifyAuthService.java b/src/main/java/eric/Roullette/service/SpotifyAuthService.java index 10797cf..19753d9 100644 --- a/src/main/java/eric/Roullette/service/SpotifyAuthService.java +++ b/src/main/java/eric/Roullette/service/SpotifyAuthService.java @@ -81,51 +81,51 @@ public class SpotifyAuthService { public List getRecentTracks(String user) { System.out.println("Hole kürzlich gespielte Tracks für Benutzer: " + user); - int limit = 5; + int limit = 50; SpotifyApi userApi = userApis.get(user); if (userApi == null) { - System.out.println("Kein SpotifyApi-Client für Benutzer gefunden: " + user); + System.err.println("Kein SpotifyApi-Client für Benutzer gefunden: " + user); return Collections.emptyList(); } - System.out.println("SpotifyApi-Client für Benutzer gefunden: " + user); - System.out.println("AccessToken: " + userApi.getAccessToken()); - System.out.println("RefreshToken: " + userApi.getRefreshToken()); +// System.out.println("SpotifyApi-Client für Benutzer gefunden: " + user); +// System.out.println("AccessToken: " + userApi.getAccessToken()); +// System.out.println("RefreshToken: " + userApi.getRefreshToken()); try { - System.out.println("Hole Profil für Benutzer: " + user); + //System.out.println("Hole Profil für Benutzer: " + user); // Hole das Profil des Benutzers, um den Account-Typ zu überprüfen - var profile = userApi.getCurrentUsersProfile().build().execute(); - System.out.println("Account-Typ: " + profile.getProduct()); + //var profile = userApi.getCurrentUsersProfile().build().execute(); + //System.out.println("Account-Typ: " + profile.getProduct()); - System.out.println("Erstelle Anfrage für kürzlich gespielte Tracks..."); - if (userApi.getRefreshToken() == null) { - System.out.println("Refresh Token für Benutzer " + user + " ist nicht gesetzt."); - } + //System.out.println("Erstelle Anfrage für kürzlich gespielte Tracks..."); +// if (userApi.getRefreshToken() == null) { +// System.err.println("Refresh Token für Benutzer " + user + " ist nicht gesetzt."); +// } - System.out.println("Refresh Token für Benutzer " + user + " ist gesetzt."); - if( userApi.getAccessToken() == null) { - System.out.println("Access Token für Benutzer " + user + " ist nicht gesetzt."); - return Collections.emptyList(); - } +// System.out.println("Refresh Token für Benutzer " + user + " ist gesetzt."); +// if( userApi.getAccessToken() == null) { +// System.out.println("Access Token für Benutzer " + user + " ist nicht gesetzt."); +// return Collections.emptyList(); +// } - System.out.println("Access Token für Benutzer " + user + " ist gesetzt."); +// System.out.println("Access Token für Benutzer " + user + " ist gesetzt."); GetCurrentUsersRecentlyPlayedTracksRequest request = userApi.getCurrentUsersRecentlyPlayedTracks() .limit(limit) .build(); // Führe die Anfrage aus und erhalte die Ergebnisse - System.out.println("Führe paging Anfrage aus..."); +// System.out.println("Führe paging Anfrage aus..."); PagingCursorbased history = request.execute(); - System.out.println("Paging Anfrage erfolgreich ausgeführt."); +// System.out.println("Paging Anfrage erfolgreich ausgeführt."); // Überprüfe, ob die Ergebnisse leer sind - System.out.println("Überprüfe, ob Ergebnisse vorhanden sind..."); +// System.out.println("Überprüfe, ob Ergebnisse vorhanden sind..."); if (history == null || history.getItems() == null) { return Collections.emptyList(); } - System.out.println("Verarbeite kürzlich gespielte Tracks..."); +// System.out.println("Verarbeite kürzlich gespielte Tracks..."); // Extrahiere die URIs der kürzlich gespielten Tracks List recentTracks = Arrays.stream(history.getItems()) .map(item -> item.getTrack().getUri()) @@ -134,6 +134,7 @@ public class SpotifyAuthService { System.out.println("Gefundene kürzlich gespielte Tracks: " + recentTracks.size()); if (recentTracks.size() < limit) { + int oldLimit = limit; int newLimit = limit - recentTracks.size(); // restliche songs mit kürzlich gespeicherten Tracks auffüllen List savedTracks = getSavedTracks(user, newLimit, 0); @@ -142,8 +143,9 @@ public class SpotifyAuthService { recentTracks = new java.util.ArrayList<>(recentTracks); recentTracks.addAll(savedTracks.subList(0, Math.min(newLimit, savedTracks.size()))); if(recentTracks.size() < limit){ + oldLimit = newLimit; newLimit = limit - recentTracks.size(); - List savedTracks2 = getSavedTracks(user, newLimit, 50); + List savedTracks2 = getSavedTracks(user, newLimit, oldLimit); savedTracks2.removeAll(recentTracks); recentTracks.addAll(savedTracks2.subList(0, Math.min(newLimit, savedTracks2.size()))); }