diff --git a/lib/index.js b/lib/index.js index a9ec4f8..d8bd209 100644 --- a/lib/index.js +++ b/lib/index.js @@ -50,12 +50,13 @@ async function sanitizeDiscoverParams(params) { }; if (sanitized.sortBy !== 'rec') { // following only valid when sortBy is not 'rec' (artist-recommend) - if (params.subgenre !== undefined && getOptionValue(options.subgenres[sanitized.genre], params.subgenre) !== null) { - sanitized.subgenre = params.subgenre; + const subgenreOptions = options.subgenres[sanitized.genre]; + if (subgenreOptions) { // false if genre is 'all' + sanitized.subgenre = getOptionValue(subgenreOptions, params.subgenre); } - if (sanitized.subgenre === undefined) { - // 'time' only valid when 'subgenre' is not set - sanitized.time = getOptionValue(options.times, params.time); + const timeAllowed = sanitized.subgenre === undefined || sanitized.subgenre === subgenreOptions[0].value; + if (timeAllowed) { + sanitized.time = getOptionValue(options.times, params.time); } sanitized.location = getOptionValue(options.locations, params.location); sanitized.format = getOptionValue(options.formats, params.format);