|
|
|
import json
|
|
|
|
import urllib, urllib2
|
|
|
|
|
|
|
|
from couchpotato.core.helpers.variable import cleanHost
|
|
|
|
from couchpotato.core.logger import CPLog
|
|
|
|
from couchpotato.core.notifications.base import Notification
|
|
|
|
|
|
|
|
|
|
|
|
log = CPLog(__name__)
|
|
|
|
|
|
|
|
autoload = 'Emby'
|
|
|
|
|
|
|
|
|
|
|
|
class Emby(Notification):
|
|
|
|
|
|
|
|
def notify(self, message = '', data = None, listener = None):
|
|
|
|
host = self.conf('host')
|
|
|
|
apikey = self.conf('apikey')
|
|
|
|
|
|
|
|
host = cleanHost(host)
|
|
|
|
url = '%semby/Library/Movies/Updated' % (host)
|
|
|
|
values = {}
|
|
|
|
data = urllib.urlencode(values)
|
|
|
|
|
|
|
|
try:
|
|
|
|
req = urllib2.Request(url, data)
|
|
|
|
req.add_header('X-MediaBrowser-Token', apikey)
|
|
|
|
|
|
|
|
response = urllib2.urlopen(req)
|
|
|
|
result = response.read()
|
|
|
|
response.close()
|
|
|
|
return True
|
|
|
|
|
|
|
|
except (urllib2.URLError, IOError), e:
|
|
|
|
return False
|
|
|
|
|
|
|
|
def test(self, **kwargs):
|
|
|
|
host = self.conf('host')
|
|
|
|
apikey = self.conf('apikey')
|
|
|
|
message = self.test_message
|
|
|
|
|
|
|
|
host = cleanHost(host)
|
|
|
|
url = '%semby/Notifications/Admin' % (host)
|
|
|
|
values = {'Name': 'CouchPotato', 'Description': message, 'ImageUrl': 'https://raw.githubusercontent.com/CouchPotato/CouchPotatoServer/master/couchpotato/static/images/notify.couch.small.png'}
|
|
|
|
data = json.dumps(values)
|
|
|
|
|
|
|
|
try:
|
|
|
|
req = urllib2.Request(url, data)
|
|
|
|
req.add_header('X-MediaBrowser-Token', apikey)
|
|
|
|
req.add_header('Content-Type', 'application/json')
|
|
|
|
|
|
|
|
response = urllib2.urlopen(req)
|
|
|
|
result = response.read()
|
|
|
|
response.close()
|
|
|
|
return {
|
|
|
|
'success': True
|
|
|
|
}
|
|
|
|
|
|
|
|
except (urllib2.URLError, IOError), e:
|
|
|
|
return False
|
|
|
|
|
|
|
|
|
|
|
|
config = [{
|
|
|
|
'name': 'emby',
|
|
|
|
'groups': [
|
|
|
|
{
|
|
|
|
'tab': 'notifications',
|
|
|
|
'list': 'notification_providers',
|
|
|
|
'name': 'emby',
|
|
|
|
'options': [
|
|
|
|
{
|
|
|
|
'name': 'enabled',
|
|
|
|
'default': 0,
|
|
|
|
'type': 'enabler',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
'name': 'host',
|
|
|
|
'default': 'localhost:8096',
|
|
|
|
'description': 'IP:Port, default localhost:8096'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
'name': 'apikey',
|
|
|
|
'label': 'API Key',
|
|
|
|
'default': '',
|
|
|
|
},
|
|
|
|
],
|
|
|
|
}
|
|
|
|
],
|
|
|
|
}]
|