offset dynamisch gestalten
parent
04f374cfff
commit
5f176bab0f
|
|
@ -81,51 +81,51 @@ public class SpotifyAuthService {
|
||||||
|
|
||||||
public List<String> getRecentTracks(String user) {
|
public List<String> getRecentTracks(String user) {
|
||||||
System.out.println("Hole kürzlich gespielte Tracks für Benutzer: " + user);
|
System.out.println("Hole kürzlich gespielte Tracks für Benutzer: " + user);
|
||||||
int limit = 5;
|
int limit = 50;
|
||||||
SpotifyApi userApi = userApis.get(user);
|
SpotifyApi userApi = userApis.get(user);
|
||||||
|
|
||||||
if (userApi == null) {
|
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();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
System.out.println("SpotifyApi-Client für Benutzer gefunden: " + user);
|
// System.out.println("SpotifyApi-Client für Benutzer gefunden: " + user);
|
||||||
System.out.println("AccessToken: " + userApi.getAccessToken());
|
// System.out.println("AccessToken: " + userApi.getAccessToken());
|
||||||
System.out.println("RefreshToken: " + userApi.getRefreshToken());
|
// System.out.println("RefreshToken: " + userApi.getRefreshToken());
|
||||||
|
|
||||||
|
|
||||||
try {
|
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
|
// Hole das Profil des Benutzers, um den Account-Typ zu überprüfen
|
||||||
var profile = userApi.getCurrentUsersProfile().build().execute();
|
//var profile = userApi.getCurrentUsersProfile().build().execute();
|
||||||
System.out.println("Account-Typ: " + profile.getProduct());
|
//System.out.println("Account-Typ: " + profile.getProduct());
|
||||||
|
|
||||||
System.out.println("Erstelle Anfrage für kürzlich gespielte Tracks...");
|
//System.out.println("Erstelle Anfrage für kürzlich gespielte Tracks...");
|
||||||
if (userApi.getRefreshToken() == null) {
|
// if (userApi.getRefreshToken() == null) {
|
||||||
System.out.println("Refresh Token für Benutzer " + user + " ist nicht gesetzt.");
|
// System.err.println("Refresh Token für Benutzer " + user + " ist nicht gesetzt.");
|
||||||
}
|
// }
|
||||||
|
|
||||||
System.out.println("Refresh Token für Benutzer " + user + " ist gesetzt.");
|
// System.out.println("Refresh Token für Benutzer " + user + " ist gesetzt.");
|
||||||
if( userApi.getAccessToken() == null) {
|
// if( userApi.getAccessToken() == null) {
|
||||||
System.out.println("Access Token für Benutzer " + user + " ist nicht gesetzt.");
|
// System.out.println("Access Token für Benutzer " + user + " ist nicht gesetzt.");
|
||||||
return Collections.emptyList();
|
// 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()
|
GetCurrentUsersRecentlyPlayedTracksRequest request = userApi.getCurrentUsersRecentlyPlayedTracks()
|
||||||
.limit(limit)
|
.limit(limit)
|
||||||
.build();
|
.build();
|
||||||
// Führe die Anfrage aus und erhalte die Ergebnisse
|
// 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();
|
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
|
// Ü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) {
|
if (history == null || history.getItems() == null) {
|
||||||
return Collections.emptyList();
|
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
|
// Extrahiere die URIs der kürzlich gespielten Tracks
|
||||||
List<String> recentTracks = Arrays.stream(history.getItems())
|
List<String> recentTracks = Arrays.stream(history.getItems())
|
||||||
.map(item -> item.getTrack().getUri())
|
.map(item -> item.getTrack().getUri())
|
||||||
|
|
@ -134,6 +134,7 @@ public class SpotifyAuthService {
|
||||||
System.out.println("Gefundene kürzlich gespielte Tracks: " + recentTracks.size());
|
System.out.println("Gefundene kürzlich gespielte Tracks: " + recentTracks.size());
|
||||||
|
|
||||||
if (recentTracks.size() < limit) {
|
if (recentTracks.size() < limit) {
|
||||||
|
int oldLimit = limit;
|
||||||
int newLimit = limit - recentTracks.size();
|
int newLimit = limit - recentTracks.size();
|
||||||
// restliche songs mit kürzlich gespeicherten Tracks auffüllen
|
// restliche songs mit kürzlich gespeicherten Tracks auffüllen
|
||||||
List<String> savedTracks = getSavedTracks(user, newLimit, 0);
|
List<String> savedTracks = getSavedTracks(user, newLimit, 0);
|
||||||
|
|
@ -142,8 +143,9 @@ public class SpotifyAuthService {
|
||||||
recentTracks = new java.util.ArrayList<>(recentTracks);
|
recentTracks = new java.util.ArrayList<>(recentTracks);
|
||||||
recentTracks.addAll(savedTracks.subList(0, Math.min(newLimit, savedTracks.size())));
|
recentTracks.addAll(savedTracks.subList(0, Math.min(newLimit, savedTracks.size())));
|
||||||
if(recentTracks.size() < limit){
|
if(recentTracks.size() < limit){
|
||||||
|
oldLimit = newLimit;
|
||||||
newLimit = limit - recentTracks.size();
|
newLimit = limit - recentTracks.size();
|
||||||
List<String> savedTracks2 = getSavedTracks(user, newLimit, 50);
|
List<String> savedTracks2 = getSavedTracks(user, newLimit, oldLimit);
|
||||||
savedTracks2.removeAll(recentTracks);
|
savedTracks2.removeAll(recentTracks);
|
||||||
recentTracks.addAll(savedTracks2.subList(0, Math.min(newLimit, savedTracks2.size())));
|
recentTracks.addAll(savedTracks2.subList(0, Math.min(newLimit, savedTracks2.size())));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue