|
|
|
from couchpotato.api import addApiView
|
|
|
|
from couchpotato.core.event import addEvent, fireEvent
|
|
|
|
from couchpotato.core.helpers.request import getParam
|
|
|
|
from couchpotato.core.logger import CPLog
|
|
|
|
from couchpotato.core.plugins.base import Plugin
|
|
|
|
from urlparse import urlparse
|
|
|
|
|
|
|
|
log = CPLog(__name__)
|
|
|
|
|
|
|
|
|
|
|
|
class UserscriptBase(Plugin):
|
|
|
|
|
|
|
|
version = 1
|
|
|
|
|
|
|
|
includes = []
|
|
|
|
excludes = []
|
|
|
|
|
|
|
|
def __init__(self):
|
|
|
|
addEvent('userscript.get_includes', self.getInclude)
|
|
|
|
addEvent('userscript.get_excludes', self.getExclude)
|
|
|
|
addEvent('userscript.get_version', self.getVersion)
|
|
|
|
|
|
|
|
addApiView('userscript.add_via_url', self.addViaUrl)
|
|
|
|
|
|
|
|
def search(self, name, year = None):
|
|
|
|
|
|
|
|
movie = fireEvent('movie.search', q = '%s %s' % (name, year), limit = 1)
|
|
|
|
|
|
|
|
return movie
|
|
|
|
|
|
|
|
def addViaUrl(self):
|
|
|
|
|
|
|
|
url = getParam('url')
|
|
|
|
host = urlparse(url).hostname
|
|
|
|
|
|
|
|
# Check if the url matches the provider
|
|
|
|
is_provider = False
|
|
|
|
for include in self.includes:
|
|
|
|
if host in include:
|
|
|
|
is_provider = True
|
|
|
|
break
|
|
|
|
if not is_provider:
|
|
|
|
return False
|
|
|
|
|
|
|
|
|
|
|
|
fireEvent()
|
|
|
|
|
|
|
|
def getInclude(self):
|
|
|
|
return self.includes
|
|
|
|
|
|
|
|
def getExclude(self):
|
|
|
|
return self.excludes
|
|
|
|
|
|
|
|
def getVersion(self):
|
|
|
|
return self.version
|