fix(SpotifyControls): sync with external shuffle toggles (#2767)

Co-authored-by: v <vendicated@riseup.net>
This commit is contained in:
Joona 2024-08-10 19:35:21 +03:00 committed by GitHub
parent 87e6fa8647
commit 1a712e75a6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 13 additions and 12 deletions

View file

@ -55,6 +55,7 @@ interface PlayerState {
// added by patch
actual_repeat: Repeat;
shuffle: boolean;
}
interface Device {
@ -182,6 +183,7 @@ export const SpotifyStore = proxyLazyWebpack(() => {
store.isPlaying = e.isPlaying ?? false;
store.volume = e.volumePercent ?? 0;
store.repeat = e.actual_repeat || "off";
store.shuffle = e.shuffle ?? false;
store.position = e.position ?? 0;
store.isSettingPosition = false;
store.emitChange();

View file

@ -70,21 +70,20 @@ export default definePlugin({
replace: "false",
}]
},
// Discord doesn't give you the repeat kind, only a boolean
{
find: 'repeat:"off"!==',
replacement: {
match: /repeat:"off"!==(.{1,3}),/,
replace: "actual_repeat:$1,$&"
}
replacement: [
{
// Discord doesn't give you shuffle state and the repeat kind, only a boolean
match: /repeat:"off"!==(\i),/,
replace: "shuffle:arguments[2]?.shuffle_state??false,actual_repeat:$1,$&"
},
{
match: /(?<=artists.filter\(\i=>).{0,10}\i\.id\)&&/,
replace: ""
}
]
},
{
find: "artists.filter",
replacement: {
match: /(?<=artists.filter\(\i=>).{0,10}\i\.id\)&&/,
replace: ""
}
}
],
start: () => toggleHoverControls(Settings.plugins.SpotifyControls.hoverControls),