diff --git a/src/i18n/en_US.json b/src/i18n/en_US.json index 5a7043ff..24b9639f 100644 --- a/src/i18n/en_US.json +++ b/src/i18n/en_US.json @@ -331,6 +331,7 @@ "settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble Delay (%)", "settings.option.connectivity.lastfmScrobble.nowPlaying": "Enable Last.fm Now Playing", "settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (Last.fm)", + "settings.option.connectivity.lastfmScrobble.filterAlbumName": "Filter attributes from album name (Last.fm)", "settings.option.connectivity.lastfmScrobble.filterLoop": "Filter looped track (Last.fm)", "settings.header.debug": "Debug", "settings.option.debug.copy_log": "Copy logs to clipboard", diff --git a/src/main/base/store.ts b/src/main/base/store.ts index 4436b3fc..20cca9a3 100644 --- a/src/main/base/store.ts +++ b/src/main/base/store.ts @@ -103,6 +103,7 @@ export class Store { "scrobble_after": 30, "auth_token": "", "enabledRemoveFeaturingArtists": true, + "filterAlbumName": false, "filterLoop": true, "NowPlaying": "true" }, diff --git a/src/main/plugins/lastfm.ts b/src/main/plugins/lastfm.ts index a7433b8b..2ca26892 100644 --- a/src/main/plugins/lastfm.ts +++ b/src/main/plugins/lastfm.ts @@ -101,7 +101,7 @@ export default class LastFMPlugin { self._lastfm.track.scrobble({ 'artist': artist, 'track': attributes.name, - 'album': attributes.albumName, + 'album': this.getAlbumName(attributes), 'albumArtist': artist, 'timestamp': new Date().getTime() / 1000 }, function (err: any, scrobbled: any) { @@ -139,7 +139,7 @@ export default class LastFMPlugin { this._lastfm.track.updateNowPlaying({ 'artist': artist, 'track': attributes.name, - 'album': attributes.albumName, + 'album': this.getAlbumName(attributes), 'albumArtist': artist }, function (err: any, nowPlaying: any) { if (err) { @@ -156,6 +156,14 @@ export default class LastFMPlugin { } } + private getAlbumName(attributes: any): string { + if (!this._store.lastfm.filterAlbumName) { + return attributes.albumName; + } + + return attributes.albumName.replace(/ - Single| - EP/g, ''); + } + private async getPrimaryArtist(attributes: any) { const songId = attributes.playParams.catalogId || attributes.playParams.id diff --git a/src/renderer/views/pages/settings.ejs b/src/renderer/views/pages/settings.ejs index 2b85851c..7c1964e3 100644 --- a/src/renderer/views/pages/settings.ejs +++ b/src/renderer/views/pages/settings.ejs @@ -606,6 +606,14 @@ +
+
+ {{$root.getLz('settings.option.connectivity.lastfmScrobble.filterAlbumName')}} +
+
+ +
+
{{$root.getLz('settings.option.connectivity.lastfmScrobble.filterLoop')}} @@ -617,7 +625,6 @@
-
{{$root.getLz('settings.header.debug')}}