use of se.light.assembly64.model.PlaylistEntry in project assembly64fx by freabemania.
the class PlaylistService method addSong.
public void addSong(PlaylistInfo playlist, ContentEntry song) {
List<PlaylistEntry> entryAsList = new ArrayList<>();
entryAsList.add(song.getFullPlaylistInfo());
List<ContentEntry> contentEntries = new ArrayList<>();
contentEntries.add(new ContentEntry(song.getId(), song.getName()));
List<List<ContentEntry>> listOfListsOfContent = new ArrayList<>();
listOfListsOfContent.add(contentEntries);
addSongs(playlist, entryAsList, listOfListsOfContent);
}
use of se.light.assembly64.model.PlaylistEntry in project assembly64fx by freabemania.
the class PlaylistService method deleteSongs.
public void deleteSongs(PlaylistInfo playlist, List<PlaylistEntry> playlistEntry) {
StringKeys keys = StringKeys.of(playlistEntry.stream().map(item -> String.valueOf(item.getSongId())).collect(Collectors.toList()));
getClient().target(getBackendServer()).path("/leet/playlistsnew/deletesongs/" + playlist.getId()).request().header("email", getSessionInfo().getEmail()).header("token", getSessionInfo().getToken()).put(Entity.json(keys)).close();
List<PlaylistEntry> list = getSongsForPlaylist(playlist);
keys.getKeys().stream().forEach(item -> list.removeIf(entry -> entry.getSongId().equals(item)));
flushLocalList(playlist, list);
playlist.setChecksum(getChksum(list));
flushPlaylistInfo();
Analytics.sendEvent("sidify", "deletesong");
}
use of se.light.assembly64.model.PlaylistEntry in project assembly64fx by freabemania.
the class PlaylistService method createPlaylist.
public PlaylistInfo createPlaylist(String name, Boolean publicList) {
PlaylistInfo newPlaylist = getClient().target(server).path("/leet/playlistsnew/addplaylist/" + name + "/" + Boolean.toString(publicList)).request().header("email", email).header("token", token).get(PlaylistInfo.class);
playlists.add(newPlaylist);
flushLocalList(newPlaylist, new ArrayList<PlaylistEntry>());
flushPlaylistInfo();
Analytics.sendEvent("sidify", "createplaylist");
return newPlaylist;
}
use of se.light.assembly64.model.PlaylistEntry in project assembly64fx by freabemania.
the class PlaylistService method addTmpPlaylist.
public void addTmpPlaylist(List<PlaylistEntry> entries) {
PlaylistInfo tmpEntry = new PlaylistInfo();
tmpEntry.setName(TMP_PLAYLIST_ID);
tmpEntry.setId(TMP_PLAYLIST_ID);
playlistSongs.put(tmpEntry.getId(), entries);
playlists.removeIf(item -> item.getId().equals(TMP_PLAYLIST_ID));
playlists.add(tmpEntry);
}
use of se.light.assembly64.model.PlaylistEntry in project assembly64fx by freabemania.
the class PlaylistService method addSongs.
public void addSongs(PlaylistInfo playlist, List<PlaylistEntry> entry, List<List<ContentEntry>> songs) {
if (entry.size() != songs.size()) {
throw new IllegalStateException("Bah!!!");
}
List<PlaylistEntry> entries = new ArrayList<>();
Iterator<PlaylistEntry> entryLists = entry.iterator();
Iterator<List<ContentEntry>> entryListsSongs = songs.iterator();
while (entryLists.hasNext()) {
PlaylistEntry pEntry = entryLists.next();
List<ContentEntry> pSongs = entryListsSongs.next();
for (ContentEntry song : pSongs) {
if (song.getName().toLowerCase().endsWith(".sid")) {
PlaylistEntry tmp = new PlaylistEntry(pEntry.getId(), pEntry.getCategory(), song.getId());
tmp.setName(song.getName());
if (song.getFullPlaylistInfo() != null) {
tmp.setGroup(song.getFullPlaylistInfo().getGroup());
tmp.setYear(song.getFullPlaylistInfo().getYear());
}
entries.add(tmp);
}
}
}
Executors.newSingleThreadExecutor().execute(() -> {
List<PlaylistEntry> addedSongs = getClient().target(server).path("/leet/playlistsnew/addsongs/" + playlist.getId()).request().header("email", getSessionInfo().getEmail()).header("token", getSessionInfo().getToken()).post(Entity.json(entries), new GenericType<List<PlaylistEntry>>() {
});
List<PlaylistEntry> songsForPlaylist = getSongsForPlaylist(playlist);
for (PlaylistEntry tmp1 : addedSongs) {
for (PlaylistEntry tmp2 : songsForPlaylist) {
if (tmp2.getSongId().equals(tmp1.getSongId())) {
tmp2.setGroup(tmp1.getGroup());
tmp2.setYear(tmp1.getYear());
tmp2.setName(tmp1.getName());
break;
}
}
}
flush(songsForPlaylist, resolvePlaylistFilename(playlist));
playlist.setChecksum(getChksum(songsForPlaylist));
Analytics.sendEvent("sidify", "addsongs");
});
List<PlaylistEntry> songsForPlaylist = getSongsForPlaylist(playlist);
songsForPlaylist.addAll(entries);
flush(songsForPlaylist, resolvePlaylistFilename(playlist));
playlist.setChecksum(getChksum(songsForPlaylist));
flushPlaylistInfo();
}
Aggregations