last.fm: initial implementation of filterAlbumName

This commit is contained in:
inalone 2022-02-22 01:22:00 +00:00
parent ddf8d05204
commit 1f7f2e2174
4 changed files with 20 additions and 3 deletions

View file

@ -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",

View file

@ -103,6 +103,7 @@ export class Store {
"scrobble_after": 30,
"auth_token": "",
"enabledRemoveFeaturingArtists": true,
"filterAlbumName": false,
"filterLoop": true,
"NowPlaying": "true"
},

View file

@ -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

View file

@ -606,6 +606,14 @@
<input type="checkbox" v-model="app.cfg.lastfm.enabledRemoveFeaturingArtists" switch/>
</div>
</div>
<div class="md-option-line" v-show="app.cfg.lastfm.enabled">
<div class="md-option-segment">
{{$root.getLz('settings.option.connectivity.lastfmScrobble.filterAlbumName')}}
</div>
<div class="md-option-segment md-option-segment_auto">
<input type="checkbox" v-model="app.cfg.lastfm.filterAlbumName" switch/>
</div>
</div>
<div class="md-option-line" v-show="app.cfg.lastfm.enabled">
<div class="md-option-segment">
{{$root.getLz('settings.option.connectivity.lastfmScrobble.filterLoop')}}
@ -617,7 +625,6 @@
</div>
<div class="md-option-header">
<span>{{$root.getLz('settings.header.debug')}}</span>
</div>