mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-15 20:31:46 +00:00
feat(api-server): add endpoint to get shuffle state (#2792)
This commit is contained in:
@ -62,6 +62,9 @@ export default (win: BrowserWindow) => {
|
||||
win.webContents.send('ytmd:seek-by', seconds);
|
||||
}
|
||||
},
|
||||
requestShuffleInformation: () => {
|
||||
win.webContents.send('ytmd:get-shuffle');
|
||||
},
|
||||
shuffle: () => win.webContents.send('ytmd:shuffle'),
|
||||
switchRepeat: (n: ArgsType<number> = 1) => {
|
||||
const repeat = parseNumberFromArgsType(n);
|
||||
|
||||
@ -87,6 +87,28 @@ export const setupVolumeChangedListener = singleton((api: YoutubePlayer) => {
|
||||
window.ipcRenderer.send('ytmd:volume-changed', api.getVolume());
|
||||
});
|
||||
|
||||
export const setupShuffleChangedListener = singleton(() => {
|
||||
const playerBar = document.querySelector('ytmusic-player-bar');
|
||||
|
||||
if (!playerBar) {
|
||||
window.ipcRenderer.send('ytmd:shuffle-changed-supported', false);
|
||||
return;
|
||||
}
|
||||
|
||||
const observer = new MutationObserver(() => {
|
||||
window.ipcRenderer.send(
|
||||
'ytmd:shuffle-changed',
|
||||
(playerBar?.attributes.getNamedItem('shuffle-on') ?? null) !== null,
|
||||
);
|
||||
});
|
||||
|
||||
observer.observe(playerBar, {
|
||||
attributes: true,
|
||||
childList: false,
|
||||
subtree: false,
|
||||
});
|
||||
});
|
||||
|
||||
export const setupFullScreenChangedListener = singleton(() => {
|
||||
const playerBar = document.querySelector('ytmusic-player-bar');
|
||||
|
||||
@ -139,6 +161,10 @@ export default (api: YoutubePlayer) => {
|
||||
setupVolumeChangedListener(api);
|
||||
});
|
||||
|
||||
window.ipcRenderer.on('ytmd:setup-shuffle-changed-listener', () => {
|
||||
setupShuffleChangedListener();
|
||||
});
|
||||
|
||||
window.ipcRenderer.on('ytmd:setup-fullscreen-changed-listener', () => {
|
||||
setupFullScreenChangedListener();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user