fix issues. now use set for lovingTracks, lbid album check, const and let var fix
This commit is contained in:
parent
27c2a7b092
commit
c3c3005428
1 changed files with 9 additions and 8 deletions
|
|
@ -8,7 +8,7 @@ export class ListenBrainzScrobbler {
|
||||||
this.scrobbleThreshold = 0;
|
this.scrobbleThreshold = 0;
|
||||||
this.hasScrobbled = false;
|
this.hasScrobbled = false;
|
||||||
this.isScrobbling = false;
|
this.isScrobbling = false;
|
||||||
this.isLoving = false;
|
this.lovingTracks = new Set();
|
||||||
}
|
}
|
||||||
|
|
||||||
getApiUrl() {
|
getApiUrl() {
|
||||||
|
|
@ -86,7 +86,7 @@ export class ListenBrainzScrobbler {
|
||||||
}
|
}
|
||||||
|
|
||||||
async _lookupMbids(track) {
|
async _lookupMbids(track) {
|
||||||
if (track.mbids) return track.mbids;
|
if (track.mbids?.recording_mbid) return track.mbids;
|
||||||
let with_album = true;
|
let with_album = true;
|
||||||
const metadata = this._getMetadata(track);
|
const metadata = this._getMetadata(track);
|
||||||
if (!metadata || !metadata.artist_name || !metadata.track_name) return null;
|
if (!metadata || !metadata.artist_name || !metadata.track_name) return null;
|
||||||
|
|
@ -102,7 +102,7 @@ export class ListenBrainzScrobbler {
|
||||||
params.append('release_name', track.album.title);
|
params.append('release_name', track.album.title);
|
||||||
}
|
}
|
||||||
|
|
||||||
const response = await fetch(`${apiUrl}/1/metadata/lookup/?${params}`, {
|
let response = await fetch(`${apiUrl}/1/metadata/lookup/?${params}`, {
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
headers: {
|
headers: {
|
||||||
Authorization: `Token ${this.getToken()}`,
|
Authorization: `Token ${this.getToken()}`,
|
||||||
|
|
@ -116,7 +116,7 @@ export class ListenBrainzScrobbler {
|
||||||
recording_name: metadata.track_name,
|
recording_name: metadata.track_name,
|
||||||
artist_name: metadata.artist_name,
|
artist_name: metadata.artist_name,
|
||||||
});
|
});
|
||||||
const response = await fetch(`${apiUrl}/1/metadata/lookup/?${params}`, {
|
response = await fetch(`${apiUrl}/1/metadata/lookup/?${params}`, {
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
headers: {
|
headers: {
|
||||||
Authorization: `Token ${this.getToken()}`,
|
Authorization: `Token ${this.getToken()}`,
|
||||||
|
|
@ -249,8 +249,9 @@ export class ListenBrainzScrobbler {
|
||||||
}
|
}
|
||||||
|
|
||||||
async loveTrack(track) {
|
async loveTrack(track) {
|
||||||
if (!this.isEnabled() || this.isLoving) return;
|
const trackKey = `${track.artist}-${track.title}`;
|
||||||
this.isLoving = true;
|
if (!this.isEnabled() || this.lovingTracks.has(trackKey)) return;
|
||||||
|
this.lovingTracks.add(trackKey);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const apiUrl = this.getApiUrl();
|
const apiUrl = this.getApiUrl();
|
||||||
|
|
@ -282,7 +283,7 @@ export class ListenBrainzScrobbler {
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('[ListenBrainz] Failed to love track:', error);
|
console.error('[ListenBrainz] Failed to love track:', error);
|
||||||
} finally {
|
} finally {
|
||||||
this.isLoving = false;
|
this.lovingTracks.delete(trackKey);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue