2009-07-10 8 views
5

Ho notato che Growl consente la possibilità di notifiche Growl da un sito Web. Qualcuno ha provato a implementarlo?Notifiche Growl da un server Web

Se sì, quale forma ha preso? Hai implementato il supporto multiutente? E, puoi fornire esempi di codice (preferibile C# o Objective-C ma non sono così agitato)?

Rich

risposta

4

Ci sono GNTP (Growl Transport Network Protocol) binding per varie lingue, un list of bindings can be found here - questi consentono di inviare notifiche provenienti, per esempio, uno script PHP.

Non mi fiderei del sistema UDP di Growl direttamente, ma piuttosto scrivere un server che riceve e memorizza le notifiche (magari come una piccola app Web) e uno script locale che di solito afferra i nuovi messaggi via HTTP e li ringhia. Non è affatto complicato, sarà più affidabile di UDP e può mettere in coda i messaggi quando la macchina Growl'ing è spenta o irraggiungibile. non dovrebbe richiedere molto tempo per attuare

Fondamentalmente, server.php in pseudo-PHP (che potrebbe utilizzare Net_Growl):

<?php 
if($_GET['action'] == "store"){ 
    $title = $_POST['title']; 
    $message = $_POST['message']; 
    $password = sha1($_POST['password']); 
    if($password == "..."){ 
     store_in_database(sanitise($title), sanitise($message); 
    } 
} else { 
    print(json_encode(get_notifications_from_database())); 
    mark_notifications_as_read(); 
} 
?> 

client.py in pseudo-Python (che potrebbe utilizzare gntp):

while 1: 
    time.sleep(60): 
    data = urllib.urlopen("http://myserver.com/server.php?action=get&password=blah").read() 
    for line in data: 
     notif = json.decode(line) 
     growl.alert(notif['title'], notif['message']) 
Problemi correlati