Auto eslint fix
This commit is contained in:
@ -1,101 +1,102 @@
|
||||
|
||||
import * as helpers from '../../helpers'
|
||||
var spotifyActions = require('../../services/spotify/actions')
|
||||
var mopidyActions = require('../../services/mopidy/actions')
|
||||
import * as helpers from '../../helpers';
|
||||
|
||||
export function getBroadcasts(){
|
||||
return (dispatch, getState) => {
|
||||
var config = {
|
||||
method: 'GET',
|
||||
timeout: 15000
|
||||
}
|
||||
const spotifyActions = require('../../services/spotify/actions');
|
||||
const mopidyActions = require('../../services/mopidy/actions');
|
||||
|
||||
// Fetch the "iris_broadcasts.json" file from Gist (or "_test" for test mode)
|
||||
if (getState().ui.test_mode){
|
||||
config.url = 'https://gist.githubusercontent.com/jaedb/cb3a5ee6909632abb2e0fe66d4c8c311/raw'
|
||||
} else {
|
||||
config.url = 'https://gist.githubusercontent.com/jaedb/b677dccf80daf3ccb2ef12e96e495677/raw'
|
||||
}
|
||||
export function getBroadcasts() {
|
||||
return (dispatch, getState) => {
|
||||
const config = {
|
||||
method: 'GET',
|
||||
timeout: 15000,
|
||||
};
|
||||
|
||||
$.ajax(config).then(
|
||||
response => {
|
||||
dispatch({
|
||||
type: 'BROADCASTS_LOADED',
|
||||
broadcasts: JSON.parse(response)
|
||||
})
|
||||
},
|
||||
(xhr, status, error) => {
|
||||
dispatch(
|
||||
handleException(
|
||||
'Could not fetch broadcasts from GitHub',
|
||||
{
|
||||
config: config,
|
||||
xhr: xhr,
|
||||
status: status,
|
||||
error: error
|
||||
},
|
||||
null,
|
||||
false
|
||||
)
|
||||
);
|
||||
}
|
||||
)
|
||||
// Fetch the "iris_broadcasts.json" file from Gist (or "_test" for test mode)
|
||||
if (getState().ui.test_mode) {
|
||||
config.url = 'https://gist.githubusercontent.com/jaedb/cb3a5ee6909632abb2e0fe66d4c8c311/raw';
|
||||
} else {
|
||||
config.url = 'https://gist.githubusercontent.com/jaedb/b677dccf80daf3ccb2ef12e96e495677/raw';
|
||||
}
|
||||
|
||||
$.ajax(config).then(
|
||||
(response) => {
|
||||
dispatch({
|
||||
type: 'BROADCASTS_LOADED',
|
||||
broadcasts: JSON.parse(response),
|
||||
});
|
||||
},
|
||||
(xhr, status, error) => {
|
||||
dispatch(
|
||||
handleException(
|
||||
'Could not fetch broadcasts from GitHub',
|
||||
{
|
||||
config,
|
||||
xhr,
|
||||
status,
|
||||
error,
|
||||
},
|
||||
null,
|
||||
false,
|
||||
),
|
||||
);
|
||||
},
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
export function startSearch(search_type, query, only_mopidy = false){
|
||||
return {
|
||||
type: 'SEARCH_STARTED',
|
||||
search_type: search_type,
|
||||
query: query,
|
||||
only_mopidy: only_mopidy
|
||||
}
|
||||
export function startSearch(search_type, query, only_mopidy = false) {
|
||||
return {
|
||||
type: 'SEARCH_STARTED',
|
||||
search_type,
|
||||
query,
|
||||
only_mopidy,
|
||||
};
|
||||
}
|
||||
|
||||
export function handleException(message, data = {}, description = null, show_notification = true){
|
||||
if (!message && data.message){
|
||||
message = data.message;
|
||||
} else if (!message && data.error.message){
|
||||
message = data.error.message;
|
||||
}
|
||||
if (!description && data.description){
|
||||
description = data.description;
|
||||
} else if (!description && data.error && data.error.description){
|
||||
description = data.error.description;
|
||||
}
|
||||
return {
|
||||
type: 'HANDLE_EXCEPTION',
|
||||
message: message,
|
||||
description: description,
|
||||
data: data,
|
||||
show_notification: show_notification
|
||||
}
|
||||
export function handleException(message, data = {}, description = null, show_notification = true) {
|
||||
if (!message && data.message) {
|
||||
message = data.message;
|
||||
} else if (!message && data.error.message) {
|
||||
message = data.error.message;
|
||||
}
|
||||
if (!description && data.description) {
|
||||
description = data.description;
|
||||
} else if (!description && data.error && data.error.description) {
|
||||
description = data.error.description;
|
||||
}
|
||||
return {
|
||||
type: 'HANDLE_EXCEPTION',
|
||||
message,
|
||||
description,
|
||||
data,
|
||||
show_notification,
|
||||
};
|
||||
}
|
||||
|
||||
export function debugResponse(response){
|
||||
return {
|
||||
type: 'DEBUG',
|
||||
response: response
|
||||
}
|
||||
export function debugResponse(response) {
|
||||
return {
|
||||
type: 'DEBUG',
|
||||
response,
|
||||
};
|
||||
}
|
||||
|
||||
export function set(data){
|
||||
return {
|
||||
type: 'CORE_SET',
|
||||
data: data
|
||||
}
|
||||
export function set(data) {
|
||||
return {
|
||||
type: 'CORE_SET',
|
||||
data,
|
||||
};
|
||||
}
|
||||
|
||||
export function clearCurrentTrack(){
|
||||
return {
|
||||
type: 'CLEAR_CURRENT_TRACK'
|
||||
}
|
||||
export function clearCurrentTrack() {
|
||||
return {
|
||||
type: 'CLEAR_CURRENT_TRACK',
|
||||
};
|
||||
}
|
||||
|
||||
export function cachebustHttpStream(){
|
||||
return {
|
||||
type: 'CACHEBUST_HTTP_STREAM'
|
||||
}
|
||||
export function cachebustHttpStream() {
|
||||
return {
|
||||
type: 'CACHEBUST_HTTP_STREAM',
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
@ -104,54 +105,54 @@ export function cachebustHttpStream(){
|
||||
* Calling this through the common core enables us to detect whether we've already
|
||||
* got the record in the state or persistent storage. Failing that, we pass off to the
|
||||
* relevant service to load the record - all from one neat package.
|
||||
**/
|
||||
* */
|
||||
|
||||
export function loadTrack(uri, force_reload = false){
|
||||
return {
|
||||
type: 'LOAD_TRACK',
|
||||
uri: uri,
|
||||
force_reload: force_reload
|
||||
}
|
||||
export function loadTrack(uri, force_reload = false) {
|
||||
return {
|
||||
type: 'LOAD_TRACK',
|
||||
uri,
|
||||
force_reload,
|
||||
};
|
||||
}
|
||||
|
||||
export function loadAlbum(uri, force_reload = false){
|
||||
return {
|
||||
type: 'LOAD_ALBUM',
|
||||
uri: uri,
|
||||
force_reload: force_reload
|
||||
}
|
||||
export function loadAlbum(uri, force_reload = false) {
|
||||
return {
|
||||
type: 'LOAD_ALBUM',
|
||||
uri,
|
||||
force_reload,
|
||||
};
|
||||
}
|
||||
|
||||
export function loadArtist(uri, force_reload = false){
|
||||
return {
|
||||
type: 'LOAD_ARTIST',
|
||||
uri: uri,
|
||||
force_reload: force_reload
|
||||
}
|
||||
export function loadArtist(uri, force_reload = false) {
|
||||
return {
|
||||
type: 'LOAD_ARTIST',
|
||||
uri,
|
||||
force_reload,
|
||||
};
|
||||
}
|
||||
|
||||
export function loadPlaylist(uri, force_reload = false){
|
||||
return {
|
||||
type: 'LOAD_PLAYLIST',
|
||||
uri: uri,
|
||||
force_reload: force_reload
|
||||
}
|
||||
export function loadPlaylist(uri, force_reload = false) {
|
||||
return {
|
||||
type: 'LOAD_PLAYLIST',
|
||||
uri,
|
||||
force_reload,
|
||||
};
|
||||
}
|
||||
|
||||
export function loadUser(uri, force_reload = false){
|
||||
return {
|
||||
type: 'LOAD_USER',
|
||||
uri: uri,
|
||||
force_reload: force_reload
|
||||
}
|
||||
export function loadUser(uri, force_reload = false) {
|
||||
return {
|
||||
type: 'LOAD_USER',
|
||||
uri,
|
||||
force_reload,
|
||||
};
|
||||
}
|
||||
|
||||
export function loadUserPlaylists(uri, force_reload = false){
|
||||
return {
|
||||
type: 'LOAD_USER_PLAYLISTS',
|
||||
uri: uri,
|
||||
force_reload: force_reload
|
||||
}
|
||||
export function loadUserPlaylists(uri, force_reload = false) {
|
||||
return {
|
||||
type: 'LOAD_USER_PLAYLISTS',
|
||||
uri,
|
||||
force_reload,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@ -159,225 +160,218 @@ export function loadUserPlaylists(uri, force_reload = false){
|
||||
* Record loaders
|
||||
*
|
||||
* We've got a loaded record, now we just need to plug it in to our state and stores.
|
||||
**/
|
||||
* */
|
||||
|
||||
export function trackLoaded(track){
|
||||
return tracksLoaded([track]);
|
||||
export function trackLoaded(track) {
|
||||
return tracksLoaded([track]);
|
||||
}
|
||||
export function tracksLoaded(tracks){
|
||||
return {
|
||||
type: 'TRACKS_LOADED',
|
||||
tracks: tracks
|
||||
}
|
||||
export function tracksLoaded(tracks) {
|
||||
return {
|
||||
type: 'TRACKS_LOADED',
|
||||
tracks,
|
||||
};
|
||||
}
|
||||
|
||||
export function artistLoaded(artist){
|
||||
return artistsLoaded([artist]);
|
||||
export function artistLoaded(artist) {
|
||||
return artistsLoaded([artist]);
|
||||
}
|
||||
export function artistsLoaded(artists){
|
||||
return {
|
||||
type: 'ARTISTS_LOADED',
|
||||
artists: artists
|
||||
}
|
||||
export function artistsLoaded(artists) {
|
||||
return {
|
||||
type: 'ARTISTS_LOADED',
|
||||
artists,
|
||||
};
|
||||
}
|
||||
|
||||
export function albumLoaded(album){
|
||||
return albumsLoaded([album]);
|
||||
export function albumLoaded(album) {
|
||||
return albumsLoaded([album]);
|
||||
}
|
||||
export function albumsLoaded(albums){
|
||||
return {
|
||||
type: 'ALBUMS_LOADED',
|
||||
albums: albums
|
||||
}
|
||||
export function albumsLoaded(albums) {
|
||||
return {
|
||||
type: 'ALBUMS_LOADED',
|
||||
albums,
|
||||
};
|
||||
}
|
||||
|
||||
export function playlistLoaded(playlist){
|
||||
return playlistsLoaded([playlist]);
|
||||
export function playlistLoaded(playlist) {
|
||||
return playlistsLoaded([playlist]);
|
||||
}
|
||||
export function playlistsLoaded(playlists){
|
||||
return {
|
||||
type: 'PLAYLISTS_LOADED',
|
||||
playlists: playlists
|
||||
}
|
||||
export function playlistsLoaded(playlists) {
|
||||
return {
|
||||
type: 'PLAYLISTS_LOADED',
|
||||
playlists,
|
||||
};
|
||||
}
|
||||
|
||||
export function userLoaded(user){
|
||||
return usersLoaded([user]);
|
||||
export function userLoaded(user) {
|
||||
return usersLoaded([user]);
|
||||
}
|
||||
export function usersLoaded(users){
|
||||
return {
|
||||
type: 'USERS_LOADED',
|
||||
users: users
|
||||
}
|
||||
export function usersLoaded(users) {
|
||||
return {
|
||||
type: 'USERS_LOADED',
|
||||
users,
|
||||
};
|
||||
}
|
||||
export function userPlaylistsLoaded(uri, playlists, more = null, total = null){
|
||||
return {
|
||||
type: 'USER_PLAYLISTS_LOADED',
|
||||
uri: uri,
|
||||
playlists: playlists,
|
||||
more: more,
|
||||
total: total
|
||||
}
|
||||
export function userPlaylistsLoaded(uri, playlists, more = null, total = null) {
|
||||
return {
|
||||
type: 'USER_PLAYLISTS_LOADED',
|
||||
uri,
|
||||
playlists,
|
||||
more,
|
||||
total,
|
||||
};
|
||||
}
|
||||
|
||||
export function loadedMore(parent_type, parent_key, records_type, records_data){
|
||||
return {
|
||||
type: 'LOADED_MORE',
|
||||
parent_type: parent_type,
|
||||
parent_key: parent_key,
|
||||
records_type: records_type,
|
||||
records_data: records_data
|
||||
}
|
||||
export function loadedMore(parent_type, parent_key, records_type, records_data) {
|
||||
return {
|
||||
type: 'LOADED_MORE',
|
||||
parent_type,
|
||||
parent_key,
|
||||
records_type,
|
||||
records_data,
|
||||
};
|
||||
}
|
||||
|
||||
export function removeFromIndex(index_name, key, new_key = null){
|
||||
return {
|
||||
type: 'REMOVE_FROM_INDEX',
|
||||
index_name: index_name,
|
||||
key: key,
|
||||
new_key: new_key
|
||||
}
|
||||
export function removeFromIndex(index_name, key, new_key = null) {
|
||||
return {
|
||||
type: 'REMOVE_FROM_INDEX',
|
||||
index_name,
|
||||
key,
|
||||
new_key,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Playlist manipulation
|
||||
**/
|
||||
* */
|
||||
|
||||
export function reorderPlaylistTracks(uri, indexes, insert_before, snapshot_id = false){
|
||||
var range = helpers.createRange(indexes);
|
||||
switch(helpers.uriSource(uri)){
|
||||
export function reorderPlaylistTracks(uri, indexes, insert_before, snapshot_id = false) {
|
||||
const range = helpers.createRange(indexes);
|
||||
switch (helpers.uriSource(uri)) {
|
||||
case 'spotify':
|
||||
return {
|
||||
type: 'SPOTIFY_REORDER_PLAYLIST_TRACKS',
|
||||
key: uri,
|
||||
range_start: range.start,
|
||||
range_length: range.length,
|
||||
insert_before,
|
||||
snapshot_id,
|
||||
};
|
||||
|
||||
case 'spotify':
|
||||
return {
|
||||
type: 'SPOTIFY_REORDER_PLAYLIST_TRACKS',
|
||||
key: uri,
|
||||
range_start: range.start,
|
||||
range_length: range.length,
|
||||
insert_before: insert_before,
|
||||
snapshot_id: snapshot_id
|
||||
}
|
||||
|
||||
case 'm3u':
|
||||
return {
|
||||
type: 'MOPIDY_REORDER_PLAYLIST_TRACKS',
|
||||
key: uri,
|
||||
range_start: range.start,
|
||||
range_length: range.length,
|
||||
insert_before: insert_before
|
||||
}
|
||||
}
|
||||
case 'm3u':
|
||||
return {
|
||||
type: 'MOPIDY_REORDER_PLAYLIST_TRACKS',
|
||||
key: uri,
|
||||
range_start: range.start,
|
||||
range_length: range.length,
|
||||
insert_before,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
export function savePlaylist(uri, name, description = '', is_public = false, is_collaborative = false, image = null){
|
||||
switch (helpers.uriSource(uri)){
|
||||
export function savePlaylist(uri, name, description = '', is_public = false, is_collaborative = false, image = null) {
|
||||
switch (helpers.uriSource(uri)) {
|
||||
case 'spotify':
|
||||
return {
|
||||
type: 'SPOTIFY_SAVE_PLAYLIST',
|
||||
key: uri,
|
||||
name,
|
||||
description: (description == '' ? null : description),
|
||||
image,
|
||||
is_public,
|
||||
is_collaborative,
|
||||
};
|
||||
|
||||
case 'spotify':
|
||||
return {
|
||||
type: 'SPOTIFY_SAVE_PLAYLIST',
|
||||
key: uri,
|
||||
name: name,
|
||||
description: (description == '' ? null : description),
|
||||
image: image,
|
||||
is_public: is_public,
|
||||
is_collaborative: is_collaborative
|
||||
}
|
||||
|
||||
case 'm3u':
|
||||
return {
|
||||
type: 'MOPIDY_SAVE_PLAYLIST',
|
||||
key: uri,
|
||||
name: name
|
||||
}
|
||||
}
|
||||
return false
|
||||
case 'm3u':
|
||||
return {
|
||||
type: 'MOPIDY_SAVE_PLAYLIST',
|
||||
key: uri,
|
||||
name,
|
||||
};
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
export function createPlaylist(scheme, name, description = '', is_public = false, is_collaborative = false){
|
||||
switch (scheme){
|
||||
export function createPlaylist(scheme, name, description = '', is_public = false, is_collaborative = false) {
|
||||
switch (scheme) {
|
||||
case 'spotify':
|
||||
if (description == '') {
|
||||
description = null;
|
||||
}
|
||||
return spotifyActions.createPlaylist(name, description, is_public, is_collaborative);
|
||||
|
||||
case 'spotify':
|
||||
if (description == ''){
|
||||
description = null
|
||||
}
|
||||
return spotifyActions.createPlaylist(name, description, is_public, is_collaborative )
|
||||
|
||||
default:
|
||||
return mopidyActions.createPlaylist(name, scheme)
|
||||
}
|
||||
return false
|
||||
default:
|
||||
return mopidyActions.createPlaylist(name, scheme);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
export function deletePlaylist(uri){
|
||||
switch (helpers.uriSource(uri)){
|
||||
export function deletePlaylist(uri) {
|
||||
switch (helpers.uriSource(uri)) {
|
||||
case 'spotify':
|
||||
return spotifyActions.following(uri, 'DELETE');
|
||||
|
||||
case 'spotify':
|
||||
return spotifyActions.following(uri, 'DELETE')
|
||||
|
||||
default:
|
||||
return mopidyActions.deletePlaylist(uri)
|
||||
}
|
||||
return false
|
||||
default:
|
||||
return mopidyActions.deletePlaylist(uri);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
export function removeTracksFromPlaylist(uri, tracks_indexes){
|
||||
switch(helpers.uriSource(uri )){
|
||||
export function removeTracksFromPlaylist(uri, tracks_indexes) {
|
||||
switch (helpers.uriSource(uri)) {
|
||||
case 'spotify':
|
||||
return {
|
||||
type: 'SPOTIFY_REMOVE_PLAYLIST_TRACKS',
|
||||
key: uri,
|
||||
tracks_indexes,
|
||||
};
|
||||
|
||||
case 'spotify':
|
||||
return {
|
||||
type: 'SPOTIFY_REMOVE_PLAYLIST_TRACKS',
|
||||
key: uri,
|
||||
tracks_indexes: tracks_indexes
|
||||
}
|
||||
|
||||
case 'm3u':
|
||||
return {
|
||||
type: 'MOPIDY_REMOVE_PLAYLIST_TRACKS',
|
||||
key: uri,
|
||||
tracks_indexes: tracks_indexes
|
||||
}
|
||||
}
|
||||
case 'm3u':
|
||||
return {
|
||||
type: 'MOPIDY_REMOVE_PLAYLIST_TRACKS',
|
||||
key: uri,
|
||||
tracks_indexes,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
export function addTracksToPlaylist(uri, tracks_uris){
|
||||
switch(helpers.uriSource(uri )){
|
||||
export function addTracksToPlaylist(uri, tracks_uris) {
|
||||
switch (helpers.uriSource(uri)) {
|
||||
case 'spotify':
|
||||
return {
|
||||
type: 'SPOTIFY_ADD_PLAYLIST_TRACKS',
|
||||
key: uri,
|
||||
tracks_uris,
|
||||
};
|
||||
|
||||
case 'spotify':
|
||||
return {
|
||||
type: 'SPOTIFY_ADD_PLAYLIST_TRACKS',
|
||||
key: uri,
|
||||
tracks_uris: tracks_uris
|
||||
}
|
||||
|
||||
case 'm3u':
|
||||
return {
|
||||
type: 'MOPIDY_ADD_PLAYLIST_TRACKS',
|
||||
key: uri,
|
||||
tracks_uris: tracks_uris
|
||||
}
|
||||
}
|
||||
case 'm3u':
|
||||
return {
|
||||
type: 'MOPIDY_ADD_PLAYLIST_TRACKS',
|
||||
key: uri,
|
||||
tracks_uris,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Asset libraries
|
||||
**/
|
||||
* */
|
||||
|
||||
export function getLibraryPlaylists(){
|
||||
return {
|
||||
type: 'GET_LIBRARY_PLAYLISTS'
|
||||
}
|
||||
export function getLibraryPlaylists() {
|
||||
return {
|
||||
type: 'GET_LIBRARY_PLAYLISTS',
|
||||
};
|
||||
}
|
||||
|
||||
export function getLibraryAlbums(){
|
||||
return {
|
||||
type: 'GET_LIBRARY_ALBUMS'
|
||||
}
|
||||
export function getLibraryAlbums() {
|
||||
return {
|
||||
type: 'GET_LIBRARY_ALBUMS',
|
||||
};
|
||||
}
|
||||
|
||||
export function getLibraryArtists(){
|
||||
return {
|
||||
type: 'GET_LIBRARY_ARTISTS'
|
||||
}
|
||||
export function getLibraryArtists() {
|
||||
return {
|
||||
type: 'GET_LIBRARY_ARTISTS',
|
||||
};
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,306 +1,291 @@
|
||||
|
||||
import * as helpers from '../../helpers'
|
||||
import * as helpers from '../../helpers';
|
||||
|
||||
export default function reducer(core = {}, action){
|
||||
switch (action.type){
|
||||
export default function reducer(core = {}, action) {
|
||||
switch (action.type) {
|
||||
case 'CORE_SET':
|
||||
return { ...core, ...action.data };
|
||||
|
||||
case 'CORE_SET':
|
||||
return Object.assign({}, core, action.data)
|
||||
case 'CACHEBUST_HTTP_STREAM':
|
||||
return { ...core, http_streaming_cachebuster: new Date().getTime() };
|
||||
|
||||
case 'CACHEBUST_HTTP_STREAM':
|
||||
return Object.assign({}, core, {http_streaming_cachebuster: new Date().getTime()})
|
||||
|
||||
/**
|
||||
/**
|
||||
* Current track and tracklist
|
||||
**/
|
||||
* */
|
||||
|
||||
case 'CURRENT_TRACK_LOADED':
|
||||
return Object.assign({}, core, {
|
||||
current_track: action.track,
|
||||
current_track_uri: action.uri
|
||||
});
|
||||
case 'CURRENT_TRACK_LOADED':
|
||||
return {
|
||||
...core,
|
||||
current_track: action.track,
|
||||
current_track_uri: action.uri,
|
||||
};
|
||||
|
||||
case 'CLEAR_CURRENT_TRACK':
|
||||
return Object.assign({}, core, {
|
||||
current_track: null,
|
||||
current_track_uri: null
|
||||
});
|
||||
case 'CLEAR_CURRENT_TRACK':
|
||||
return {
|
||||
...core,
|
||||
current_track: null,
|
||||
current_track_uri: null,
|
||||
};
|
||||
|
||||
case 'NEXT_TRACK_LOADED':
|
||||
return Object.assign({}, core, {
|
||||
next_track_uri: action.uri
|
||||
});
|
||||
case 'NEXT_TRACK_LOADED':
|
||||
return { ...core, next_track_uri: action.uri };
|
||||
|
||||
case 'QUEUE_LOADED':
|
||||
return Object.assign({}, core, {
|
||||
queue: action.tracks
|
||||
});
|
||||
case 'QUEUE_LOADED':
|
||||
return { ...core, queue: action.tracks };
|
||||
|
||||
case 'PUSHER_QUEUE_METADATA':
|
||||
case 'PUSHER_QUEUE_METADATA_CHANGED':
|
||||
var tracklist = Object.assign([], core.current_tracklist)
|
||||
for(var i = 0; i < tracklist.length; i++){
|
||||
case 'PUSHER_QUEUE_METADATA':
|
||||
case 'PUSHER_QUEUE_METADATA_CHANGED':
|
||||
var tracklist = Object.assign([], core.current_tracklist);
|
||||
for (let i = 0; i < tracklist.length; i++) {
|
||||
// load our metadata (if we have any for that tlid)
|
||||
if (action.queue_metadata[`tlid_${tracklist[i].tlid}`] !== undefined) {
|
||||
tracklist[i] = {
|
||||
|
||||
// load our metadata (if we have any for that tlid)
|
||||
if (action.queue_metadata['tlid_'+tracklist[i].tlid] !== undefined){
|
||||
tracklist[i] = Object.assign(
|
||||
{},
|
||||
tracklist[i],
|
||||
action.queue_metadata['tlid_'+tracklist[i].tlid],
|
||||
)
|
||||
}
|
||||
}
|
||||
return Object.assign({}, core, { current_tracklist: tracklist, queue_metadata: action.queue_metadata });
|
||||
...tracklist[i],
|
||||
...action.queue_metadata[`tlid_${tracklist[i].tlid}`],
|
||||
};
|
||||
}
|
||||
}
|
||||
return { ...core, current_tracklist: tracklist, queue_metadata: action.queue_metadata };
|
||||
|
||||
case 'PUSHER_RADIO_LOADED':
|
||||
case 'PUSHER_RADIO_STARTED':
|
||||
case 'PUSHER_RADIO_CHANGED':
|
||||
case 'PUSHER_RADIO_STOPPED':
|
||||
return Object.assign({}, core, { seeds_resolved: false }, { radio: action.radio })
|
||||
case 'PUSHER_RADIO_LOADED':
|
||||
case 'PUSHER_RADIO_STARTED':
|
||||
case 'PUSHER_RADIO_CHANGED':
|
||||
case 'PUSHER_RADIO_STOPPED':
|
||||
return { ...core, seeds_resolved: false, radio: action.radio };
|
||||
|
||||
case 'RADIO_SEEDS_RESOLVED':
|
||||
var radio = Object.assign({}, core.radio, { resolved_seeds: action.resolved_seeds })
|
||||
return Object.assign({}, core, { radio: radio })
|
||||
case 'RADIO_SEEDS_RESOLVED':
|
||||
var radio = { ...core.radio, resolved_seeds: action.resolved_seeds };
|
||||
return { ...core, radio };
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
/**
|
||||
* Index updates
|
||||
* These actions are only ever called by middleware after we've digested one more many assets
|
||||
* and appended to their relevant index.
|
||||
**/
|
||||
* */
|
||||
|
||||
case 'TRACKS_LOADED':
|
||||
var tracks = Object.assign({}, core.tracks);
|
||||
for (var track of action.tracks){
|
||||
tracks[track.uri] = track;
|
||||
}
|
||||
return Object.assign({}, core, { tracks: tracks });
|
||||
case 'TRACKS_LOADED':
|
||||
var tracks = { ...core.tracks };
|
||||
for (const track of action.tracks) {
|
||||
tracks[track.uri] = track;
|
||||
}
|
||||
return { ...core, tracks };
|
||||
|
||||
case 'ALBUMS_LOADED':
|
||||
var albums = Object.assign({}, core.albums);
|
||||
for (var album of action.albums){
|
||||
albums[album.uri] = album;
|
||||
}
|
||||
return Object.assign({}, core, { albums: albums });
|
||||
case 'ALBUMS_LOADED':
|
||||
var albums = { ...core.albums };
|
||||
for (const album of action.albums) {
|
||||
albums[album.uri] = album;
|
||||
}
|
||||
return { ...core, albums };
|
||||
|
||||
case 'ARTISTS_LOADED':
|
||||
var artists = Object.assign({}, core.artists);
|
||||
for (var artist of action.artists){
|
||||
artists[artist.uri] = artist;
|
||||
}
|
||||
return Object.assign({}, core, { artists: artists });
|
||||
case 'ARTISTS_LOADED':
|
||||
var artists = { ...core.artists };
|
||||
for (var artist of action.artists) {
|
||||
artists[artist.uri] = artist;
|
||||
}
|
||||
return { ...core, artists };
|
||||
|
||||
case 'PLAYLISTS_LOADED':
|
||||
var playlists = Object.assign({}, core.playlists);
|
||||
for (var playlist of action.playlists){
|
||||
playlists[playlist.uri] = playlist;
|
||||
}
|
||||
return Object.assign({}, core, { playlists: playlists });
|
||||
case 'PLAYLISTS_LOADED':
|
||||
var playlists = { ...core.playlists };
|
||||
for (var playlist of action.playlists) {
|
||||
playlists[playlist.uri] = playlist;
|
||||
}
|
||||
return { ...core, playlists };
|
||||
|
||||
case 'USERS_LOADED':
|
||||
var users = Object.assign({}, core.users);
|
||||
for (var user of action.users){
|
||||
users[user.uri] = user;
|
||||
}
|
||||
return Object.assign({}, core, { users: users });
|
||||
case 'USERS_LOADED':
|
||||
var users = { ...core.users };
|
||||
for (var user of action.users) {
|
||||
users[user.uri] = user;
|
||||
}
|
||||
return { ...core, users };
|
||||
|
||||
|
||||
case 'ARTIST_ALBUMS_LOADED':
|
||||
var artists = Object.assign({}, core.artists)
|
||||
var albums_uris = [];
|
||||
if (artists[action.artist_uri].albums_uris){
|
||||
albums_uris = artists[action.artist_uri].albums_uris;
|
||||
}
|
||||
case 'ARTIST_ALBUMS_LOADED':
|
||||
var artists = { ...core.artists };
|
||||
var albums_uris = [];
|
||||
if (artists[action.artist_uri].albums_uris) {
|
||||
albums_uris = artists[action.artist_uri].albums_uris;
|
||||
}
|
||||
|
||||
var artist = Object.assign(
|
||||
{},
|
||||
artists[action.artist_uri],
|
||||
{
|
||||
albums_uris: [...albums_uris, ...action.albums_uris],
|
||||
albums_more: action.more,
|
||||
albums_total: action.total
|
||||
}
|
||||
)
|
||||
artists[action.artist_uri] = artist
|
||||
return Object.assign({}, core, { artists: artists });
|
||||
var artist = {
|
||||
|
||||
...artists[action.artist_uri],
|
||||
albums_uris: [...albums_uris, ...action.albums_uris],
|
||||
albums_more: action.more,
|
||||
albums_total: action.total,
|
||||
};
|
||||
artists[action.artist_uri] = artist;
|
||||
return { ...core, artists };
|
||||
|
||||
|
||||
case 'USER_PLAYLISTS_LOADED':
|
||||
var users = Object.assign({}, core.users)
|
||||
var existing_playlists_uris = [];
|
||||
if (users[action.uri] && users[action.uri].playlists_uris){
|
||||
case 'USER_PLAYLISTS_LOADED':
|
||||
var users = { ...core.users };
|
||||
var existing_playlists_uris = [];
|
||||
if (users[action.uri] && users[action.uri].playlists_uris) {
|
||||
existing_playlists_uris = users[action.uri].playlists_uris;
|
||||
}
|
||||
}
|
||||
|
||||
var playlists_uris = [...existing_playlists_uris, ...helpers.arrayOf('uri',action.playlists)]
|
||||
var playlists_uris = [...existing_playlists_uris, ...helpers.arrayOf('uri', action.playlists)];
|
||||
|
||||
var user = Object.assign(
|
||||
{},
|
||||
users[action.uri],
|
||||
{
|
||||
playlists_uris: playlists_uris,
|
||||
playlists_more: action.more,
|
||||
playlists_total: action.total
|
||||
}
|
||||
)
|
||||
users[action.uri] = user;
|
||||
return Object.assign({}, core, { users: users });
|
||||
var user = {
|
||||
|
||||
...users[action.uri],
|
||||
playlists_uris,
|
||||
playlists_more: action.more,
|
||||
playlists_total: action.total,
|
||||
};
|
||||
users[action.uri] = user;
|
||||
return { ...core, users };
|
||||
|
||||
|
||||
|
||||
/**
|
||||
/**
|
||||
* Remove an item from an index
|
||||
**/
|
||||
* */
|
||||
|
||||
case 'REMOVE_FROM_INDEX':
|
||||
var index = Object.assign({}, core[action.index_name]);
|
||||
case 'REMOVE_FROM_INDEX':
|
||||
var index = { ...core[action.index_name] };
|
||||
|
||||
// We have a new key to redirect to
|
||||
if (action.new_key){
|
||||
// We have a new key to redirect to
|
||||
if (action.new_key) {
|
||||
index[action.key] = {
|
||||
moved_to: action.new_key
|
||||
}
|
||||
moved_to: action.new_key,
|
||||
};
|
||||
|
||||
// No redirection, so just a clean delete
|
||||
} else {
|
||||
// No redirection, so just a clean delete
|
||||
} else {
|
||||
delete index[action.key];
|
||||
}
|
||||
}
|
||||
|
||||
var updated_core = {};
|
||||
updated_core[action.index_name] = index;
|
||||
var updated_core = {};
|
||||
updated_core[action.index_name] = index;
|
||||
|
||||
return Object.assign({}, core, updated_core);
|
||||
return { ...core, ...updated_core };
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
/**
|
||||
* Playlists
|
||||
**/
|
||||
* */
|
||||
|
||||
case 'PLAYLIST_TRACKS':
|
||||
var playlists = Object.assign({}, core.playlists)
|
||||
var playlist = Object.assign({}, playlists[action.key], { tracks_uris: action.tracks_uris })
|
||||
case 'PLAYLIST_TRACKS':
|
||||
var playlists = { ...core.playlists };
|
||||
var playlist = { ...playlists[action.key], tracks_uris: action.tracks_uris };
|
||||
|
||||
playlists[action.key] = playlist
|
||||
return Object.assign({}, core, { playlists: playlists });
|
||||
playlists[action.key] = playlist;
|
||||
return { ...core, playlists };
|
||||
|
||||
case 'LIBRARY_PLAYLISTS_LOADED':
|
||||
if (core.library_playlists){
|
||||
var library_playlists = [...core.library_playlists, ...action.uris]
|
||||
} else {
|
||||
var library_playlists = action.uris
|
||||
}
|
||||
case 'LIBRARY_PLAYLISTS_LOADED':
|
||||
if (core.library_playlists) {
|
||||
var library_playlists = [...core.library_playlists, ...action.uris];
|
||||
} else {
|
||||
var library_playlists = action.uris;
|
||||
}
|
||||
|
||||
library_playlists = helpers.removeDuplicates(library_playlists)
|
||||
library_playlists = helpers.removeDuplicates(library_playlists);
|
||||
|
||||
return Object.assign({}, core, {
|
||||
library_playlists: library_playlists,
|
||||
library_playlists_started: true
|
||||
});
|
||||
return {
|
||||
...core,
|
||||
library_playlists,
|
||||
library_playlists_started: true,
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
/**
|
||||
* Genres
|
||||
**/
|
||||
* */
|
||||
|
||||
case 'SPOTIFY_GENRES_LOADED':
|
||||
return Object.assign({}, core, {genres: action.genres})
|
||||
case 'SPOTIFY_GENRES_LOADED':
|
||||
return { ...core, genres: action.genres };
|
||||
|
||||
|
||||
/**
|
||||
/**
|
||||
* Search results
|
||||
**/
|
||||
* */
|
||||
|
||||
case 'SEARCH_STARTED':
|
||||
return Object.assign({}, core, {
|
||||
search_results: {
|
||||
artists_uris: [],
|
||||
albums_uris: [],
|
||||
playlists_uris: [],
|
||||
tracks: [],
|
||||
}
|
||||
});
|
||||
case 'SEARCH_STARTED':
|
||||
return {
|
||||
...core,
|
||||
search_results: {
|
||||
artists_uris: [],
|
||||
albums_uris: [],
|
||||
playlists_uris: [],
|
||||
tracks: [],
|
||||
},
|
||||
};
|
||||
|
||||
case 'SEARCH_RESULTS_LOADED':
|
||||
case 'SEARCH_RESULTS_LOADED':
|
||||
|
||||
// artists
|
||||
if (core.search_results && core.search_results.artists_uris){
|
||||
var artists_uris = core.search_results.artists_uris
|
||||
} else {
|
||||
var artists_uris = []
|
||||
}
|
||||
if (action.artists_uris) artists_uris = [...artists_uris, ...action.artists_uris]
|
||||
// artists
|
||||
if (core.search_results && core.search_results.artists_uris) {
|
||||
var { artists_uris } = core.search_results;
|
||||
} else {
|
||||
var artists_uris = [];
|
||||
}
|
||||
if (action.artists_uris) artists_uris = [...artists_uris, ...action.artists_uris];
|
||||
|
||||
// more tracks
|
||||
if (typeof(action.artists_more) !== 'undefined') var artists_more = action.artists_more
|
||||
else if (core.search_results && core.search_results.artists_more) var artists_more = core.search_results.artists_more
|
||||
else var artists_more = null
|
||||
// more tracks
|
||||
if (typeof (action.artists_more) !== 'undefined') var { artists_more } = action;
|
||||
else if (core.search_results && core.search_results.artists_more) var { artists_more } = core.search_results;
|
||||
else var artists_more = null;
|
||||
|
||||
|
||||
// albums
|
||||
if (core.search_results && core.search_results.albums_uris){
|
||||
var albums_uris = core.search_results.albums_uris
|
||||
} else {
|
||||
var albums_uris = []
|
||||
}
|
||||
if (action.albums_uris) albums_uris = [...albums_uris, ...action.albums_uris]
|
||||
// albums
|
||||
if (core.search_results && core.search_results.albums_uris) {
|
||||
var { albums_uris } = core.search_results;
|
||||
} else {
|
||||
var albums_uris = [];
|
||||
}
|
||||
if (action.albums_uris) albums_uris = [...albums_uris, ...action.albums_uris];
|
||||
|
||||
// more tracks
|
||||
if (typeof(action.albums_more) !== 'undefined') var albums_more = action.albums_more
|
||||
else if (core.search_results && core.search_results.albums_more) var albums_more = core.search_results.albums_more
|
||||
else var albums_more = null
|
||||
// more tracks
|
||||
if (typeof (action.albums_more) !== 'undefined') var { albums_more } = action;
|
||||
else if (core.search_results && core.search_results.albums_more) var { albums_more } = core.search_results;
|
||||
else var albums_more = null;
|
||||
|
||||
|
||||
// playlists
|
||||
if (core.search_results && core.search_results.playlists_uris){
|
||||
var playlists_uris = core.search_results.playlists_uris
|
||||
} else {
|
||||
var playlists_uris = []
|
||||
}
|
||||
if (action.playlists_uris) playlists_uris = [...playlists_uris, ...action.playlists_uris]
|
||||
// playlists
|
||||
if (core.search_results && core.search_results.playlists_uris) {
|
||||
var { playlists_uris } = core.search_results;
|
||||
} else {
|
||||
var playlists_uris = [];
|
||||
}
|
||||
if (action.playlists_uris) playlists_uris = [...playlists_uris, ...action.playlists_uris];
|
||||
|
||||
// more tracks
|
||||
if (typeof(action.playlists_more) !== 'undefined') var playlists_more = action.playlists_more
|
||||
else if (core.search_results && core.search_results.playlists_more) var playlists_more = core.search_results.playlists_more
|
||||
else var playlists_more = null
|
||||
// more tracks
|
||||
if (typeof (action.playlists_more) !== 'undefined') var { playlists_more } = action;
|
||||
else if (core.search_results && core.search_results.playlists_more) var { playlists_more } = core.search_results;
|
||||
else var playlists_more = null;
|
||||
|
||||
|
||||
// tracks
|
||||
if (core.search_results && core.search_results.tracks){
|
||||
var tracks = core.search_results.tracks
|
||||
} else {
|
||||
var tracks = []
|
||||
}
|
||||
if (action.tracks) tracks = [...tracks, ...helpers.formatTracks(action.tracks)]
|
||||
// tracks
|
||||
if (core.search_results && core.search_results.tracks) {
|
||||
var { tracks } = core.search_results;
|
||||
} else {
|
||||
var tracks = [];
|
||||
}
|
||||
if (action.tracks) tracks = [...tracks, ...helpers.formatTracks(action.tracks)];
|
||||
|
||||
// more tracks
|
||||
if (typeof(action.tracks_more) !== 'undefined') var tracks_more = action.tracks_more
|
||||
else if (core.search_results && core.search_results.tracks_more) var tracks_more = core.search_results.tracks_more
|
||||
else var tracks_more = null
|
||||
// more tracks
|
||||
if (typeof (action.tracks_more) !== 'undefined') var { tracks_more } = action;
|
||||
else if (core.search_results && core.search_results.tracks_more) var { tracks_more } = core.search_results;
|
||||
else var tracks_more = null;
|
||||
|
||||
return Object.assign({}, core, {
|
||||
search_results: {
|
||||
artists_more: artists_more,
|
||||
artists_uris: helpers.removeDuplicates(artists_uris),
|
||||
albums_more: albums_more,
|
||||
albums_uris: helpers.removeDuplicates(albums_uris),
|
||||
playlists_more: playlists_more,
|
||||
playlists_uris: helpers.removeDuplicates(playlists_uris),
|
||||
tracks: tracks,
|
||||
tracks_more: tracks_more
|
||||
}
|
||||
});
|
||||
return {
|
||||
...core,
|
||||
search_results: {
|
||||
artists_more,
|
||||
artists_uris: helpers.removeDuplicates(artists_uris),
|
||||
albums_more,
|
||||
albums_uris: helpers.removeDuplicates(albums_uris),
|
||||
playlists_more,
|
||||
playlists_uris: helpers.removeDuplicates(playlists_uris),
|
||||
tracks,
|
||||
tracks_more,
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
default:
|
||||
return core
|
||||
}
|
||||
default:
|
||||
return core;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user