@@ -53,6 +53,11 @@ class AppleMusicDiscordRPC {
5353 }
5454
5555 async setActivityLoop ( ) : Promise < void > {
56+ const discordRunning = await isDiscordRunning ( ) ;
57+ if ( ! discordRunning ) {
58+ console . log ( "No Discord client is running" ) ;
59+ return ;
60+ }
5661 try {
5762 await this . rpc . connect ( ) ;
5863 console . log ( "Connected to Discord RPC" ) ;
@@ -72,10 +77,10 @@ class AppleMusicDiscordRPC {
7277 }
7378
7479 async setActivity ( ) : Promise < number > {
75- const open = await isMusicOpen ( this . appName ) ;
76- console . log ( "open :" , open ) ;
80+ const musicRunning = await isMusicRunning ( this . appName ) ;
81+ console . log ( "musicRunning :" , musicRunning ) ;
7782
78- if ( ! open ) {
83+ if ( ! musicRunning ) {
7984 await this . rpc . clearActivity ( ) ;
8085 return this . defaultTimeout ;
8186 }
@@ -224,7 +229,16 @@ await client.run();
224229//#endregion
225230
226231//#region JXA
227- function isMusicOpen ( appName : iTunesAppName ) : Promise < boolean > {
232+ function isDiscordRunning ( ) : Promise < boolean > {
233+ return run ( ( clientNames : string [ ] ) => {
234+ const systemEvents = Application ( "System Events" ) ;
235+ return clientNames . some ( ( clientName ) =>
236+ systemEvents . processes [ clientName ] ?. exists ( )
237+ ) ;
238+ } , [ "Discord" , "Discord PTB" , "Discord Canary" ] ) ;
239+ }
240+
241+ function isMusicRunning ( appName : iTunesAppName ) : Promise < boolean > {
228242 return run ( ( appName : iTunesAppName ) => {
229243 return Application ( "System Events" ) . processes [ appName ] . exists ( ) ;
230244 } , appName ) ;
0 commit comments