Browse Source

Add multiprovider for provider grouping

pull/2038/merge
Ruud 12 years ago
parent
commit
dd0fcf0bc1
  1. 10
      couchpotato/core/plugins/base.py
  2. 21
      couchpotato/core/providers/base.py

10
couchpotato/core/plugins/base.py

@ -25,6 +25,8 @@ log = CPLog(__name__)
class Plugin(object):
_class_name = None
enabled_option = 'enabled'
auto_register_static = True
@ -51,10 +53,14 @@ class Plugin(object):
self.registerStatic(inspect.getfile(self.__class__))
def conf(self, attr, value = None, default = None, section = None):
return Env.setting(attr, section = section if section else self.getName().lower(), value = value, default = default)
class_name = self.getName().lower().split(':')
return Env.setting(attr, section = section if section else class_name[0].lower(), value = value, default = default)
def getName(self):
return self.__class__.__name__
return self._class_name or self.__class__.__name__
def setName(self, name):
self._class_name = name
def renderTemplate(self, parent_file, templ, **params):

21
couchpotato/core/providers/base.py

@ -13,10 +13,29 @@ import traceback
import urllib2
import xml.etree.ElementTree as XMLTree
log = CPLog(__name__)
class MultiProvider(Plugin):
def __init__(self):
self._classes = []
for Type in self.getTypes():
klass = Type()
# Overwrite name so logger knows what we're talking about
klass.setName('%s:%s' % (self.getName(), klass.getName()))
self._classes.append(klass)
def getTypes(self):
return []
def getClasses(self):
return self._classes
class Provider(Plugin):
type = None # movie, show, subtitle, trailer, ...

Loading…
Cancel
Save