Only run WebNowPlaying plugin on win32

This commit is contained in:
Zennn 2022-02-09 05:49:41 +08:00
parent 8993f4aab7
commit 5c2da9b8a0
No known key found for this signature in database
GPG key ID: FB8FD46C9087D829

View file

@ -40,6 +40,19 @@ export default class WebNowPlaying {
console.debug(`[Plugin][${this.name}] Loading Complete.`); console.debug(`[Plugin][${this.name}] Loading Complete.`);
} }
/**
* Blocks non-windows systems from running this plugin
* @private
* @decorator
*/
private static windowsOnly(_target: any, _propertyKey: string, descriptor: PropertyDescriptor) {
if (process.platform !== 'win32') {
descriptor.value = function () {
return
}
}
}
sendSongInfo(attributes: any) { sendSongInfo(attributes: any) {
if (!this.ws || this.ws.readyState !== WebSocket.OPEN) return; if (!this.ws || this.ws.readyState !== WebSocket.OPEN) return;
@ -142,6 +155,7 @@ export default class WebNowPlaying {
/** /**
* Runs on app ready * Runs on app ready
*/ */
@WebNowPlaying.windowsOnly
onReady(win: any) { onReady(win: any) {
this._win = win; this._win = win;
@ -197,6 +211,7 @@ export default class WebNowPlaying {
/** /**
* Runs on app stop * Runs on app stop
*/ */
@WebNowPlaying.windowsOnly
onBeforeQuit() { onBeforeQuit() {
if (this.ws) { if (this.ws) {
this.ws.send('STATE:0'); this.ws.send('STATE:0');
@ -213,6 +228,7 @@ export default class WebNowPlaying {
* Runs on playback State Change * Runs on playback State Change
* @param attributes Music Attributes (attributes.status = current state) * @param attributes Music Attributes (attributes.status = current state)
*/ */
@WebNowPlaying.windowsOnly
onPlaybackStateDidChange(attributes: any) { onPlaybackStateDidChange(attributes: any) {
this.sendSongInfo(attributes); this.sendSongInfo(attributes);
} }
@ -221,6 +237,7 @@ export default class WebNowPlaying {
* Runs on song change * Runs on song change
* @param attributes Music Attributes * @param attributes Music Attributes
*/ */
@WebNowPlaying.windowsOnly
onNowPlayingItemDidChange(attributes: any) { onNowPlayingItemDidChange(attributes: any) {
this.sendSongInfo(attributes); this.sendSongInfo(attributes);
} }