diff --git a/src/renderer/views/components/settings-window.ejs b/src/renderer/views/components/settings-window.ejs index 6c784a72..013e1b72 100644 --- a/src/renderer/views/components/settings-window.ejs +++ b/src/renderer/views/components/settings-window.ejs @@ -994,18 +994,18 @@
-
+
{{$root.getLz('settings.option.connectivity.discordRPC.clientName')}}
-
+
{{$root.getLz('settings.option.connectivity.discordRPC.clearOnPause')}}
-
+
{{$root.getLz('settings.option.connectivity.discordRPC.hideButtons')}}
-
+
{{$root.getLz('settings.option.connectivity.discordRPC.hideTimestamp')}}
-
+
{{$root.getLz('settings.option.connectivity.discordRPC.detailsFormat')}}
{{$root.getLz('term.variables')}}: {artist}, {composer}, {title}, {album}, @@ -1055,12 +1055,12 @@
-
+
{{$root.getLz('settings.option.connectivity.discordRPC.stateFormat')}} {{$root.getLz('term.variables')}}: {artist}, {composer}, {title}, {album}, @@ -1068,12 +1068,12 @@
-
+
{{$root.getLz('settings.option.connectivity.discordRPC.reload')}}
@@ -1089,10 +1089,10 @@
{{$root.getLz('settings.option.connectivity.lastfmScrobble')}}
-
-
@@ -1108,32 +1108,33 @@
- {{$root.getLz('settings.option.connectivity.lastfmScrobble.nowPlaying')}} + {{$root.getLz('settings.option.connectivity.lastfmScrobble.delay')}}
-
-
- {{$root.getLz('settings.option.connectivity.lastfmScrobble.removeFeatured')}} -
-
- -
-
-
+
{{$root.getLz('settings.option.connectivity.lastfmScrobble.filterLoop')}} + {{$root.getLz('settings.option.connectivity.lastfmScrobble.filterLoop.description')}}
+
+
+
+
+ {{$root.getLz('settings.option.connectivity.lastfmScrobble.filterTypes')}} +
+
+
@@ -1421,7 +1422,8 @@ app: this.$root, themes: ipcRenderer.sendSync("get-themes"), tabIndex: 0, - canChangeHash: false + canChangeHash: false, + lastfmConnecting: false } }, watch: { tabIndex: function (val) { @@ -1430,15 +1432,6 @@ } } }, - mounted: function () { - if (app.cfg.lastfm.enabled) { - const element = document.getElementById('lfmConnect'); - if (element) { - element.innerHTML = `Disconnect\n

(Authed: ${app.cfg.lastfm.auth_token})

`; - element.onclick = app.LastFMDeauthorize; - } - } - }, methods: { close() { this.$root.modals.settings = false @@ -1554,6 +1547,41 @@ }, reloadDiscordRPC() { ipcRenderer.send('reloadRPC') + }, + lfmDisconnect() { + this.$root.cfg.connectivity.lastfm.enabled = false; + this.$root.cfg.connectivity.lastfm.secrets.username = ""; + this.$root.cfg.connectivity.lastfm.secrets.key = ""; + ipcRenderer.send('lastfm:disconnect'); + }, + async lfmAuthorize() { + this.lastfmConnecting = true; + window.open(await ipcRenderer.invoke('lastfm:url')); + app.notyf.success(app.getLz('settings.notyf.connectivity.lastfmScrobble.connecting')); + + /* Just a timeout for the button */ + setTimeout(() => { + if (!this.$root.cfg.connectivity.lastfm.enabled) { + app.notyf.error(app.getLz('settings.notyf.connectivity.lastfmScrobble.connectError')); + console.warn('[lastfm:authorize] Last.fm authorization timed out.'); + this.lastfmConnecting = false; + } + }, 20000); + + ipcRenderer.once('lastfm:authenticated', (_e, session) => { + this.$root.cfg.connectivity.lastfm.secrets.username = session.username + this.$root.cfg.connectivity.lastfm.secrets.key = session.key + this.$root.cfg.connectivity.lastfm.enabled = true + this.lastfmConnecting = false; + app.notyf.success(app.getLz('settings.notyf.connectivity.lastfmScrobble.connectSuccess')); + }) + }, + filterChange(e) { + this.$root.cfg.connectivity.lastfm.filter_types[e.target.value] = e.target.checked; + }, + submitToken() { + const token = document.getElementById('lfmToken').value; + ipcRenderer.send('lastfm:auth', token); } } })