diff --git a/server/scripts/index.mjs b/server/scripts/index.mjs index bd7eea7..40021eb 100644 --- a/server/scripts/index.mjs +++ b/server/scripts/index.mjs @@ -126,6 +126,7 @@ const init = () => { }; const autocompleteOnSelect = async (suggestion) => { + // Note: it's fine that this uses json instead of safeJson since it's infrequent and user-initiated const data = await json('https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/find', { data: { text: suggestion.value, diff --git a/server/scripts/modules/autocomplete.mjs b/server/scripts/modules/autocomplete.mjs index 5642ba7..ce54453 100644 --- a/server/scripts/modules/autocomplete.mjs +++ b/server/scripts/modules/autocomplete.mjs @@ -192,7 +192,7 @@ class AutoComplete { let result = this.cachedResponses[search]; if (!result) { - // make the request + // make the request; using json here instead of safeJson is fine because it's infrequent and user-initiated const resultRaw = await json(url); // use the provided parser diff --git a/server/scripts/modules/media.mjs b/server/scripts/modules/media.mjs index 9199340..353451e 100644 --- a/server/scripts/modules/media.mjs +++ b/server/scripts/modules/media.mjs @@ -20,45 +20,44 @@ document.addEventListener('DOMContentLoaded', () => { }); const scanMusicDirectory = async () => { - const parseDirectory = async (path, prefix = "") => { - const listing = await text(path); - const matches = [...listing.matchAll(/href="([^\"]+\.mp3)"/gi)]; - return matches.map((m) => `${prefix}${m[1]}`); - }; + const parseDirectory = async (path, prefix = '') => { + const listing = await text(path); + const matches = [...listing.matchAll(/href="([^"]+\.mp3)"/gi)]; + return matches.map((m) => `${prefix}${m[1]}`); + }; - try { - let files = await parseDirectory("music/"); - if (files.length === 0) { - files = await parseDirectory("music/default/", "default/"); - } - return { availableFiles: files }; - } catch (e) { - console.error("Unable to scan music directory"); - console.error(e); - return { availableFiles: [] }; - } + try { + let files = await parseDirectory('music/'); + if (files.length === 0) { + files = await parseDirectory('music/default/', 'default/'); + } + return { availableFiles: files }; + } catch (e) { + console.error('Unable to scan music directory'); + console.error(e); + return { availableFiles: [] }; + } }; - const getMedia = async () => { - try { - const response = await fetch('playlist.json'); - if (response.ok) { - playlist = await response.json(); - } else if (response.status === 404 - && response.headers.get('X-Weatherstar') === 'true') { - console.warn("Couldn't get playlist.json, falling back to directory scan"); - playlist = await scanMusicDirectory(); - } else { - console.warn(`Couldn't get playlist.json: ${response.status} ${response.statusText}`); - playlist = { availableFiles: [] }; - } - } catch (e) { - console.warn("Couldn't get playlist.json, falling back to directory scan"); - playlist = await scanMusicDirectory(); - } + try { + const response = await fetch('playlist.json'); + if (response.ok) { + playlist = await response.json(); + } else if (response.status === 404 + && response.headers.get('X-Weatherstar') === 'true') { + console.warn("Couldn't get playlist.json, falling back to directory scan"); + playlist = await scanMusicDirectory(); + } else { + console.warn(`Couldn't get playlist.json: ${response.status} ${response.statusText}`); + playlist = { availableFiles: [] }; + } + } catch (e) { + console.warn("Couldn't get playlist.json, falling back to directory scan"); + playlist = await scanMusicDirectory(); + } - enableMediaPlayer(); + enableMediaPlayer(); }; const enableMediaPlayer = () => { @@ -219,11 +218,11 @@ const playerEnded = () => { }; const setTrackName = (fileName) => { - const baseName = fileName.split('/').pop(); - const trackName = decodeURIComponent( - baseName.replace(/\.mp3/gi, '').replace(/(_-)/gi, '') - ); - document.getElementById('musicTrack').innerHTML = trackName; + const baseName = fileName.split('/').pop(); + const trackName = decodeURIComponent( + baseName.replace(/\.mp3/gi, '').replace(/(_-)/gi, ''), + ); + document.getElementById('musicTrack').innerHTML = trackName; }; export {