diff --git a/index.html b/index.html
index b6935d4..6ce63ef 100644
--- a/index.html
+++ b/index.html
@@ -919,7 +919,7 @@
>
@@ -1697,7 +1697,7 @@
diff --git a/js/accounts/pocketbase.js b/js/accounts/pocketbase.js
index a217b09..f52a4e0 100644
--- a/js/accounts/pocketbase.js
+++ b/js/accounts/pocketbase.js
@@ -459,7 +459,7 @@ const syncManager = {
user_playlists: this.safeParseInternal(record.user_playlists, 'user_playlists', {}),
favorite_albums: this.safeParseInternal(record.favorite_albums, 'favorite_albums', []),
};
- } catch (error) {
+ } catch {
return null;
}
},
@@ -485,7 +485,7 @@ const syncManager = {
try {
const list = await this.pb.collection('DB_users').getList(1, 1, { filter: `username="${username}"` });
return list.totalItems > 0;
- } catch (e) {
+ } catch {
return false;
}
},
diff --git a/js/app.js b/js/app.js
index e9d37b3..78bfddf 100644
--- a/js/app.js
+++ b/js/app.js
@@ -2287,7 +2287,6 @@ document.addEventListener('DOMContentLoaded', async () => {
if (contextMenu.style.display === 'block') {
const track = contextMenu._contextTrack;
const albumItem = contextMenu.querySelector('[data-action="go-to-album"]');
- const artistItem = contextMenu.querySelector('[data-action="go-to-artist"]');
if (track) {
if (albumItem) {
diff --git a/js/playlist-importer.js b/js/playlist-importer.js
index 24675d6..201f4c4 100644
--- a/js/playlist-importer.js
+++ b/js/playlist-importer.js
@@ -198,7 +198,7 @@ export async function parseCSV(csvText, api, onProgress) {
} else {
missingTracks.push({ title: trackTitle, artist: artistNames, album: albumName });
}
- } catch (e) {
+ } catch {
missingTracks.push({ title: trackTitle, artist: artistNames, album: albumName });
}
}
@@ -255,7 +255,7 @@ export async function parseJSPF(jspfText, api, onProgress) {
} else {
missingTracks.push({ title: trackTitle, artist: trackCreator, album: trackAlbum });
}
- } catch (e) {
+ } catch {
missingTracks.push({ title: trackTitle, artist: trackCreator, album: trackAlbum });
}
}
@@ -319,7 +319,7 @@ export async function parseXSPF(xspfText, api, onProgress) {
} else {
missingTracks.push({ title, artist: creator, album });
}
- } catch (e) {
+ } catch {
missingTracks.push({ title, artist: creator, album });
}
}
@@ -397,7 +397,7 @@ export async function parseXML(xmlText, api, onProgress) {
} else {
missingTracks.push({ title, artist, album });
}
- } catch (e) {
+ } catch {
missingTracks.push({ title, artist, album });
}
}
@@ -472,7 +472,7 @@ export async function parseM3U(m3uText, api, onProgress) {
} else {
missingTracks.push({ title: info.title, artist: info.artist, album: '' });
}
- } catch (e) {
+ } catch {
missingTracks.push({ title: info.title, artist: info.artist, album: '' });
}
}
diff --git a/js/profile.js b/js/profile.js
index 3d5153b..39b40fc 100644
--- a/js/profile.js
+++ b/js/profile.js
@@ -33,7 +33,6 @@ const saveProfileBtn = document.getElementById('edit-profile-save');
const cancelProfileBtn = document.getElementById('edit-profile-cancel');
const usernameError = document.getElementById('username-error');
-let currentProfileUsername = null;
let currentFavoriteAlbums = [];
const api = new MusicAPI(apiSettings);
@@ -103,7 +102,7 @@ function setupImageUploadControl(idPrefix) {
setTimeout(() => {
statusEl.style.display = 'none';
}, 2000);
- } catch (error) {
+ } catch {
statusEl.textContent = 'Failed - try URL';
statusEl.style.color = '#ef4444';
} finally {
@@ -170,8 +169,6 @@ export async function loadProfile(username) {
return;
}
- currentProfileUsername = username;
-
document.getElementById('profile-display-name').textContent = profile.display_name || username;
if (profile.banner) document.getElementById('profile-banner').style.backgroundImage = `url('${profile.banner}')`;
if (profile.avatar_url) document.getElementById('profile-avatar').src = profile.avatar_url;
@@ -233,8 +230,6 @@ export async function loadProfile(username) {
}
}
- const dataSource = profile.profile_data_source || (profile.lastfm_username ? 'lastfm' : null);
-
if (profile.lastfm_username && profile.privacy?.lastfm !== 'private') {
const lfmEl = document.getElementById('profile-lastfm');
lfmEl.href = `https://last.fm/user/${profile.lastfm_username}`;
@@ -856,7 +851,7 @@ async function fetchFallbackCover(title, artist, imgId) {
if (!foundCover) {
await fetchFallbackArtistImage(artist, imgId);
}
- } catch (e) {
+ } catch {
await fetchFallbackArtistImage(artist, imgId);
}
}
@@ -883,7 +878,7 @@ async function fetchFallbackAlbumCover(title, artist, imgId) {
if (!foundCover) {
await fetchFallbackArtistImage(artist, imgId);
}
- } catch (e) {
+ } catch {
await fetchFallbackArtistImage(artist, imgId);
}
}
@@ -900,7 +895,9 @@ async function fetchFallbackArtistImage(artistName, imgId) {
if (imgEl) imgEl.src = newUrl;
}
}
- } catch (e) {}
+ } catch {
+ // Silently ignore errors
+ }
}
async function fetchLastFmRecentTracks(username) {
diff --git a/js/settings.js b/js/settings.js
index 8877696..8dbbdf2 100644
--- a/js/settings.js
+++ b/js/settings.js
@@ -59,7 +59,6 @@ export function initializeSettings(scrobbler, player, api, ui) {
const toggleEmailBtn = document.getElementById('toggle-email-auth-btn');
const cancelEmailBtn = document.getElementById('cancel-email-auth-btn');
const authModal = document.getElementById('email-auth-modal');
- const authButtonsContainer = document.getElementById('auth-buttons-container');
const emailInput = document.getElementById('auth-email');
const passwordInput = document.getElementById('auth-password');
const signInBtn = document.getElementById('email-signin-btn');
diff --git a/js/storage.js b/js/storage.js
index 135e0b7..f2f05bd 100644
--- a/js/storage.js
+++ b/js/storage.js
@@ -29,7 +29,7 @@ export const apiSettings = {
if (isSimpleArray) {
groupedInstances.api = [...data.api];
} else {
- for (const [_key, config] of Object.entries(data.api)) {
+ for (const [, config] of Object.entries(data.api)) {
if (config.cors === false && Array.isArray(config.urls)) {
groupedInstances.api.push(...config.urls);
}
diff --git a/js/ui.js b/js/ui.js
index 72d17da..56356eb 100644
--- a/js/ui.js
+++ b/js/ui.js
@@ -327,7 +327,6 @@ export class UIRenderer {
const trackNumberHTML = `
${showCover ? trackImageHTML : displayIndex}
`;
const explicitBadge = hasExplicitContent(track) ? this.createExplicitBadge() : '';
const qualityBadge = createQualityBadgeHTML(track);
- const trackArtists = getTrackArtists(track);
const trackTitle = getTrackTitle(track);
const isCurrentTrack = this.player?.currentTrack?.id === track.id;
@@ -3746,13 +3745,9 @@ export class UIRenderer {
const albumSection = document.getElementById('track-album-section');
const albumTracksContainer = document.getElementById('track-detail-album-tracks');
const similarSection = document.getElementById('track-similar-section');
- const similarTracksContainer = document.getElementById('track-detail-similar-tracks');
const playBtn = document.getElementById('play-track-btn');
- const lyricsBtn = document.getElementById('track-lyrics-btn');
- const shareBtn = document.getElementById('share-track-btn');
const likeBtn = document.getElementById('like-track-btn');
- const downloadBtn = document.getElementById('download-track-btn');
imageEl.src = '';
imageEl.style.backgroundColor = 'var(--muted)';
diff --git a/styles.css b/styles.css
index 02441b0..f0b13fa 100644
--- a/styles.css
+++ b/styles.css
@@ -7517,31 +7517,3 @@ textarea:focus {
text-align: left;
justify-content: flex-start;
}
-
-.dropdown-menu {
- display: none;
- position: absolute;
- top: 100%;
- left: 0;
- background: var(--card);
- border: 1px solid var(--border);
- border-radius: var(--radius);
- padding: 0.5rem;
- z-index: 2000;
- min-width: 200px;
- margin-top: 0.5rem;
- box-shadow: var(--shadow-lg);
- flex-direction: column;
- gap: 0.25rem;
-}
-
-.dropdown-menu.active {
- display: flex;
- animation: scale-in 0.1s ease-out;
-}
-
-.dropdown-menu button {
- width: 100%;
- text-align: left;
- justify-content: flex-start;
-}