You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
1.8 KiB

13 years ago
from couchpotato.core.event import fireEvent
14 years ago
from couchpotato.core.logger import CPLog
from couchpotato.core.notifications.base import Notification
from gntp import notifier
import logging
13 years ago
import traceback
14 years ago
log = CPLog(__name__)
class Growl(Notification):
registered = False
def __init__(self):
super(Growl, self).__init__()
14 years ago
logging.getLogger('gntp').setLevel(logging.WARNING)
14 years ago
if self.isEnabled():
self.register()
def register(self):
if self.registered: return
try:
hostname = self.conf('hostname')
password = self.conf('password')
port = self.conf('port')
self.growl = notifier.GrowlNotifier(
applicationName = 'CouchPotato',
notifications = ["Updates"],
defaultNotifications = ["Updates"],
applicationIcon = '%s/static/images/couch.png' % fireEvent('app.api_url', single = True),
hostname = hostname if hostname else 'localhost',
password = password if password else None,
port = port if port else 23053
)
self.growl.register()
self.registered = True
except:
log.error('Failed register of growl: %s' % traceback.format_exc())
14 years ago
def notify(self, message = '', data = {}):
if self.isDisabled(): return
14 years ago
self.register()
try:
self.growl.notify(
noteType = "Updates",
title = self.default_title,
description = message,
sticky = False,
priority = 1,
)
14 years ago
log.info('Growl notifications sent.')
return True
except:
log.error('Failed growl notification.')
return False