From cd98aaf129d4dcd4b20e9f2f3839cabc7d946e1c Mon Sep 17 00:00:00 2001 From: Zoltan Vari Date: Sun, 5 Jan 2025 14:01:57 +0100 Subject: [PATCH] 0.0.3 --- pom.xml | 8 -- .../api/SessionDataMainPageResponse.java | 21 +++++ .../api/redis/Redis_SessionData.java | 76 +++++++++++++++-- .../api/redis/Redis_UserData.java | 37 ++++++++- .../Spotify_AvailableDevicesResponse.java | 23 ++++++ .../api/spotify/Spotify_DeviceObject.java | 81 +++++++++++++++++++ .../api/spotify/Spotify_PlaybackState.java | 34 ++++++++ .../spotify/Spotify_StaryPlaybackRequest.java | 35 ++++++++ .../Spotify_TransferPlaybackRequest.java | 24 ++++++ .../api/spotify/Spotify_UserDtoResponse.java | 25 ++++-- 10 files changed, 337 insertions(+), 27 deletions(-) create mode 100644 src/main/java/spotifymixerapi/api/spotify/Spotify_AvailableDevicesResponse.java create mode 100644 src/main/java/spotifymixerapi/api/spotify/Spotify_DeviceObject.java create mode 100644 src/main/java/spotifymixerapi/api/spotify/Spotify_PlaybackState.java create mode 100644 src/main/java/spotifymixerapi/api/spotify/Spotify_StaryPlaybackRequest.java create mode 100644 src/main/java/spotifymixerapi/api/spotify/Spotify_TransferPlaybackRequest.java diff --git a/pom.xml b/pom.xml index c37f354..22e3a52 100644 --- a/pom.xml +++ b/pom.xml @@ -115,12 +115,4 @@ - - - reposilite - Reposilite Repository - http://192.168.0.9:15534/snapshots - - - diff --git a/src/main/java/spotifymixerapi/api/SessionDataMainPageResponse.java b/src/main/java/spotifymixerapi/api/SessionDataMainPageResponse.java index 5e1a5d5..b30af76 100644 --- a/src/main/java/spotifymixerapi/api/SessionDataMainPageResponse.java +++ b/src/main/java/spotifymixerapi/api/SessionDataMainPageResponse.java @@ -1,5 +1,8 @@ package spotifymixerapi.api; +import spotifymixerapi.api.spotify.Spotify_AvailableDevicesResponse; +import spotifymixerapi.api.spotify.Spotify_DeviceObject; + import java.util.ArrayList; import java.util.List; @@ -7,6 +10,8 @@ public class SessionDataMainPageResponse { String sessionName; List users = new ArrayList<>(); + List devices; + Spotify_DeviceObject currentlySelectedDevice; public String getSessionName() { return sessionName; @@ -23,4 +28,20 @@ public class SessionDataMainPageResponse { public void setUsers(List users) { this.users = users; } + + public List getDevices() { + return devices; + } + + public void setDevices(List devices) { + this.devices = devices; + } + + public Spotify_DeviceObject getCurrentlySelectedDevice() { + return currentlySelectedDevice; + } + + public void setCurrentlySelectedDevice(Spotify_DeviceObject currentlySelectedDevice) { + this.currentlySelectedDevice = currentlySelectedDevice; + } } diff --git a/src/main/java/spotifymixerapi/api/redis/Redis_SessionData.java b/src/main/java/spotifymixerapi/api/redis/Redis_SessionData.java index 7d96672..f5bd70b 100644 --- a/src/main/java/spotifymixerapi/api/redis/Redis_SessionData.java +++ b/src/main/java/spotifymixerapi/api/redis/Redis_SessionData.java @@ -1,8 +1,11 @@ package spotifymixerapi.api.redis; +import spotifymixerapi.api.spotify.Spotify_AvailableDevicesResponse; +import spotifymixerapi.api.spotify.Spotify_DeviceObject; +import spotifymixerapi.api.spotify.Spotify_PlaybackState; + import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; +import java.util.*; public class Redis_SessionData implements Serializable { @@ -10,14 +13,20 @@ public class Redis_SessionData implements Serializable { String sessionName; String owner; List users = new ArrayList<>(); + LinkedHashMap> devices = new LinkedHashMap<>(); + Spotify_DeviceObject selectedDevice; + Map currentlyPlayedTrack; + LinkedHashMap> sessionQueueMap = new LinkedHashMap<>(); + Spotify_PlaybackState playbackState; + + public Redis_SessionData() { + } - public Redis_SessionData(String sessionName, String owner, List users) { + public Redis_SessionData(String sessionName, String owner, List users,LinkedHashMap> devices) { this.sessionName = sessionName; this.owner = owner; this.users = users; - } - - public Redis_SessionData() { + this.devices = devices; } public String getSessionName() { @@ -44,12 +53,65 @@ public class Redis_SessionData implements Serializable { this.users = users; } + public LinkedHashMap> getDevices() { + return devices; + } + + public void setDevices(LinkedHashMap> devices) { + this.devices = devices; + } + + public void addDevice(String userId, List devices) { + this.devices.put(userId,devices); + } + + public Map getCurrentlyPlayedTrack() { + return currentlyPlayedTrack; + } + + public void setCurrentlyPlayedTrack(String user, String track) { + this.currentlyPlayedTrack = Collections.singletonMap(user,track); + } + + public LinkedHashMap> getSessionQueueMap() { + return sessionQueueMap; + } + + public void setSessionQueueMap(LinkedHashMap> sessionQueueMap) { + this.sessionQueueMap = sessionQueueMap; + } + + public Spotify_DeviceObject getSelectedDevice() { + return selectedDevice; + } + + public void setSelectedDevice(Spotify_DeviceObject selectedDevice) { + this.selectedDevice = selectedDevice; + } + + public void setCurrentlyPlayedTrack(Map currentlyPlayedTrack) { + this.currentlyPlayedTrack = currentlyPlayedTrack; + } + + public Spotify_PlaybackState getPlaybackState() { + return playbackState; + } + + public void setPlaybackState(Spotify_PlaybackState playbackState) { + this.playbackState = playbackState; + } + @Override public String toString() { - return "SessionData{" + + return "Redis_SessionData{" + "sessionName='" + sessionName + '\'' + ", owner='" + owner + '\'' + ", users=" + users + + ", devices=" + devices + + ", selectedDevice=" + selectedDevice + + ", currentlyPlayedTrack=" + currentlyPlayedTrack + + ", sessionQueueMap=" + sessionQueueMap + + ", playbackState=" + playbackState + '}'; } } diff --git a/src/main/java/spotifymixerapi/api/redis/Redis_UserData.java b/src/main/java/spotifymixerapi/api/redis/Redis_UserData.java index b9acc63..7821a63 100644 --- a/src/main/java/spotifymixerapi/api/redis/Redis_UserData.java +++ b/src/main/java/spotifymixerapi/api/redis/Redis_UserData.java @@ -1,5 +1,7 @@ package spotifymixerapi.api.redis; +import spotifymixerapi.api.AccessTokenHolder; +import spotifymixerapi.api.spotify.Spotify_DeviceObject; import spotifymixerapi.api.spotify.Spotify_Playlist; import spotifymixerapi.api.spotify.Spotify_TrackObject; import spotifymixerapi.api.spotify.Spotify_UserDtoResponse; @@ -12,23 +14,28 @@ import java.util.stream.Collectors; public class Redis_UserData implements Serializable { Spotify_UserDtoResponse spotifyUserDtoResponse; - List likedTracks = new ArrayList<>(); //Spotify_TrackObject - List playlistList = new ArrayList<>(); //Spotify_Playlist + List likedTracks = new ArrayList<>(); + List playlistList = new ArrayList<>(); + Boolean hasPremium = false; + List devices; List queue = new ArrayList<>(); + String accessToken; public Redis_UserData() { } - public Redis_UserData(Spotify_UserDtoResponse spotifyUserDtoResponse, List likedTracks, List playlistList) { + public Redis_UserData(Spotify_UserDtoResponse spotifyUserDtoResponse, List likedTracks, List playlistList, String accessToken) { this.spotifyUserDtoResponse = spotifyUserDtoResponse; this.likedTracks = likedTracks; this.playlistList = playlistList; + this.accessToken = accessToken; } - public Redis_UserData(List likedTracks, List playlistLists){ + public Redis_UserData(List likedTracks, List playlistLists,String accessToken){ likedTracks.stream().forEach(l -> this.likedTracks.add(l.getId())); playlistLists.stream().forEach(l -> this.playlistList.add(l.getId())); + this.accessToken = accessToken; } public Spotify_UserDtoResponse getSpotifyUserDtoResponse() { @@ -55,6 +62,22 @@ public class Redis_UserData implements Serializable { this.playlistList = playlistList; } + public Boolean getHasPremium() { + return hasPremium; + } + + public void setHasPremium(Boolean hasPremium) { + this.hasPremium = hasPremium; + } + + public List getDevices() { + return devices; + } + + public void setDevices(List devices) { + this.devices = devices; + } + public List getQueue() { return queue; } @@ -63,12 +86,18 @@ public class Redis_UserData implements Serializable { this.queue = queue; } + public String getAccessToken() { + return accessToken; + } + @Override public String toString() { return "Redis_UserData{" + "spotifyUserDtoResponse=" + spotifyUserDtoResponse + ", likedTracks=" + likedTracks + ", playlistList=" + playlistList + + ", hasPremium=" + hasPremium + + ", devices=" + devices + ", queue=" + queue + '}'; } diff --git a/src/main/java/spotifymixerapi/api/spotify/Spotify_AvailableDevicesResponse.java b/src/main/java/spotifymixerapi/api/spotify/Spotify_AvailableDevicesResponse.java new file mode 100644 index 0000000..99aeffe --- /dev/null +++ b/src/main/java/spotifymixerapi/api/spotify/Spotify_AvailableDevicesResponse.java @@ -0,0 +1,23 @@ +package spotifymixerapi.api.spotify; + +import java.util.List; + +public class Spotify_AvailableDevicesResponse { + + List devices; + + public List getDevices() { + return devices; + } + + public void setDevices(List devices) { + this.devices = devices; + } + + @Override + public String toString() { + return "Spotify_AvailableDevicesResponse{" + + "devices=" + devices + + '}'; + } +} diff --git a/src/main/java/spotifymixerapi/api/spotify/Spotify_DeviceObject.java b/src/main/java/spotifymixerapi/api/spotify/Spotify_DeviceObject.java new file mode 100644 index 0000000..53bef53 --- /dev/null +++ b/src/main/java/spotifymixerapi/api/spotify/Spotify_DeviceObject.java @@ -0,0 +1,81 @@ +package spotifymixerapi.api.spotify; + +public class Spotify_DeviceObject { + + String id; + boolean is_active; + boolean is_restricted; + String name; + String type; + int volume_percent; + boolean supports_volume; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isIs_active() { + return is_active; + } + + public void setIs_active(boolean is_active) { + this.is_active = is_active; + } + + public boolean isIs_restricted() { + return is_restricted; + } + + public void setIs_restricted(boolean is_restricted) { + this.is_restricted = is_restricted; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public int getVolume_percent() { + return volume_percent; + } + + public void setVolume_percent(int volume_percent) { + this.volume_percent = volume_percent; + } + + public boolean isSupports_volume() { + return supports_volume; + } + + public void setSupports_volume(boolean supports_volume) { + this.supports_volume = supports_volume; + } + + @Override + public String toString() { + return "Spotify_DeviceObject{" + + "id='" + id + '\'' + + ", is_active=" + is_active + + ", is_restricted=" + is_restricted + + ", name='" + name + '\'' + + ", type='" + type + '\'' + + ", volume_percent=" + volume_percent + + ", supports_volume=" + supports_volume + + '}'; + } +} diff --git a/src/main/java/spotifymixerapi/api/spotify/Spotify_PlaybackState.java b/src/main/java/spotifymixerapi/api/spotify/Spotify_PlaybackState.java new file mode 100644 index 0000000..b1558e6 --- /dev/null +++ b/src/main/java/spotifymixerapi/api/spotify/Spotify_PlaybackState.java @@ -0,0 +1,34 @@ +package spotifymixerapi.api.spotify; + +import java.io.Serializable; +import java.lang.foreign.SegmentAllocator; + +public class Spotify_PlaybackState implements Serializable { + + int progress_ms; + boolean is_playing; + + public int getProgress_ms() { + return progress_ms; + } + + public void setProgress_ms(int progress_ms) { + this.progress_ms = progress_ms; + } + + public boolean isIs_playing() { + return is_playing; + } + + public void setIs_playing(boolean is_playing) { + this.is_playing = is_playing; + } + + @Override + public String toString() { + return "Spotify_PlaybackState{" + + "progress_ms=" + progress_ms + + ", is_playing=" + is_playing + + '}'; + } +} diff --git a/src/main/java/spotifymixerapi/api/spotify/Spotify_StaryPlaybackRequest.java b/src/main/java/spotifymixerapi/api/spotify/Spotify_StaryPlaybackRequest.java new file mode 100644 index 0000000..cb4f800 --- /dev/null +++ b/src/main/java/spotifymixerapi/api/spotify/Spotify_StaryPlaybackRequest.java @@ -0,0 +1,35 @@ +package spotifymixerapi.api.spotify; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +public class Spotify_StaryPlaybackRequest implements Serializable { + + int position_ms = 0; + List uris = new ArrayList<>(); + + public int getPosition_ms() { + return position_ms; + } + + public void setPosition_ms(int position_ms) { + this.position_ms = position_ms; + } + + public List getUris() { + return uris; + } + + public void setUris(List uris) { + this.uris = uris; + } + + @Override + public String toString() { + return "Spotify_StaryPlaybackRequest{" + + "position_ms=" + position_ms + + ", uris=" + uris + + '}'; + } +} diff --git a/src/main/java/spotifymixerapi/api/spotify/Spotify_TransferPlaybackRequest.java b/src/main/java/spotifymixerapi/api/spotify/Spotify_TransferPlaybackRequest.java new file mode 100644 index 0000000..f4b03f3 --- /dev/null +++ b/src/main/java/spotifymixerapi/api/spotify/Spotify_TransferPlaybackRequest.java @@ -0,0 +1,24 @@ +package spotifymixerapi.api.spotify; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +public class Spotify_TransferPlaybackRequest implements Serializable { + List device_ids = new ArrayList<>(); + + public List getDevice_ids() { + return device_ids; + } + + public void setDevice_ids(List device_ids) { + this.device_ids = device_ids; + } + + @Override + public String toString() { + return "Spotify_TransferPlaybackRequest{" + + "device_ids=" + device_ids + + '}'; + } +} diff --git a/src/main/java/spotifymixerapi/api/spotify/Spotify_UserDtoResponse.java b/src/main/java/spotifymixerapi/api/spotify/Spotify_UserDtoResponse.java index 75402c0..d17d160 100644 --- a/src/main/java/spotifymixerapi/api/spotify/Spotify_UserDtoResponse.java +++ b/src/main/java/spotifymixerapi/api/spotify/Spotify_UserDtoResponse.java @@ -9,18 +9,11 @@ public class Spotify_UserDtoResponse implements Serializable { Spotify_ImageObjectDto[] images; String uri; String id; + String product; public Spotify_UserDtoResponse() { } - public Spotify_ImageObjectDto[] getImages() { - return images; - } - - public void setImages(Spotify_ImageObjectDto[] images) { - this.images = images; - } - public String getDisplay_name() { return display_name; } @@ -29,6 +22,14 @@ public class Spotify_UserDtoResponse implements Serializable { this.display_name = display_name; } + public Spotify_ImageObjectDto[] getImages() { + return images; + } + + public void setImages(Spotify_ImageObjectDto[] images) { + this.images = images; + } + public String getUri() { return uri; } @@ -45,6 +46,13 @@ public class Spotify_UserDtoResponse implements Serializable { this.id = id; } + public String getProduct() { + return product; + } + + public void setProduct(String product) { + this.product = product; + } @Override public String toString() { @@ -53,6 +61,7 @@ public class Spotify_UserDtoResponse implements Serializable { ", images=" + Arrays.toString(images) + ", uri='" + uri + '\'' + ", id='" + id + '\'' + + ", product='" + product + '\'' + '}'; } }