summaryrefslogtreecommitdiffstats
path: root/module/plugins/hooks/XFileSharing.py
diff options
context:
space:
mode:
Diffstat (limited to 'module/plugins/hooks/XFileSharing.py')
-rw-r--r--module/plugins/hooks/XFileSharing.py29
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'])
-
-
-