Merge pull request #749 from Monochromish/develop

Added more customizability to the Discord Rich Presence Plugin on Cider (Buttons)
This commit is contained in:
Core 2022-03-30 12:36:30 +01:00 committed by GitHub
commit be7498de84
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 44 additions and 18 deletions

View file

@ -371,6 +371,7 @@
"settings.header.connectivity.discordRPC.cider": "Display as 'Cider'", "settings.header.connectivity.discordRPC.cider": "Display as 'Cider'",
"settings.header.connectivity.discordRPC.appleMusic": "Display as 'Apple Music'", "settings.header.connectivity.discordRPC.appleMusic": "Display as 'Apple Music'",
"settings.option.connectivity.discordRPC.clearOnPause": "Clear Discord Rich Presence on Pause", "settings.option.connectivity.discordRPC.clearOnPause": "Clear Discord Rich Presence on Pause",
"settings.option.connectivity.discordRPC.hideButtons": "Hide buttons on Discord Rich Presence",
"settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling",
"settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble Delay (%)", "settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble Delay (%)",
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Enable Last.fm Now Playing", "settings.option.connectivity.lastfmScrobble.nowPlaying": "Enable Last.fm Now Playing",

View file

@ -371,6 +371,7 @@
"settings.header.connectivity.discordRPC.cider": "Display as 'Cider'", "settings.header.connectivity.discordRPC.cider": "Display as 'Cider'",
"settings.header.connectivity.discordRPC.appleMusic": "Display as 'Apple Music'", "settings.header.connectivity.discordRPC.appleMusic": "Display as 'Apple Music'",
"settings.option.connectivity.discordRPC.clearOnPause": "Clear Discord Rich Presence on Pause", "settings.option.connectivity.discordRPC.clearOnPause": "Clear Discord Rich Presence on Pause",
"settings.option.connectivity.discordRPC.hideButtons": "Hide buttons on Discord Rich Presence",
"settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling",
"settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble Delay (%)", "settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble Delay (%)",
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Enable Last.fm Now Playing", "settings.option.connectivity.lastfmScrobble.nowPlaying": "Enable Last.fm Now Playing",

View file

@ -135,11 +135,13 @@ export default class DiscordRichPresence {
delete activity.largeImageText delete activity.largeImageText
} }
activity.buttons.forEach((key: { label: string, url: string }, _v: Number) => { if (!DiscordRichPresence._store.general.discord_rpc_hide_buttons) {
if (key.url.includes('undefined') || key.url.includes('no-id-found')) { activity.buttons.forEach((key: { label: string; url: string }, _v: Number) => {
activity.buttons.splice(key, 1); if (key.url.includes('undefined') || key.url.includes('no-id-found')) {
} activity.buttons.splice(key, 1);
}) }
});
}
return activity return activity
} }
@ -161,19 +163,32 @@ export default class DiscordRichPresence {
return; return;
} }
this._activity = { // Check if show buttons is (true) or (false)
details: attributes.name, if (DiscordRichPresence._store.general.discord_rpc_hide_buttons) {
state: `${attributes.artistName ? `by ${attributes.artistName}` : ''}`, this._activity = {
startTimestamp: Date.now() - (attributes?.durationInMillis - attributes?.remainingTime), details: attributes.name,
endTimestamp: attributes.endTime, state: `${attributes.artistName ? `by ${attributes.artistName}` : ''}`,
largeImageKey: attributes?.artwork?.url?.replace('{w}', '1024').replace('{h}', '1024'), startTimestamp: Date.now() - (attributes?.durationInMillis - attributes?.remainingTime),
largeImageText: attributes.albumName, endTimestamp: attributes.endTime,
instance: false, // Whether the activity is in a game session largeImageKey: attributes?.artwork?.url?.replace('{w}', '1024').replace('{h}', '1024'),
buttons: [ largeImageText: attributes.albumName,
{label: "Listen on Cider", url: attributes.url.cider}, instance: false
{label: "View on Apple Music", url: attributes.url.appleMusic}, };
] //To change attributes.url => preload/cider-preload.js } else {
}; this._activity = {
details: attributes.name,
state: `${attributes.artistName ? `by ${attributes.artistName}` : ''}`,
startTimestamp: Date.now() - (attributes?.durationInMillis - attributes?.remainingTime),
endTimestamp: attributes.endTime,
largeImageKey: attributes?.artwork?.url?.replace('{w}', '1024').replace('{h}', '1024'),
largeImageText: attributes.albumName,
instance: false, // Whether the activity is in a game session
buttons: [
{ label: 'Listen on Cider', url: attributes.url.cider },
{ label: 'View on Apple Music', url: attributes.url.appleMusic }
] //To change attributes.url => preload/cider-preload.js
};
}
this._activity = this.filterActivity(this._activity, attributes) this._activity = this.filterActivity(this._activity, attributes)

View file

@ -637,6 +637,15 @@
<input type="checkbox" v-model="app.cfg.general.discord_rpc_clear_on_pause" switch/> <input type="checkbox" v-model="app.cfg.general.discord_rpc_clear_on_pause" switch/>
</div> </div>
</div> </div>
<div class="md-option-line" v-show="app.cfg.general.discord_rpc != 0">
<div class="md-option-segment">
{{$root.getLz('settings.option.connectivity.discordRPC.hideButtons')}}<br>
<small>({{$root.getLz('settings.option.visual.hardwareAcceleration.description')}})</small>
</div>
<div class="md-option-segment md-option-segment_auto">
<input type="checkbox" v-model="app.cfg.general.discord_rpc_hide_buttons" switch/>
</div>
</div>
<div class="md-option-line"> <div class="md-option-line">
<div class="md-option-segment"> <div class="md-option-segment">
{{$root.getLz('settings.option.connectivity.lastfmScrobble')}} {{$root.getLz('settings.option.connectivity.lastfmScrobble')}}