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.
|
|
|
from couchpotato.api import addApiView
|
|
|
|
from couchpotato.core.event import addEvent
|
|
|
|
from couchpotato.core.logger import CPLog
|
|
|
|
from couchpotato.core.notifications.base import Notification
|
|
|
|
from xml.dom import minidom
|
|
|
|
import urllib
|
|
|
|
|
|
|
|
log = CPLog(__name__)
|
|
|
|
|
|
|
|
|
|
|
|
class Plex(Notification):
|
|
|
|
|
|
|
|
def notify(self, message = '', data = {}):
|
|
|
|
if self.isDisabled(): return
|
|
|
|
|
|
|
|
log.info('Sending notification to Plex')
|
|
|
|
hosts = [x.strip() for x in self.conf('host').split(",")]
|
|
|
|
|
|
|
|
for host in hosts:
|
|
|
|
|
|
|
|
source_type = ['movie']
|
|
|
|
base_url = 'http://%s/library/sections' % host
|
|
|
|
refresh_url = '%s/%%s/refresh' % base_url
|
|
|
|
|
|
|
|
try:
|
|
|
|
xml_sections = minidom.parse(urllib.urlopen(base_url))
|
|
|
|
sections = xml_sections.getElementsByTagName('Directory')
|
|
|
|
for s in sections:
|
|
|
|
if s.getAttribute('type') in source_type:
|
|
|
|
url = refresh_url % s.getAttribute('key')
|
|
|
|
x = urllib.urlopen(url)
|
|
|
|
except:
|
|
|
|
log.error('Plex library update failed for %s.' % host)
|
|
|
|
|
|
|
|
return True
|