2009-12-19 4 views
5

Cercare aiuto/tutorial/codice di esempio sull'uso di python per ascoltare distributed notifications dalle applicazioni su un Mac. So che la libreria py-objc è il bridge tra le classi python e mac/cocoa e la libreria Foundation può essere utilizzata per aggiungere osservatori, ma cercando esempi o tutorial su come utilizzarla per monitorare iTunes.Come ascoltare le notifiche da iTunes su un Mac (utilizzando NSDistributedNotificationCenter)

+0

iTunes pubblica effettivamente le notifiche distribuite in questi giorni? –

+0

Sì, lo fa .... in com.apple.iTunes.player, utilizzando l'orologio di notifica posso vederli. – ismail

risposta

11

Se qualcuno viene da a questa domanda, ho capito come ascoltare, il codice seguente funziona, tuttavia gli attributi di accesso non sembrano funzionare come l'accesso standard agli attributi python

Aggiornamento: non si accede agli attributi come si farebbe in python ie (.x), il codice è stato aggiornato di seguito, adesso genera un dict chiamato song_details

Torna su date3: aggiornamento al codice, ora sottoclasse NSObject, rimosso aggiungendo addObserver dalla classe. Manterrà il codice aggiornato su github, non ci sono più aggiornamenti qui.

import Foundation 
from AppKit import * 
from PyObjCTools import AppHelper 

class GetSongs(NSObject): 
    def getMySongs_(self, song): 
     song_details = {} 
     ui = song.userInfo() 
     for x in ui: 
      song_details[x] = ui.objectForKey_(x) 
     print song_details 

nc = Foundation.NSDistributedNotificationCenter.defaultCenter() 
GetSongs = GetSongs.new() 
nc.addObserver_selector_name_object_(GetSongs, 'getMySongs:', 'com.apple.iTunes.playerInfo',None) 

NSLog("Listening for new tunes....") 
AppHelper.runConsoleEventLoop() 
Problemi correlati