summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pyload/manager/AccountManager.py4
-rw-r--r--pyload/manager/AddonManager.py22
-rw-r--r--pyload/manager/PluginManager.py37
-rw-r--r--pyload/manager/ThreadManager.py23
-rw-r--r--pyload/plugins/Plugin.py31
-rw-r--r--pyload/plugins/crypter/LinkCryptWs.py4
-rw-r--r--pyload/plugins/crypter/MultiuploadCom.py2
-rw-r--r--pyload/plugins/internal/Addon.py4
-rw-r--r--pyload/plugins/internal/Container.py2
-rw-r--r--pyload/plugins/internal/Crypter.py2
-rw-r--r--pyload/plugins/internal/MultiHoster.py2
-rw-r--r--pyload/plugins/internal/OCR.py2
12 files changed, 59 insertions, 76 deletions
diff --git a/pyload/manager/AccountManager.py b/pyload/manager/AccountManager.py
index 3de656376..4e9e36cee 100644
--- a/pyload/manager/AccountManager.py
+++ b/pyload/manager/AccountManager.py
@@ -79,7 +79,7 @@ class AccountManager:
return
except IOError, e:
- self.logError(e)
+ self.core.log.error(str(e))
return
plugin = ""
@@ -129,7 +129,7 @@ class AccountManager:
chmod(f.name, 0600)
except Exception, e:
- self.logError(e)
+ self.core.log.error(str(e))
#----------------------------------------------------------------------
diff --git a/pyload/manager/AddonManager.py b/pyload/manager/AddonManager.py
index 34952e026..5ad62f515 100644
--- a/pyload/manager/AddonManager.py
+++ b/pyload/manager/AddonManager.py
@@ -62,12 +62,8 @@ class AddonManager:
"""
def __init__(self, core):
- self.core = core
- self.config = self.core.config
-
__builtin__.addonManager = self #needed to let addons register themself
- self.log = self.core.log
self.plugins = []
self.pluginMap = {}
self.methods = {} #dict of names and list of methods usable by rpc
@@ -75,7 +71,7 @@ class AddonManager:
self.events = {} # contains events
#registering callback for config event
- self.config.pluginCB = MethodType(self.dispatchEvent, "pluginConfigChanged", basestring)
+ self.core.config.pluginCB = MethodType(self.dispatchEvent, "pluginConfigChanged", basestring)
self.addEvent("pluginConfigChanged", self.manageAddon)
@@ -123,7 +119,7 @@ class AddonManager:
try:
# hookClass = getattr(plugin, plugin.__name__)
- if self.config.getPlugin(pluginname, "activated"):
+ if self.core.config.getPlugin(pluginname, "activated"):
pluginClass = self.core.pluginManager.loadClass("addon", pluginname)
if not pluginClass: continue
@@ -137,12 +133,12 @@ class AddonManager:
except:
- self.log.warning(_("Failed activating %(name)s") % {"name": pluginname})
+ self.core.log.warning(_("Failed activating %(name)s") % {"name": pluginname})
if self.core.debug:
traceback.print_exc()
- self.log.info(_("Activated addons: %s") % ", ".join(sorted(active)))
- self.log.info(_("Deactivated addons: %s") % ", ".join(sorted(deactive)))
+ self.core.log.info(_("Activated addons: %s") % ", ".join(sorted(active)))
+ self.core.log.info(_("Deactivated addons: %s") % ", ".join(sorted(deactive)))
self.plugins = plugins
@@ -163,7 +159,7 @@ class AddonManager:
if not pluginClass: return
- self.log.debug("Plugin loaded: %s" % plugin)
+ self.core.log.debug("Plugin loaded: %s" % plugin)
plugin = pluginClass(self.core, self)
self.plugins.append(plugin)
@@ -182,12 +178,12 @@ class AddonManager:
if not addon:
return
- self.log.debug("Plugin unloaded: %s" % plugin)
+ self.core.log.debug("Plugin unloaded: %s" % plugin)
addon.unload()
#remove periodic call
- self.log.debug("Removed callback %s" % self.core.scheduler.removeJob(addon.cb))
+ self.core.log.debug("Removed callback %s" % self.core.scheduler.removeJob(addon.cb))
self.plugins.remove(addon)
del self.pluginMap[addon.__name__]
@@ -300,7 +296,7 @@ class AddonManager:
try:
f(*args)
except Exception, e:
- self.log.warning("Error calling event handler %s: %s, %s, %s"
+ self.core.log.warning("Error calling event handler %s: %s, %s, %s"
% (event, f, args, str(e)))
if self.core.debug:
traceback.print_exc()
diff --git a/pyload/manager/PluginManager.py b/pyload/manager/PluginManager.py
index c4c220af8..f91279d77 100644
--- a/pyload/manager/PluginManager.py
+++ b/pyload/manager/PluginManager.py
@@ -26,9 +26,6 @@ class PluginManager:
def __init__(self, core):
self.core = core
- self.config = core.config
- self.log = core.log
-
self.plugins = {}
self.createIndex()
@@ -47,7 +44,7 @@ class PluginManager:
self.plugins['addon'] = self.addonPlugins.extend(self.hookPlugins)
- self.log.debug("Created index of plugins")
+ self.core.log.debug("Created index of plugins")
def parse(self, folder, rootplugins={}):
@@ -71,7 +68,7 @@ class PluginManager:
f.close()
except IOError, e:
- self.logCritical(e)
+ self.core.log.critical(str(e))
return rootplugins
else:
@@ -86,7 +83,7 @@ class PluginManager:
content = data.read()
except IOError, e:
- self.logError(e)
+ self.core.log.error(str(e))
continue
if f.endswith("_25.pyc") and version_info[0:2] != (2, 5): #@TODO: Remove in 0.4.10
@@ -129,7 +126,7 @@ class PluginManager:
try:
regexp = re.compile(pattern)
except:
- self.log.error(_("%s has a invalid pattern") % name)
+ self.core.log.error(_("%s has a invalid pattern") % name)
pattern = r'^unmatchable$'
regexp = re.compile(pattern)
@@ -156,9 +153,9 @@ class PluginManager:
if folder not in ("account", "internal") and not [True for item in config if item[0] == "activated"]:
config.insert(0, ["activated", "bool", "Activated", False if folder in ("addon", "hook") else True])
- self.config.addPluginConfig(name, config, desc)
+ self.core.config.addPluginConfig(name, config, desc)
except:
- self.log.error("Invalid config in %s: %s" % (name, config))
+ self.core.log.error("Invalid config in %s: %s" % (name, config))
elif folder in ("addon", "hook"): #force config creation
desc = self.DESC.findall(content)
@@ -166,9 +163,9 @@ class PluginManager:
config = (["activated", "bool", "Activated", False],)
try:
- self.config.addPluginConfig(name, config, desc)
+ self.core.config.addPluginConfig(name, config, desc)
except:
- self.log.error("Invalid config in %s: %s" % (name, config))
+ self.core.log.error("Invalid config in %s: %s" % (name, config))
if not rootplugins and plugins: #: Double check
plugins.update(self.parse(folder, plugins))
@@ -195,7 +192,7 @@ class PluginManager:
try:
m = value['re'].match(url)
except KeyError:
- self.log.error("Plugin %s skipped due broken pattern" % name)
+ self.core.log.error("Plugin %s skipped due broken pattern" % name)
m = None
if m:
@@ -222,7 +219,7 @@ class PluginManager:
plugin, type = self.findPlugin(name)
if not plugin:
- self.log.warning("Plugin %s not found" % name)
+ self.core.log.warning("Plugin %s not found" % name)
plugin = self.hosterPlugins['BasePlugin']
if "new_module" in plugin and not original:
@@ -257,7 +254,7 @@ class PluginManager:
plugins[name]['name'])
except Exception, e:
- self.log.error(_("Error importing plugin: [%(type)s] %(name)s (v%(version).2f) | %(errmsg)s")
+ self.core.log.error(_("Error importing plugin: [%(type)s] %(name)s (v%(version).2f) | %(errmsg)s")
% {'name': name, 'type': type, 'version': plugins[name]['version'], "errmsg": str(e)})
if self.core.debug:
print_exc()
@@ -265,7 +262,7 @@ class PluginManager:
else:
plugins[name]['module'] = module #: cache import, maybe unneeded
- self.log.debug(_("Loaded plugin: [%(type)s] %(name)s (v%(version).2f)")
+ self.core.log.debug(_("Loaded plugin: [%(type)s] %(name)s (v%(version).2f)")
% {'name': name, 'type': type, 'version': plugins[name]['version']})
return module
@@ -315,7 +312,7 @@ class PluginManager:
base, plugin = newname.rsplit(".", 1)
- self.log.debug("Redirected import %s -> %s" % (name, newname))
+ self.core.log.debug("Redirected import %s -> %s" % (name, newname))
module = __import__(newname, globals(), locals(), [plugin])
#inject under new an old name
@@ -330,7 +327,7 @@ class PluginManager:
if not type_plugins:
return None
- self.log.debug("Request reload of plugins: %s" % type_plugins)
+ self.core.log.debug("Request reload of plugins: %s" % type_plugins)
reloaded = []
@@ -343,18 +340,18 @@ class PluginManager:
for type in as_dict.iterkeys():
if type in ("addon", "internal"): #: do not reload them because would cause to much side effects
- self.log.debug("Skipping reload for plugin: [%(type)s] %(name)s" % {'name': plugin, 'type': type})
+ self.core.log.debug("Skipping reload for plugin: [%(type)s] %(name)s" % {'name': plugin, 'type': type})
continue
for plugin in as_dict[type]:
if plugin in self.plugins[type] and "module" in self.plugins[type][plugin]:
- self.log.debug(_("Reloading plugin: [%(type)s] %(name)s") % {'name': plugin, 'type': type})
+ self.core.log.debug(_("Reloading plugin: [%(type)s] %(name)s") % {'name': plugin, 'type': type})
try:
reload(self.plugins[type][plugin]['module'])
except Exception, e:
- self.log.error(_("Error when reloading plugin: [%(type)s] %(name)s") % {'name': plugin, 'type': type}, e)
+ self.core.log.error(_("Error when reloading plugin: [%(type)s] %(name)s") % {'name': plugin, 'type': type}, e)
continue
else:
diff --git a/pyload/manager/ThreadManager.py b/pyload/manager/ThreadManager.py
index d250a1dfc..1e7bf0f92 100644
--- a/pyload/manager/ThreadManager.py
+++ b/pyload/manager/ThreadManager.py
@@ -40,7 +40,6 @@ class ThreadManager:
def __init__(self, core):
"""Constructor"""
self.core = core
- self.log = core.log
self.threads = [] #: thread list
self.localThreads = [] #: addon+decrypter threads
@@ -133,7 +132,7 @@ class ThreadManager:
try:
self.tryReconnect()
except Exception, e:
- self.log.error(_("Reconnect Failed: %s") % str(e) )
+ self.core.log.error(_("Reconnect Failed: %s") % str(e) )
self.reconnecting.clear()
if self.core.debug:
print_exc()
@@ -142,7 +141,7 @@ class ThreadManager:
try:
self.assignJob()
except Exception, e:
- self.log.warning("Assign job error", e)
+ self.core.log.warning("Assign job error", e)
if self.core.debug:
print_exc()
@@ -153,7 +152,7 @@ class ThreadManager:
if (self.infoCache or self.infoResults) and self.timestamp < time():
self.infoCache.clear()
self.infoResults.clear()
- self.log.debug("Cleared Result cache")
+ self.core.log.debug("Cleared Result cache")
#--------------------------------------------------------------------------
def tryReconnect(self):
@@ -172,13 +171,13 @@ class ThreadManager:
self.core.config['reconnect']['method'] = join(pypath, self.core.config['reconnect']['method'])
else:
self.core.config["reconnect"]["activated"] = False
- self.log.warning(_("Reconnect script not found!"))
+ self.core.log.warning(_("Reconnect script not found!"))
return
self.reconnecting.set()
#Do reconnect
- self.log.info(_("Starting reconnect"))
+ self.core.log.info(_("Starting reconnect"))
while [x.active.plugin.waiting for x in self.threads if x.active].count(True) != 0:
sleep(0.25)
@@ -187,12 +186,12 @@ class ThreadManager:
self.core.addonManager.beforeReconnecting(ip)
- self.log.debug("Old IP: %s" % ip)
+ self.core.log.debug("Old IP: %s" % ip)
try:
reconn = Popen(self.core.config['reconnect']['method'], bufsize=-1, shell=True)#, stdout=subprocess.PIPE)
except:
- self.log.warning(_("Failed executing reconnect script!"))
+ self.core.log.warning(_("Failed executing reconnect script!"))
self.core.config["reconnect"]["activated"] = False
self.reconnecting.clear()
if self.core.debug:
@@ -204,7 +203,7 @@ class ThreadManager:
ip = self.getIP()
self.core.addonManager.afterReconnecting(ip)
- self.log.info(_("Reconnected, new IP: %s") % ip)
+ self.core.log.info(_("Reconnected, new IP: %s") % ip)
self.reconnecting.clear()
@@ -247,7 +246,7 @@ class ThreadManager:
pycurl.global_cleanup()
pycurl.global_init(pycurl.GLOBAL_DEFAULT)
self.downloaded = 0
- self.log.debug("Cleaned up pycurl")
+ self.core.log.debug("Cleaned up pycurl")
return True
#--------------------------------------------------------------------------
@@ -274,7 +273,7 @@ class ThreadManager:
try:
job.initPlugin()
except Exception, e:
- self.log.critical(str(e))
+ self.core.log.critical(str(e))
print_exc()
job.setStatus("failed")
job.error = str(e)
@@ -284,7 +283,7 @@ class ThreadManager:
if job.plugin.__type__ == "hoster":
spaceLeft = freeSpace(self.core.config["general"]["download_folder"]) / 1024 / 1024
if spaceLeft < self.core.config["general"]["min_free_space"]:
- self.log.warning(_("Not enough space left on device"))
+ self.core.log.warning(_("Not enough space left on device"))
self.pause = True
if free and not self.pause:
diff --git a/pyload/plugins/Plugin.py b/pyload/plugins/Plugin.py
index a4b4cf74e..0b8e02512 100644
--- a/pyload/plugins/Plugin.py
+++ b/pyload/plugins/Plugin.py
@@ -54,15 +54,11 @@ class Base(object):
def __init__(self, core):
#: Core instance
self.core = core
- #: logging instance
- self.log = core.log
- #: core config
- self.config = core.config
def _log(self, type, args):
msg = " | ".join([str(a).strip() for a in args if a])
- logger = getattr(self.log, type)
+ logger = getattr(self.core.log, type)
logger("%s: %s" % (self.__name__, msg or _("%s MARK" % type.upper())))
@@ -228,21 +224,16 @@ class Plugin(Base):
#: captcha task
self.cTask = None
- self.html = None #@TODO: Move to hoster class
+ self.html = None #@TODO: Move to hoster class in 0.4.10
self.retries = 0
- #: some plugins store html code here
-
- #: quick caller for API
- # self.api = self.core.api
-
self.init()
def getChunkCount(self):
if self.chunkLimit <= 0:
- return self.config['download']['chunks']
- return min(self.config['download']['chunks'], self.chunkLimit)
+ return self.core.config['download']['chunks']
+ return min(self.core.config['download']['chunks'], self.chunkLimit)
def __call__(self):
@@ -607,7 +598,7 @@ class Plugin(Base):
self.pyfile.setStatus("downloading")
- download_folder = self.config['general']['download_folder']
+ download_folder = self.core.config['general']['download_folder']
location = safe_join(download_folder, self.pyfile.package().folder)
@@ -616,8 +607,8 @@ class Plugin(Base):
makedirs(location, int(self.core.config['permission']['folder'], 8))
if self.core.config['permission']['change_dl'] and os.name != "nt":
- uid = getpwnam(self.config['permission']['user'])[2]
- gid = getgrnam(self.config['permission']['group'])[2]
+ uid = getpwnam(self.core.config['permission']['user'])[2]
+ gid = getgrnam(self.core.config['permission']['group'])[2]
chown(location, uid, gid)
except Exception, e:
@@ -656,8 +647,8 @@ class Plugin(Base):
if self.core.config['permission']['change_dl'] and os.name != "nt":
try:
- uid = getpwnam(self.config['permission']['user'])[2]
- gid = getgrnam(self.config['permission']['group'])[2]
+ uid = getpwnam(self.core.config['permission']['user'])[2]
+ gid = getgrnam(self.core.config['permission']['group'])[2]
chown(fs_filename, uid, gid)
except Exception, e:
@@ -732,10 +723,10 @@ class Plugin(Base):
5, 7) and starting: #a download is waiting/starting and was appenrently started before
raise SkipDownload(pyfile.pluginname)
- download_folder = self.config['general']['download_folder']
+ download_folder = self.core.config['general']['download_folder']
location = safe_join(download_folder, pack.folder, self.pyfile.name)
- if starting and self.config['download']['skip_existing'] and exists(location):
+ if starting and self.core.config['download']['skip_existing'] and exists(location):
size = os.stat(location).st_size
if size >= self.pyfile.size:
raise SkipDownload("File exists")
diff --git a/pyload/plugins/crypter/LinkCryptWs.py b/pyload/plugins/crypter/LinkCryptWs.py
index bbcef02fd..4eb48deae 100644
--- a/pyload/plugins/crypter/LinkCryptWs.py
+++ b/pyload/plugins/crypter/LinkCryptWs.py
@@ -188,10 +188,10 @@ class LinkCryptWs(Crypter):
def handleLinkSource(self, type_):
- if type_ is 'cnl':
+ if type_ == 'cnl':
return self.handleCNL2()
- elif type_ is 'web':
+ elif type_ == 'web':
return self.handleWebLinks()
elif type_ in ('rsdf', 'ccf', 'dlc'):
diff --git a/pyload/plugins/crypter/MultiuploadCom.py b/pyload/plugins/crypter/MultiuploadCom.py
index 61295bc85..713d67c18 100644
--- a/pyload/plugins/crypter/MultiuploadCom.py
+++ b/pyload/plugins/crypter/MultiuploadCom.py
@@ -10,6 +10,6 @@ class MultiuploadCom(DeadCrypter):
__pattern__ = r'http://(?:www\.)?multiupload\.(com|nl)/\w+'
- __description__ = """ MultiUpload.com decrypter plugin """
+ __description__ = """MultiUpload.com decrypter plugin"""
__license__ = "GPLv3"
__authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
diff --git a/pyload/plugins/internal/Addon.py b/pyload/plugins/internal/Addon.py
index 1aa51c69a..e0be3097e 100644
--- a/pyload/plugins/internal/Addon.py
+++ b/pyload/plugins/internal/Addon.py
@@ -30,7 +30,7 @@ class Addon(Base):
__config__ = [] #: [("name", "type", "desc", "default")]
- __description__ = """Interface for addon"""
+ __description__ = """Base addon/hook plugin"""
__license__ = "GPLv3"
__authors__ = [("mkaay", "mkaay@mkaay.de"),
("RaNaN", "RaNaN@pyload.org")]
@@ -113,7 +113,7 @@ class Addon(Base):
def isActivated(self):
""" checks if addon is activated"""
- return self.config.getPlugin(self.__name__, "activated")
+ return self.core.config.getPlugin(self.__name__, "activated")
#event methods - overwrite these if needed
diff --git a/pyload/plugins/internal/Container.py b/pyload/plugins/internal/Container.py
index 4bd6644f9..b7dd3aa20 100644
--- a/pyload/plugins/internal/Container.py
+++ b/pyload/plugins/internal/Container.py
@@ -43,7 +43,7 @@ class Container(Crypter):
if self.pyfile.url.startswith("http"):
self.pyfile.name = re.findall("([^\/=]+)", self.pyfile.url)[-1]
content = self.load(self.pyfile.url)
- self.pyfile.url = safe_join(self.config['general']['download_folder'], self.pyfile.name)
+ self.pyfile.url = safe_join(self.core.config['general']['download_folder'], self.pyfile.name)
try:
with open(self.pyfile.url, "wb") as f:
f.write(content)
diff --git a/pyload/plugins/internal/Crypter.py b/pyload/plugins/internal/Crypter.py
index ed92357a5..4fae07ff1 100644
--- a/pyload/plugins/internal/Crypter.py
+++ b/pyload/plugins/internal/Crypter.py
@@ -63,7 +63,7 @@ class Crypter(Plugin):
package_password = self.pyfile.package().password
package_queue = self.pyfile.package().queue
- folder_per_package = self.config['general']['folder_per_package']
+ folder_per_package = self.core.config['general']['folder_per_package']
try:
use_subfolder = self.getConfig('use_subfolder')
except:
diff --git a/pyload/plugins/internal/MultiHoster.py b/pyload/plugins/internal/MultiHoster.py
index 88a9c888b..02594e04e 100644
--- a/pyload/plugins/internal/MultiHoster.py
+++ b/pyload/plugins/internal/MultiHoster.py
@@ -11,7 +11,7 @@ class MultiHoster(Addon):
__type__ = "addon"
__version__ = "0.20"
- __description__ = """Generic MultiHoster plugin"""
+ __description__ = """Base multi-hoster plugin"""
__license__ = "GPLv3"
__authors__ = [("pyLoad Team", "admin@pyload.org")]
diff --git a/pyload/plugins/internal/OCR.py b/pyload/plugins/internal/OCR.py
index b5ee30cb7..dec9f28b7 100644
--- a/pyload/plugins/internal/OCR.py
+++ b/pyload/plugins/internal/OCR.py
@@ -18,7 +18,7 @@ class OCR(object):
__type__ = "ocr"
__version__ = "0.01"
- __description__ = """OCR base plugin"""
+ __description__ = """Base OCR plugin"""
__license__ = "GPLv3"
__authors__ = [("pyLoad Team", "admin@pyload.org")]