2009-12-19 14 views
5

Szukasz pomocy/samouczków/przykładowy kod używania pythona do słuchania distributed notifications z aplikacji na komputerze Mac. Wiem, że biblioteka py-objc jest pomostem między python a klasami mac/cocoa, a biblioteka Foundation może być używana do dodawania obserwatorów, ale szuka przykładów lub samouczków, jak używać tego do monitorowania iTunes.Jak słuchać powiadomień z iTunes na Macu (przy użyciu NSDistributedNotificationCenter)

+0

Czy iTunes rzeczywiście wysyła powiadomienia rozproszone w tych dniach? –

+0

Tak, to działa ... pod com.apple.iTunes.player, używając zegarka powiadomień, widzę je. – ismail

Odpowiedz

11

Jeśli ktoś przychodzi na to pytanie, zorientowali się, jak słuchać, . poniższy kod działa atrybuty korzystające jednak nie wydają się działać jak standardowy dostęp do atrybutu pyton

Update:. użytkownik nie korzysta z atrybutów, jak w python czyli (.x), kod został zaktualizowany poniżej, to teraz generuje dyktat o nazwie song_details.

date3: Zaktualizuj kod, teraz podporządkuj NSObject, usunięto dodając addObserver z klasy. Uaktualni kod na github, nie będzie więcej aktualizacji tutaj.

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() 
4

Kod źródłowy GrowlTunes może dać ci pewne wskazówki. Trzeba by przetłumaczyć z Objective-C na PyObjC, ale cokolwiek. :)

GrowlTurnesController.m (Albo złapać całego drzewa źródłowego growl i przejdź do GrowlTunes więc można zobaczyć to wszystko w akcji .: here's a link to the directions on how to get the source

+0

Dzięki za pomoc, udało się to rozgryźć za pomocą strony internetowej pyobjc i strony internetowej firmy Apple. – ismail