offset dynamisch gestalten
parent
04f374cfff
commit
5f176bab0f
|
|
@ -81,51 +81,51 @@ public class SpotifyAuthService {
|
|||
|
||||
public List<String> 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<PlayHistory> 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<String> 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<String> 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<String> savedTracks2 = getSavedTracks(user, newLimit, 50);
|
||||
List<String> savedTracks2 = getSavedTracks(user, newLimit, oldLimit);
|
||||
savedTracks2.removeAll(recentTracks);
|
||||
recentTracks.addAll(savedTracks2.subList(0, Math.min(newLimit, savedTracks2.size())));
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue