From 94f1a8097a2e6f5ac74849b18d2fd987a1f908cb Mon Sep 17 00:00:00 2001 From: Wizzard <25581244+Wizzard@users.noreply.toomuchslop.com> Date: Fri, 14 Jul 2023 12:54:16 -0400 Subject: [PATCH] logging and not crashing on dumb shit --- main.js | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/main.js b/main.js index acf9aae..3480f0e 100644 --- a/main.js +++ b/main.js @@ -78,6 +78,8 @@ async function updateStatus() { } async function fetchCurrentScrobble(user) { + let lastTrackName; + let lastArtist; try { const optionsGetTrack = { uri: "http://ws.audioscrobbler.com/2.0/", @@ -93,8 +95,13 @@ async function fetchCurrentScrobble(user) { const lastTrack = await fetch(optionsGetTrack); - let lastArtist = lastTrack.recenttracks.track[0].artist["#text"]; - let lastTrackName = lastTrack.recenttracks.track[0].name; + if (!lastTrack.recenttracks.track[0]) { + console.error("No track data in recenttracks"); + return null; + } + + lastArtist = lastTrack.recenttracks.track[0].artist["#text"]; + lastTrackName = lastTrack.recenttracks.track[0].name; const options = { uri: "http://ws.audioscrobbler.com/2.0/", @@ -111,6 +118,11 @@ async function fetchCurrentScrobble(user) { const rData = await fetch(options); + if (!rData.track) { + console.error("No track data in track.getInfo for track: " + lastTrackName + " by artist: " + lastArtist); + return null; + } + let images = lastTrack.recenttracks.track[0].image; let coverURL = images && images[images.length - 1]["#text"].trim() ? images[images.length - 1]["#text"].trim() : "default_cover"; @@ -127,8 +139,7 @@ async function fetchCurrentScrobble(user) { return data; } catch (error) { - console.error("Failed to fetch current scrobble:", error); + console.error("Failed to fetch current scrobble for track: " + lastTrackName + " by artist: " + lastArtist, error); return null; } -} - +} \ No newline at end of file