From 2d95978829ff396892bcdd76129e615a0fe458d2 Mon Sep 17 00:00:00 2001 From: Szymon Nowak Date: Tue, 15 Jul 2014 11:34:12 +0200 Subject: [PATCH 1/2] Allow to search for Spotify playlists by Spotify URI. Search query should look like e.g.: "spotify:user:spotify:playlist:2Qi8yAzfj1KavAhWz1gaem" --- webclient/js/library.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/webclient/js/library.js b/webclient/js/library.js index 1abf0e17..ec45d1b0 100644 --- a/webclient/js/library.js +++ b/webclient/js/library.js @@ -18,7 +18,7 @@ function initSearch() { if ((value.length < 100) && (value.length > 0)) { showLoading(true); - //hide ios/android keyboard + //hide ios/android keyboard document.activeElement.blur(); $("input").blur(); @@ -27,10 +27,19 @@ function initSearch() { delete customTracklists['albumresultscache']; delete customTracklists['trackresultscache']; $("#searchresults").hide(); - mopidy.library.search({ - any: [value] - }).then(processSearchResults, console.error); -// console.log('search sent', value); + + var query = {}, + uris = []; + + if (value.match(/^spotify:/)) { + query = {uri: [value]}; + uris = ["spotify:"]; + } else { + query = {any: [value]}; + } + + mopidy.library.search(query, uris).then(processSearchResults, console.error); + // console.log('search sent', value); } } From 736ebcee8094de27aded6b7b79a4095ba9b5556e Mon Sep 17 00:00:00 2001 From: Szymon Nowak Date: Tue, 15 Jul 2014 14:28:38 +0200 Subject: [PATCH 2/2] Allow to search by any supported URI scheme --- webclient/js/library.js | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/webclient/js/library.js b/webclient/js/library.js index ec45d1b0..ed39ba69 100644 --- a/webclient/js/library.js +++ b/webclient/js/library.js @@ -28,18 +28,26 @@ function initSearch() { delete customTracklists['trackresultscache']; $("#searchresults").hide(); - var query = {}, - uris = []; - - if (value.match(/^spotify:/)) { - query = {uri: [value]}; - uris = ["spotify:"]; - } else { - query = {any: [value]}; - } + mopidy.getUriSchemes().then(function (schemes) { + var query = {}, + uris = []; + + var regexp = $.map(schemes, function (scheme) { + return '^' + scheme + ':'; + }).join('|'); + + var match = value.match(regexp); + if (match) { + var scheme = match[0]; + query = {uri: [value]}; + uris = [scheme]; + } else { + query = {any: [value]}; + } - mopidy.library.search(query, uris).then(processSearchResults, console.error); - // console.log('search sent', value); + mopidy.library.search(query, uris).then(processSearchResults, console.error); + // console.log('search sent', value); + }); } }