loadUris to handle type-agnostic URIs
This commit is contained in:
@ -114741,7 +114741,7 @@ module.exports = JSON.parse("{\"name\":\"Svenska\",\"errors\":{\"uri_not_found\"
|
|||||||
/*!*****************************************!*\
|
/*!*****************************************!*\
|
||||||
!*** ./src/js/services/core/actions.js ***!
|
!*** ./src/js/services/core/actions.js ***!
|
||||||
\*****************************************/
|
\*****************************************/
|
||||||
/*! exports provided: handleException, debugResponse, set, resetState, clearCurrentTrack, clearStorage, restoreItemsFromColdStore, restoreLibraryFromColdStore, updateColdStore, startSearch, searchResultsLoaded, loadItems, loadItem, loadTrack, loadAlbum, loadArtist, loadPlaylist, loadUser, loadUserPlaylists, loadLibrary, addToLibrary, removeFromLibrary, libraryLoaded, unloadLibrary, itemsLoaded, itemLoaded, tracksLoaded, trackLoaded, artistsLoaded, albumsLoaded, albumLoaded, playlistsLoaded, playlistLoaded, usersLoaded, userLoaded, userPlaylistsLoaded, loadedMore, removeItem, streamTitleLoaded, streamTitleChanged, viewDataLoaded, reorderPlaylistTracks, savePlaylist, createPlaylist, deletePlaylist, removeTracksFromPlaylist, addTracksToPlaylist, getLibraryPlaylists, getLibraryAlbums, getLibraryArtists, addPinned, removePinned, updatePinned, updatePinnedUri */
|
/*! exports provided: handleException, debugResponse, set, resetState, clearCurrentTrack, clearStorage, restoreItemsFromColdStore, restoreLibraryFromColdStore, updateColdStore, startSearch, searchResultsLoaded, loadUris, loadUri, loadItems, loadItem, loadTrack, loadAlbum, loadArtist, loadPlaylist, loadUser, loadUserPlaylists, loadLibrary, addToLibrary, removeFromLibrary, libraryLoaded, unloadLibrary, itemsLoaded, itemLoaded, tracksLoaded, trackLoaded, artistsLoaded, albumsLoaded, albumLoaded, playlistsLoaded, playlistLoaded, usersLoaded, userLoaded, userPlaylistsLoaded, loadedMore, removeItem, streamTitleLoaded, streamTitleChanged, viewDataLoaded, reorderPlaylistTracks, savePlaylist, createPlaylist, deletePlaylist, removeTracksFromPlaylist, addTracksToPlaylist, getLibraryPlaylists, getLibraryAlbums, getLibraryArtists, addPinned, removePinned, updatePinned, updatePinnedUri */
|
||||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
@ -114757,6 +114757,8 @@ __webpack_require__.r(__webpack_exports__);
|
|||||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateColdStore", function() { return updateColdStore; });
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateColdStore", function() { return updateColdStore; });
|
||||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "startSearch", function() { return startSearch; });
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "startSearch", function() { return startSearch; });
|
||||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "searchResultsLoaded", function() { return searchResultsLoaded; });
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "searchResultsLoaded", function() { return searchResultsLoaded; });
|
||||||
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadUris", function() { return loadUris; });
|
||||||
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadUri", function() { return loadUri; });
|
||||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadItems", function() { return loadItems; });
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadItems", function() { return loadItems; });
|
||||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadItem", function() { return loadItem; });
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadItem", function() { return loadItem; });
|
||||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadTrack", function() { return loadTrack; });
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadTrack", function() { return loadTrack; });
|
||||||
@ -114915,6 +114917,19 @@ function searchResultsLoaded(query, resultType, results) {
|
|||||||
* relevant service to load the record - all from one neat package.
|
* relevant service to load the record - all from one neat package.
|
||||||
* */
|
* */
|
||||||
|
|
||||||
|
function loadUris() {
|
||||||
|
var uris = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
||||||
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||||||
|
return {
|
||||||
|
type: 'LOAD_URIS',
|
||||||
|
uris: uris,
|
||||||
|
options: options
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function loadUri(uri) {
|
||||||
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||||||
|
return loadUris([uri], options);
|
||||||
|
}
|
||||||
function loadItems(itemType) {
|
function loadItems(itemType) {
|
||||||
var uris = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
var uris = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
||||||
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
||||||
@ -115740,8 +115755,6 @@ var CoreMiddleware = function () {
|
|||||||
|
|
||||||
case 'LOAD_ITEMS':
|
case 'LOAD_ITEMS':
|
||||||
{
|
{
|
||||||
console.log(action);
|
|
||||||
|
|
||||||
var _action$uris = action.uris,
|
var _action$uris = action.uris,
|
||||||
_uris = _action$uris === void 0 ? [] : _action$uris,
|
_uris = _action$uris === void 0 ? [] : _action$uris,
|
||||||
options = action.options,
|
options = action.options,
|
||||||
@ -133916,13 +133929,11 @@ var Queue = /*#__PURE__*/function (_React$Component) {
|
|||||||
_defineProperty(_assertThisInitialized(_this), "componentDidUpdate", function (_ref2) {
|
_defineProperty(_assertThisInitialized(_this), "componentDidUpdate", function (_ref2) {
|
||||||
var prev_added_from_uri = _ref2.added_from_uri;
|
var prev_added_from_uri = _ref2.added_from_uri;
|
||||||
var _this$props = _this.props,
|
var _this$props = _this.props,
|
||||||
loadItem = _this$props.coreActions.loadItem,
|
loadUri = _this$props.coreActions.loadUri,
|
||||||
added_from_uri = _this$props.added_from_uri;
|
added_from_uri = _this$props.added_from_uri;
|
||||||
|
|
||||||
if (added_from_uri && added_from_uri !== prev_added_from_uri) {
|
if (added_from_uri && added_from_uri !== prev_added_from_uri) {
|
||||||
loadItem(added_from_uri, {
|
loadUri(added_from_uri);
|
||||||
full: false
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -136656,10 +136667,10 @@ var UriRedirect = /*#__PURE__*/function (_React$Component) {
|
|||||||
var _this$props = _this.props,
|
var _this$props = _this.props,
|
||||||
uri = _this$props.uri,
|
uri = _this$props.uri,
|
||||||
item = _this$props.item,
|
item = _this$props.item,
|
||||||
loadItem = _this$props.coreActions.loadItem;
|
loadUri = _this$props.coreActions.loadUri;
|
||||||
|
|
||||||
if (prevUri !== uri) {
|
if (prevUri !== uri) {
|
||||||
loadItem(uri);
|
loadUri(uri);
|
||||||
|
|
||||||
_this.setWindowTitle();
|
_this.setWindowTitle();
|
||||||
}
|
}
|
||||||
@ -136702,12 +136713,12 @@ var UriRedirect = /*#__PURE__*/function (_React$Component) {
|
|||||||
var _this$props4 = this.props,
|
var _this$props4 = this.props,
|
||||||
uri = _this$props4.uri,
|
uri = _this$props4.uri,
|
||||||
item = _this$props4.item,
|
item = _this$props4.item,
|
||||||
loadItem = _this$props4.coreActions.loadItem;
|
loadUri = _this$props4.coreActions.loadUri;
|
||||||
|
|
||||||
if (item) {
|
if (item) {
|
||||||
this.redirect();
|
this.redirect();
|
||||||
} else {
|
} else {
|
||||||
loadItem(uri);
|
loadUri(uri);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.setWindowTitle();
|
this.setWindowTitle();
|
||||||
@ -138115,13 +138126,13 @@ var Discover = /*#__PURE__*/function (_React$Component) {
|
|||||||
|
|
||||||
_defineProperty(_assertThisInitialized(_this), "handleURLSeeds", function () {
|
_defineProperty(_assertThisInitialized(_this), "handleURLSeeds", function () {
|
||||||
var _this$props2 = _this.props,
|
var _this$props2 = _this.props,
|
||||||
loadItems = _this$props2.coreActions.loadItems,
|
loadUris = _this$props2.coreActions.loadUris,
|
||||||
seedsProp = _this$props2.match.params.seeds; // Rejoin if we've had to uri-encode these as strings
|
seedsProp = _this$props2.match.params.seeds; // Rejoin if we've had to uri-encode these as strings
|
||||||
// We'd need to do this if our URL has been encoded so the whole URL can become
|
// We'd need to do this if our URL has been encoded so the whole URL can become
|
||||||
// it's own URI (eg iris:discover:spotify_artist_1234) where we can't use ":"
|
// it's own URI (eg iris:discover:spotify_artist_1234) where we can't use ":"
|
||||||
|
|
||||||
var seeds = seedsProp.split('_').join(':').split(',');
|
var seeds = seedsProp.split('_').join(':').split(',');
|
||||||
loadItems(seeds);
|
loadUris(seeds);
|
||||||
|
|
||||||
_this.setState({
|
_this.setState({
|
||||||
seeds: seeds
|
seeds: seeds
|
||||||
@ -141893,14 +141904,15 @@ var AddToQueue = /*#__PURE__*/function (_React$Component) {
|
|||||||
_this$props2$view$uri = _this$props2.view.uris,
|
_this$props2$view$uri = _this$props2.view.uris,
|
||||||
prevUris = _this$props2$view$uri === void 0 ? [] : _this$props2$view$uri,
|
prevUris = _this$props2$view$uri === void 0 ? [] : _this$props2$view$uri,
|
||||||
_this$props2$coreActi = _this$props2.coreActions,
|
_this$props2$coreActi = _this$props2.coreActions,
|
||||||
loadItem = _this$props2$coreActi.loadItem,
|
loadUri = _this$props2$coreActi.loadUri,
|
||||||
viewDataLoaded = _this$props2$coreActi.viewDataLoaded;
|
viewDataLoaded = _this$props2$coreActi.viewDataLoaded;
|
||||||
var uris = text.split(',');
|
var uris = text.split(','); // TODO: Remove validation
|
||||||
|
|
||||||
var validatedUris = uris.filter(function (uri) {
|
var validatedUris = uris.filter(function (uri) {
|
||||||
return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_9__["uriType"])(uri);
|
return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_9__["uriType"])(uri);
|
||||||
});
|
});
|
||||||
validatedUris.forEach(function (uri) {
|
validatedUris.forEach(function (uri) {
|
||||||
loadItem(uri);
|
loadUri(uri);
|
||||||
});
|
});
|
||||||
|
|
||||||
_this.setState({
|
_this.setState({
|
||||||
@ -143579,7 +143591,7 @@ var EditRadio = /*#__PURE__*/function (_React$Component) {
|
|||||||
var _this$state = _this.state,
|
var _this$state = _this.state,
|
||||||
uri = _this$state.uri,
|
uri = _this$state.uri,
|
||||||
seeds = _this$state.seeds;
|
seeds = _this$state.seeds;
|
||||||
var loadItem = _this.props.coreActions.loadItem;
|
var loadUri = _this.props.coreActions.loadUri;
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
if (uri === '') {
|
if (uri === '') {
|
||||||
@ -143620,7 +143632,7 @@ var EditRadio = /*#__PURE__*/function (_React$Component) {
|
|||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
validatedSeeds.push(uris[i]);
|
validatedSeeds.push(uris[i]);
|
||||||
loadItem(uris[i]);
|
loadUri(uris[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
85
mopidy_iris/static/app.min.css
vendored
Normal file
85
mopidy_iris/static/app.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
111
mopidy_iris/static/app.min.js
vendored
Normal file
111
mopidy_iris/static/app.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@ -106,7 +106,7 @@
|
|||||||
|
|
||||||
// Release details
|
// Release details
|
||||||
// These are automatically injected to built HTML
|
// These are automatically injected to built HTML
|
||||||
var build = "1610478481";
|
var build = "1610772376";
|
||||||
var version = "3.55.5";
|
var version = "3.55.5";
|
||||||
|
|
||||||
// Construct the script tag
|
// Construct the script tag
|
||||||
|
|||||||
@ -119,6 +119,18 @@ export function searchResultsLoaded(query, resultType, results) {
|
|||||||
* relevant service to load the record - all from one neat package.
|
* relevant service to load the record - all from one neat package.
|
||||||
* */
|
* */
|
||||||
|
|
||||||
|
export function loadUris(uris = [], options = {}) {
|
||||||
|
return {
|
||||||
|
type: 'LOAD_URIS',
|
||||||
|
uris,
|
||||||
|
options,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export function loadUri(uri, options = {}) {
|
||||||
|
return loadUris([uri], options);
|
||||||
|
}
|
||||||
|
|
||||||
export function loadItems(itemType, uris = [], options = {}) {
|
export function loadItems(itemType, uris = [], options = {}) {
|
||||||
return {
|
return {
|
||||||
type: 'LOAD_ITEMS',
|
type: 'LOAD_ITEMS',
|
||||||
|
|||||||
@ -351,7 +351,6 @@ const CoreMiddleware = (function () {
|
|||||||
* we need to LOAD_URI to ascertain this first.
|
* we need to LOAD_URI to ascertain this first.
|
||||||
* */
|
* */
|
||||||
case 'LOAD_ITEMS': {
|
case 'LOAD_ITEMS': {
|
||||||
console.log(action);
|
|
||||||
const { uris = [], options, itemType = 'uri' } = action;
|
const { uris = [], options, itemType = 'uri' } = action;
|
||||||
|
|
||||||
uris.forEach((uri) => {
|
uris.forEach((uri) => {
|
||||||
|
|||||||
@ -83,13 +83,13 @@ class Queue extends React.Component {
|
|||||||
}) => {
|
}) => {
|
||||||
const {
|
const {
|
||||||
coreActions: {
|
coreActions: {
|
||||||
loadItem,
|
loadUri,
|
||||||
},
|
},
|
||||||
added_from_uri,
|
added_from_uri,
|
||||||
} = this.props;
|
} = this.props;
|
||||||
|
|
||||||
if (added_from_uri && added_from_uri !== prev_added_from_uri) {
|
if (added_from_uri && added_from_uri !== prev_added_from_uri) {
|
||||||
loadItem(added_from_uri, { full: false });
|
loadUri(added_from_uri);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -14,14 +14,14 @@ class UriRedirect extends React.Component {
|
|||||||
uri,
|
uri,
|
||||||
item,
|
item,
|
||||||
coreActions: {
|
coreActions: {
|
||||||
loadItem,
|
loadUri,
|
||||||
},
|
},
|
||||||
} = this.props;
|
} = this.props;
|
||||||
|
|
||||||
if (item) {
|
if (item) {
|
||||||
this.redirect();
|
this.redirect();
|
||||||
} else {
|
} else {
|
||||||
loadItem(uri);
|
loadUri(uri);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.setWindowTitle();
|
this.setWindowTitle();
|
||||||
@ -34,12 +34,12 @@ class UriRedirect extends React.Component {
|
|||||||
uri,
|
uri,
|
||||||
item,
|
item,
|
||||||
coreActions: {
|
coreActions: {
|
||||||
loadItem,
|
loadUri,
|
||||||
},
|
},
|
||||||
} = this.props;
|
} = this.props;
|
||||||
|
|
||||||
if (prevUri !== uri) {
|
if (prevUri !== uri) {
|
||||||
loadItem(uri);
|
loadUri(uri);
|
||||||
this.setWindowTitle();
|
this.setWindowTitle();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -213,7 +213,7 @@ class Discover extends React.Component {
|
|||||||
handleURLSeeds = () => {
|
handleURLSeeds = () => {
|
||||||
const {
|
const {
|
||||||
coreActions: {
|
coreActions: {
|
||||||
loadItems,
|
loadUris,
|
||||||
},
|
},
|
||||||
match: {
|
match: {
|
||||||
params: {
|
params: {
|
||||||
@ -226,7 +226,7 @@ class Discover extends React.Component {
|
|||||||
// We'd need to do this if our URL has been encoded so the whole URL can become
|
// We'd need to do this if our URL has been encoded so the whole URL can become
|
||||||
// it's own URI (eg iris:discover:spotify_artist_1234) where we can't use ":"
|
// it's own URI (eg iris:discover:spotify_artist_1234) where we can't use ":"
|
||||||
const seeds = seedsProp.split('_').join(':').split(',');
|
const seeds = seedsProp.split('_').join(':').split(',');
|
||||||
loadItems(seeds);
|
loadUris(seeds);
|
||||||
|
|
||||||
this.setState(
|
this.setState(
|
||||||
{ seeds },
|
{ seeds },
|
||||||
|
|||||||
@ -121,15 +121,16 @@ class AddToQueue extends React.Component {
|
|||||||
uris: prevUris = [],
|
uris: prevUris = [],
|
||||||
},
|
},
|
||||||
coreActions: {
|
coreActions: {
|
||||||
loadItem,
|
loadUri,
|
||||||
viewDataLoaded,
|
viewDataLoaded,
|
||||||
},
|
},
|
||||||
} = this.props;
|
} = this.props;
|
||||||
const uris = text.split(',');
|
const uris = text.split(',');
|
||||||
|
|
||||||
|
// TODO: Remove validation
|
||||||
const validatedUris = uris.filter((uri) => uriType(uri));
|
const validatedUris = uris.filter((uri) => uriType(uri));
|
||||||
validatedUris.forEach((uri) => {
|
validatedUris.forEach((uri) => {
|
||||||
loadItem(uri);
|
loadUri(uri);
|
||||||
});
|
});
|
||||||
|
|
||||||
this.setState({ text: '' });
|
this.setState({ text: '' });
|
||||||
|
|||||||
@ -136,7 +136,7 @@ class EditRadio extends React.Component {
|
|||||||
} = this.state;
|
} = this.state;
|
||||||
const {
|
const {
|
||||||
coreActions: {
|
coreActions: {
|
||||||
loadItem,
|
loadUri,
|
||||||
},
|
},
|
||||||
} = this.props;
|
} = this.props;
|
||||||
|
|
||||||
@ -165,7 +165,7 @@ class EditRadio extends React.Component {
|
|||||||
this.setState({ error_message: i18n('modal.edit_radio.too_many_seeds') });
|
this.setState({ error_message: i18n('modal.edit_radio.too_many_seeds') });
|
||||||
} else {
|
} else {
|
||||||
validatedSeeds.push(uris[i]);
|
validatedSeeds.push(uris[i]);
|
||||||
loadItem(uris[i]);
|
loadUri(uris[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user