diff options
Diffstat (limited to 'module/plugins/hooks/XFileSharing.py')
-rw-r--r-- | module/plugins/hooks/XFileSharing.py | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/module/plugins/hooks/XFileSharing.py b/module/plugins/hooks/XFileSharing.py index 26dea3ec6..4af246da8 100644 --- a/module/plugins/hooks/XFileSharing.py +++ b/module/plugins/hooks/XFileSharing.py @@ -9,10 +9,10 @@ from module.plugins.internal.Addon import Addon class XFileSharing(Addon): __name__ = "XFileSharing" __type__ = "hook" - __version__ = "0.52" + __version__ = "0.55" __status__ = "testing" - __config__ = [("activated" , "bool", "Activated" , True ), + __config__ = [("activated" , "bool", "Activated" , False), ("use_hoster_list" , "bool", "Load listed hosters only" , False), ("use_crypter_list", "bool", "Load listed crypters only" , False), ("use_builtin_list", "bool", "Load built-in plugin list" , True ), @@ -24,9 +24,9 @@ class XFileSharing(Addon): __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - regexp = {'hoster' : (r'(?:https?://(?:www\.)?)(?!%s)(?:\w+\.)*?(?P<DOMAIN>(?:[\d.]+|[\w\-^_]{3,63}(?:\.[a-zA-Z]{2,}){1,2})(?:\:\d+)?)/(?:embed-)?\w{12}(?:\W|$)', + regexp = {'hoster' : (r'(?:https?://(?:www\.)?)(?!(?:www\.)?(?:%s))(?P<DOMAIN>(?:[\d.]+|[\w\-^_]{3,63}(?:\.[a-zA-Z]{2,})+)(?:\:\d+)?)/(?:embed-)?\w{12}(?:\W|$)', r'https?://(?:[^/]+\.)?(?P<DOMAIN>%s)/(?:embed-)?\w+'), - 'crypter': (r'(?:https?://(?:www\.)?)(?!%s)(?:\w+\.)*?(?P<DOMAIN>(?:[\d.]+|[\w\-^_]{3,63}(?:\.[a-zA-Z]{2,}){1,2})(?:\:\d+)?)/(?:user|folder)s?/\w+', + 'crypter': (r'(?:https?://(?:www\.)?)(?!(?:www\.)?(?:%s))(?P<DOMAIN>(?:[\d.]+|[\w\-^_]{3,63}(?:\.[a-zA-Z]{2,})+)(?:\:\d+)?)/(?:user|folder)s?/\w+', r'https?://(?:[^/]+\.)?(?P<DOMAIN>%s)/(?:user|folder)s?/\w+')} BUILTIN_HOSTERS = [# WORKING HOSTERS: @@ -60,15 +60,15 @@ class XFileSharing(Addon): def get_pattern(self, type, plugin): - if self.get_config("use_%s_list" % type): - plugin_list = self.get_config('%s_list' % type) + if self.config.get("use_%s_list" % type): + plugin_list = self.config.get('%s_list' % type) plugin_list = plugin_list.replace(' ', '').replace('\\', '') plugin_list = plugin_list.replace('|', ',').replace(';', ',') plugin_list = plugin_list.lower().split(',') plugin_set = set(plugin_list) - if self.get_config('use_builtin_list'): + if self.config.get('use_builtin_list'): builtin_list = getattr(self, "BUILTIN_%sS" % type.upper()) plugin_set.update(builtin_list) @@ -91,7 +91,13 @@ class XFileSharing(Addon): isXFS = lambda klass: any(k.__name__.startswith("XFS") for k in inspect.getmro(klass)) for p in self.pyload.pluginManager.plugins[type].values(): - klass = self.pyload.pluginManager.loadClass(type, p['name']) + try: + klass = self.pyload.pluginManager.loadClass(type, p['name']) + + except AttributeError, e: + self.log_debug(e, trace=True) + continue + if hasattr(klass, "PLUGIN_DOMAIN") and klass.PLUGIN_DOMAIN and isXFS(klass): plugin_list.append(klass.PLUGIN_DOMAIN) @@ -101,7 +107,7 @@ class XFileSharing(Addon): else: pattern = self.regexp[type][0] - self.log_info(_("Handle any %s site on the web!") % type) + self.log_info(_("Auto-discover new %ss") % type) return pattern @@ -116,13 +122,10 @@ class XFileSharing(Addon): dict['pattern'] = pattern dict['re'] = re.compile(pattern) - self.log_debug("Loaded %s pattern: %s" % (type, pattern)) + self.log_debug("Pattern for %ss: %s" % (type, pattern)) def _unload(self, type, plugin): dict = self.pyload.pluginManager.plugins[type][plugin] dict['pattern'] = r'^unmatchable$' dict['re'] = re.compile(dict['pattern']) - - - |