From 0e1ef9bc01579328e17e79416fa3c1c7b77adcc8 Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Mon, 8 Jun 2015 06:08:01 +0200 Subject: Update everything --- module/plugins/hooks/ExternalScripts.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'module/plugins/hooks/ExternalScripts.py') diff --git a/module/plugins/hooks/ExternalScripts.py b/module/plugins/hooks/ExternalScripts.py index a0815499b..a4f698f98 100644 --- a/module/plugins/hooks/ExternalScripts.py +++ b/module/plugins/hooks/ExternalScripts.py @@ -3,14 +3,14 @@ import os import subprocess -from module.plugins.Hook import Hook +from module.plugins.internal.Hook import Hook from module.utils import fs_encode, save_join class ExternalScripts(Hook): __name__ = "ExternalScripts" __type__ = "hook" - __version__ = "0.39" + __version__ = "0.40" __config__ = [("activated", "bool", "Activated" , True ), ("waitend" , "bool", "Wait script ending", False)] -- cgit v1.2.3 From 043e3dfd83bb217ea15280fef6523fcca691fbf2 Mon Sep 17 00:00:00 2001 From: GammaC0de Date: Thu, 11 Jun 2015 01:47:38 +0300 Subject: fix #1475 --- module/plugins/hooks/ExternalScripts.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'module/plugins/hooks/ExternalScripts.py') diff --git a/module/plugins/hooks/ExternalScripts.py b/module/plugins/hooks/ExternalScripts.py index a4f698f98..60a343f67 100644 --- a/module/plugins/hooks/ExternalScripts.py +++ b/module/plugins/hooks/ExternalScripts.py @@ -10,7 +10,7 @@ from module.utils import fs_encode, save_join class ExternalScripts(Hook): __name__ = "ExternalScripts" __type__ = "hook" - __version__ = "0.40" + __version__ = "0.41" __config__ = [("activated", "bool", "Activated" , True ), ("waitend" , "bool", "Wait script ending", False)] @@ -25,17 +25,17 @@ class ExternalScripts(Hook): interval = 0 #@TODO: Remove in 0.4.10 + event_list = ["archive_extract_failed", "archive_extracted" , + "package_extract_failed", "package_extracted" , + "all_archives_extracted", "all_archives_processed", + "allDownloadsFinished" , "allDownloadsProcessed" , + "packageDeleted"] + def setup(self): self.info = {'oldip': None} self.scripts = {} - self.event_list = ["archive_extract_failed", "archive_extracted" , - "package_extract_failed", "package_extracted" , - "all_archives_extracted", "all_archives_processed", - "allDownloadsFinished" , "allDownloadsProcessed" , - "packageDeleted"] - folders = ["pyload_start", "pyload_restart", "pyload_stop", "before_reconnect", "after_reconnect", "download_preparing", "download_failed", "download_finished", -- cgit v1.2.3 From b7c7ecbd96514e084378fad00180073380462b67 Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Sun, 14 Jun 2015 18:36:31 +0200 Subject: Revert https://github.com/pyload/pyload/commit/043e3dfd83bb217ea15280fef6523fcca691fbf2 --- module/plugins/hooks/ExternalScripts.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'module/plugins/hooks/ExternalScripts.py') diff --git a/module/plugins/hooks/ExternalScripts.py b/module/plugins/hooks/ExternalScripts.py index 60a343f67..b5164a5aa 100644 --- a/module/plugins/hooks/ExternalScripts.py +++ b/module/plugins/hooks/ExternalScripts.py @@ -10,7 +10,7 @@ from module.utils import fs_encode, save_join class ExternalScripts(Hook): __name__ = "ExternalScripts" __type__ = "hook" - __version__ = "0.41" + __version__ = "0.42" __config__ = [("activated", "bool", "Activated" , True ), ("waitend" , "bool", "Wait script ending", False)] @@ -25,17 +25,17 @@ class ExternalScripts(Hook): interval = 0 #@TODO: Remove in 0.4.10 - event_list = ["archive_extract_failed", "archive_extracted" , - "package_extract_failed", "package_extracted" , - "all_archives_extracted", "all_archives_processed", - "allDownloadsFinished" , "allDownloadsProcessed" , - "packageDeleted"] - def setup(self): self.info = {'oldip': None} self.scripts = {} + self.event_list = ["archive_extract_failed", "archive_extracted" , + "package_extract_failed", "package_extracted" , + "all_archives_extracted", "all_archives_processed", + "allDownloadsFinished" , "allDownloadsProcessed" , + "packageDeleted"] + folders = ["pyload_start", "pyload_restart", "pyload_stop", "before_reconnect", "after_reconnect", "download_preparing", "download_failed", "download_finished", -- cgit v1.2.3 From c9144f451b74e4d3cc67935b9e73c662ac870c6e Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Mon, 15 Jun 2015 07:18:39 +0200 Subject: Hook plugin code cosmetics (2) --- module/plugins/hooks/ExternalScripts.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'module/plugins/hooks/ExternalScripts.py') diff --git a/module/plugins/hooks/ExternalScripts.py b/module/plugins/hooks/ExternalScripts.py index b5164a5aa..140dcb057 100644 --- a/module/plugins/hooks/ExternalScripts.py +++ b/module/plugins/hooks/ExternalScripts.py @@ -103,7 +103,7 @@ class ExternalScripts(Hook): self.callScript(script) - def coreExiting(self): + def exit(self): for script in self.scripts['pyload_restart' if self.core.do_restart else 'pyload_stop']: self.callScript(script) -- cgit v1.2.3 From 5a139055ae658d3a05cbb658cbd66aeae0d01db5 Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Mon, 15 Jun 2015 21:06:10 +0200 Subject: Spare code cosmetics --- module/plugins/hooks/ExternalScripts.py | 56 ++++++++++++++++----------------- 1 file changed, 28 insertions(+), 28 deletions(-) (limited to 'module/plugins/hooks/ExternalScripts.py') diff --git a/module/plugins/hooks/ExternalScripts.py b/module/plugins/hooks/ExternalScripts.py index 140dcb057..85df87a23 100644 --- a/module/plugins/hooks/ExternalScripts.py +++ b/module/plugins/hooks/ExternalScripts.py @@ -4,7 +4,7 @@ import os import subprocess from module.plugins.internal.Hook import Hook -from module.utils import fs_encode, save_join +from module.utils import fs_encode, save_join as fs_join class ExternalScripts(Hook): @@ -66,7 +66,7 @@ class ExternalScripts(Hook): return for filename in os.listdir(dir): - file = save_join(dir, filename) + file = fs_join(dir, filename) if not os.path.isfile(file): continue @@ -108,41 +108,41 @@ class ExternalScripts(Hook): self.callScript(script) - def beforeReconnecting(self, ip): + def before_reconnect(self, ip): for script in self.scripts['before_reconnect']: self.callScript(script, ip) self.info['oldip'] = ip - def afterReconnecting(self, ip): + def after_reconnect(self, ip): for script in self.scripts['after_reconnect']: self.callScript(script, ip, self.info['oldip']) #@TODO: Use built-in oldip in 0.4.10 - def downloadPreparing(self, pyfile): + def download_preparing(self, pyfile): for script in self.scripts['download_preparing']: self.callScript(script, pyfile.id, pyfile.name, None, pyfile.pluginname, pyfile.url) - def downloadFailed(self, pyfile): - if self.config['general']['folder_per_package']: - download_folder = save_join(self.config['general']['download_folder'], pyfile.package().folder) + def download_failed(self, pyfile): + if self.core.config['general']['folder_per_package']: + download_folder = fs_join(self.core.config['general']['download_folder'], pyfile.package().folder) else: - download_folder = self.config['general']['download_folder'] + download_folder = self.core.config['general']['download_folder'] for script in self.scripts['download_failed']: - file = save_join(download_folder, pyfile.name) + file = fs_join(download_folder, pyfile.name) self.callScript(script, pyfile.id, pyfile.name, file, pyfile.pluginname, pyfile.url) - def downloadFinished(self, pyfile): - if self.config['general']['folder_per_package']: - download_folder = save_join(self.config['general']['download_folder'], pyfile.package().folder) + def download_finished(self, pyfile): + if self.core.config['general']['folder_per_package']: + download_folder = fs_join(self.core.config['general']['download_folder'], pyfile.package().folder) else: - download_folder = self.config['general']['download_folder'] + download_folder = self.core.config['general']['download_folder'] for script in self.scripts['download_finished']: - file = save_join(download_folder, pyfile.name) + file = fs_join(download_folder, pyfile.name) self.callScript(script, pyfile.id, pyfile.name, file, pyfile.pluginname, pyfile.url) @@ -156,11 +156,11 @@ class ExternalScripts(Hook): self.callScript(script, pyfile.id, pyfile.name, archive.filename, archive.out, archive.files) - def packageFinished(self, pypack): - if self.config['general']['folder_per_package']: - download_folder = save_join(self.config['general']['download_folder'], pypack.folder) + def package_finished(self, pypack): + if self.core.config['general']['folder_per_package']: + download_folder = fs_join(self.core.config['general']['download_folder'], pypack.folder) else: - download_folder = self.config['general']['download_folder'] + download_folder = self.core.config['general']['download_folder'] for script in self.scripts['package_finished']: self.callScript(script, pypack.id, pypack.name, download_folder, pypack.password) @@ -169,30 +169,30 @@ class ExternalScripts(Hook): def packageDeleted(self, pid): pack = self.core.api.getPackageInfo(pid) - if self.config['general']['folder_per_package']: - download_folder = save_join(self.config['general']['download_folder'], pack.folder) + if self.core.config['general']['folder_per_package']: + download_folder = fs_join(self.core.config['general']['download_folder'], pack.folder) else: - download_folder = self.config['general']['download_folder'] + download_folder = self.core.config['general']['download_folder'] for script in self.scripts['package_deleted']: self.callScript(script, pack.id, pack.name, download_folder, pack.password) def package_extract_failed(self, pypack): - if self.config['general']['folder_per_package']: - download_folder = save_join(self.config['general']['download_folder'], pypack.folder) + if self.core.config['general']['folder_per_package']: + download_folder = fs_join(self.core.config['general']['download_folder'], pypack.folder) else: - download_folder = self.config['general']['download_folder'] + download_folder = self.core.config['general']['download_folder'] for script in self.scripts['package_extract_failed']: self.callScript(script, pypack.id, pypack.name, download_folder, pypack.password) def package_extracted(self, pypack): - if self.config['general']['folder_per_package']: - download_folder = save_join(self.config['general']['download_folder'], pypack.folder) + if self.core.config['general']['folder_per_package']: + download_folder = fs_join(self.core.config['general']['download_folder'], pypack.folder) else: - download_folder = self.config['general']['download_folder'] + download_folder = self.core.config['general']['download_folder'] for script in self.scripts['package_extracted']: self.callScript(script, pypack.id, pypack.name, download_folder) -- cgit v1.2.3 From c1764e2fea0bb05164c83a876e8cd58b97f58f25 Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Tue, 16 Jun 2015 17:31:38 +0200 Subject: Update all --- module/plugins/hooks/ExternalScripts.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'module/plugins/hooks/ExternalScripts.py') diff --git a/module/plugins/hooks/ExternalScripts.py b/module/plugins/hooks/ExternalScripts.py index 85df87a23..6b3d21d68 100644 --- a/module/plugins/hooks/ExternalScripts.py +++ b/module/plugins/hooks/ExternalScripts.py @@ -82,11 +82,12 @@ class ExternalScripts(Hook): def callScript(self, script, *args): try: - cmd_args = [fs_encode(str(x) if not isinstance(x, basestring) else x) for x in args] - cmd = [script] + cmd_args + cmd_args = (fs_encode(x) if isinstande(x, basestring) else str(x) for x in args) #@NOTE: `fs_encode` -> `encode` in 0.4.10 self.logDebug("Executing: %s" % os.path.abspath(script), "Args: " + ' '.join(cmd_args)) + cmd = (script,) + cmd_args + p = subprocess.Popen(cmd, bufsize=-1) #@NOTE: output goes to pyload if self.getConfig('waitend'): p.communicate() -- cgit v1.2.3 From 164512b6a74c94a731fcee7435dce1ccfa2f71e7 Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Wed, 17 Jun 2015 18:29:50 +0200 Subject: Spare code cosmetics --- module/plugins/hooks/ExternalScripts.py | 36 ++++++++++++++++----------------- 1 file changed, 18 insertions(+), 18 deletions(-) (limited to 'module/plugins/hooks/ExternalScripts.py') diff --git a/module/plugins/hooks/ExternalScripts.py b/module/plugins/hooks/ExternalScripts.py index 6b3d21d68..29b43929e 100644 --- a/module/plugins/hooks/ExternalScripts.py +++ b/module/plugins/hooks/ExternalScripts.py @@ -126,10 +126,10 @@ class ExternalScripts(Hook): def download_failed(self, pyfile): - if self.core.config['general']['folder_per_package']: - download_folder = fs_join(self.core.config['general']['download_folder'], pyfile.package().folder) + if self.core.config.get("general", "folder_per_package"): + download_folder = fs_join(self.core.config.get("general", "download_folder"), pyfile.package().folder) else: - download_folder = self.core.config['general']['download_folder'] + download_folder = self.core.config.get("general", "download_folder") for script in self.scripts['download_failed']: file = fs_join(download_folder, pyfile.name) @@ -137,10 +137,10 @@ class ExternalScripts(Hook): def download_finished(self, pyfile): - if self.core.config['general']['folder_per_package']: - download_folder = fs_join(self.core.config['general']['download_folder'], pyfile.package().folder) + if self.core.config.get("general", "folder_per_package"): + download_folder = fs_join(self.core.config.get("general", "download_folder"), pyfile.package().folder) else: - download_folder = self.core.config['general']['download_folder'] + download_folder = self.core.config.get("general", "download_folder") for script in self.scripts['download_finished']: file = fs_join(download_folder, pyfile.name) @@ -158,10 +158,10 @@ class ExternalScripts(Hook): def package_finished(self, pypack): - if self.core.config['general']['folder_per_package']: - download_folder = fs_join(self.core.config['general']['download_folder'], pypack.folder) + if self.core.config.get("general", "folder_per_package"): + download_folder = fs_join(self.core.config.get("general", "download_folder"), pypack.folder) else: - download_folder = self.core.config['general']['download_folder'] + download_folder = self.core.config.get("general", "download_folder") for script in self.scripts['package_finished']: self.callScript(script, pypack.id, pypack.name, download_folder, pypack.password) @@ -170,30 +170,30 @@ class ExternalScripts(Hook): def packageDeleted(self, pid): pack = self.core.api.getPackageInfo(pid) - if self.core.config['general']['folder_per_package']: - download_folder = fs_join(self.core.config['general']['download_folder'], pack.folder) + if self.core.config.get("general", "folder_per_package"): + download_folder = fs_join(self.core.config.get("general", "download_folder"), pack.folder) else: - download_folder = self.core.config['general']['download_folder'] + download_folder = self.core.config.get("general", "download_folder") for script in self.scripts['package_deleted']: self.callScript(script, pack.id, pack.name, download_folder, pack.password) def package_extract_failed(self, pypack): - if self.core.config['general']['folder_per_package']: - download_folder = fs_join(self.core.config['general']['download_folder'], pypack.folder) + if self.core.config.get("general", "folder_per_package"): + download_folder = fs_join(self.core.config.get("general", "download_folder"), pypack.folder) else: - download_folder = self.core.config['general']['download_folder'] + download_folder = self.core.config.get("general", "download_folder") for script in self.scripts['package_extract_failed']: self.callScript(script, pypack.id, pypack.name, download_folder, pypack.password) def package_extracted(self, pypack): - if self.core.config['general']['folder_per_package']: - download_folder = fs_join(self.core.config['general']['download_folder'], pypack.folder) + if self.core.config.get("general", "folder_per_package"): + download_folder = fs_join(self.core.config.get("general", "download_folder"), pypack.folder) else: - download_folder = self.core.config['general']['download_folder'] + download_folder = self.core.config.get("general", "download_folder") for script in self.scripts['package_extracted']: self.callScript(script, pypack.id, pypack.name, download_folder) -- cgit v1.2.3 From b1759bc440cd6013837697eb8de540914f693ffd Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Tue, 7 Jul 2015 01:23:55 +0200 Subject: No camelCase style anymore --- module/plugins/hooks/ExternalScripts.py | 69 +++++++++++++++++---------------- 1 file changed, 35 insertions(+), 34 deletions(-) (limited to 'module/plugins/hooks/ExternalScripts.py') diff --git a/module/plugins/hooks/ExternalScripts.py b/module/plugins/hooks/ExternalScripts.py index 29b43929e..6bf3cf347 100644 --- a/module/plugins/hooks/ExternalScripts.py +++ b/module/plugins/hooks/ExternalScripts.py @@ -10,7 +10,7 @@ from module.utils import fs_encode, save_join as fs_join class ExternalScripts(Hook): __name__ = "ExternalScripts" __type__ = "hook" - __version__ = "0.42" + __version__ = "0.43" __config__ = [("activated", "bool", "Activated" , True ), ("waitend" , "bool", "Wait script ending", False)] @@ -32,9 +32,10 @@ class ExternalScripts(Hook): self.event_list = ["archive_extract_failed", "archive_extracted" , "package_extract_failed", "package_extracted" , - "all_archives_extracted", "all_archives_processed", - "allDownloadsFinished" , "allDownloadsProcessed" , - "packageDeleted"] + "all_archives_extracted", "all_archives_processed"] + self.event_map = {'allDownloadsFinished' : "all_downloads_finished" , + 'allDownloadsProcessed': "all_downloads_processed", + 'packageDeleted' : "package_deleted" } folders = ["pyload_start", "pyload_restart", "pyload_stop", "before_reconnect", "after_reconnect", @@ -47,22 +48,22 @@ class ExternalScripts(Hook): for folder in folders: self.scripts[folder] = [] for dir in (pypath, ''): - self.initPluginType(folder, os.path.join(dir, 'scripts', folder)) + self.init_plugin_type(folder, os.path.join(dir, 'scripts', folder)) for script_type, names in self.scripts.iteritems(): if names: - self.logInfo(_("Installed scripts for: ") + script_type, ", ".join(map(os.path.basename, names))) + self.log_info(_("Installed scripts for: ") + script_type, ", ".join(map(os.path.basename, names))) self.pyload_start() - def initPluginType(self, name, dir): + def init_plugin_type(self, name, dir): if not os.path.isdir(dir): try: os.makedirs(dir) except OSError, e: - self.logDebug(e) + self.log_debug(e) return for filename in os.listdir(dir): @@ -75,54 +76,54 @@ class ExternalScripts(Hook): continue if not os.access(file, os.X_OK): - self.logWarning(_("Script not executable:") + " %s/%s" % (name, filename)) + self.log_warning(_("Script not executable:") + " %s/%s" % (name, filename)) self.scripts[name].append(file) - def callScript(self, script, *args): + def call_script(self, script, *args): try: cmd_args = (fs_encode(x) if isinstande(x, basestring) else str(x) for x in args) #@NOTE: `fs_encode` -> `encode` in 0.4.10 - self.logDebug("Executing: %s" % os.path.abspath(script), "Args: " + ' '.join(cmd_args)) + self.log_debug("Executing: %s" % os.path.abspath(script), "Args: " + ' '.join(cmd_args)) cmd = (script,) + cmd_args p = subprocess.Popen(cmd, bufsize=-1) #@NOTE: output goes to pyload - if self.getConfig('waitend'): + if self.get_config('waitend'): p.communicate() except Exception, e: try: - self.logError(_("Runtime error: %s") % os.path.abspath(script), e) + self.log_error(_("Runtime error: %s") % os.path.abspath(script), e) except Exception: - self.logError(_("Runtime error: %s") % os.path.abspath(script), _("Unknown error")) + self.log_error(_("Runtime error: %s") % os.path.abspath(script), _("Unknown error")) def pyload_start(self): for script in self.scripts['pyload_start']: - self.callScript(script) + self.call_script(script) def exit(self): for script in self.scripts['pyload_restart' if self.core.do_restart else 'pyload_stop']: - self.callScript(script) + self.call_script(script) def before_reconnect(self, ip): for script in self.scripts['before_reconnect']: - self.callScript(script, ip) + self.call_script(script, ip) self.info['oldip'] = ip def after_reconnect(self, ip): for script in self.scripts['after_reconnect']: - self.callScript(script, ip, self.info['oldip']) #@TODO: Use built-in oldip in 0.4.10 + self.call_script(script, ip, self.info['oldip']) #@TODO: Use built-in oldip in 0.4.10 def download_preparing(self, pyfile): for script in self.scripts['download_preparing']: - self.callScript(script, pyfile.id, pyfile.name, None, pyfile.pluginname, pyfile.url) + self.call_script(script, pyfile.id, pyfile.name, None, pyfile.pluginname, pyfile.url) def download_failed(self, pyfile): @@ -133,7 +134,7 @@ class ExternalScripts(Hook): for script in self.scripts['download_failed']: file = fs_join(download_folder, pyfile.name) - self.callScript(script, pyfile.id, pyfile.name, file, pyfile.pluginname, pyfile.url) + self.call_script(script, pyfile.id, pyfile.name, file, pyfile.pluginname, pyfile.url) def download_finished(self, pyfile): @@ -144,17 +145,17 @@ class ExternalScripts(Hook): for script in self.scripts['download_finished']: file = fs_join(download_folder, pyfile.name) - self.callScript(script, pyfile.id, pyfile.name, file, pyfile.pluginname, pyfile.url) + self.call_script(script, pyfile.id, pyfile.name, file, pyfile.pluginname, pyfile.url) def archive_extract_failed(self, pyfile, archive): for script in self.scripts['archive_extract_failed']: - self.callScript(script, pyfile.id, pyfile.name, archive.filename, archive.out, archive.files) + self.call_script(script, pyfile.id, pyfile.name, archive.filename, archive.out, archive.files) def archive_extracted(self, pyfile, archive): for script in self.scripts['archive_extracted']: - self.callScript(script, pyfile.id, pyfile.name, archive.filename, archive.out, archive.files) + self.call_script(script, pyfile.id, pyfile.name, archive.filename, archive.out, archive.files) def package_finished(self, pypack): @@ -164,10 +165,10 @@ class ExternalScripts(Hook): download_folder = self.core.config.get("general", "download_folder") for script in self.scripts['package_finished']: - self.callScript(script, pypack.id, pypack.name, download_folder, pypack.password) + self.call_script(script, pypack.id, pypack.name, download_folder, pypack.password) - def packageDeleted(self, pid): + def package_deleted(self, pid): pack = self.core.api.getPackageInfo(pid) if self.core.config.get("general", "folder_per_package"): @@ -176,7 +177,7 @@ class ExternalScripts(Hook): download_folder = self.core.config.get("general", "download_folder") for script in self.scripts['package_deleted']: - self.callScript(script, pack.id, pack.name, download_folder, pack.password) + self.call_script(script, pack.id, pack.name, download_folder, pack.password) def package_extract_failed(self, pypack): @@ -186,7 +187,7 @@ class ExternalScripts(Hook): download_folder = self.core.config.get("general", "download_folder") for script in self.scripts['package_extract_failed']: - self.callScript(script, pypack.id, pypack.name, download_folder, pypack.password) + self.call_script(script, pypack.id, pypack.name, download_folder, pypack.password) def package_extracted(self, pypack): @@ -196,24 +197,24 @@ class ExternalScripts(Hook): download_folder = self.core.config.get("general", "download_folder") for script in self.scripts['package_extracted']: - self.callScript(script, pypack.id, pypack.name, download_folder) + self.call_script(script, pypack.id, pypack.name, download_folder) - def allDownloadsFinished(self): + def all_downloads_finished(self): for script in self.scripts['all_downloads_finished']: - self.callScript(script) + self.call_script(script) - def allDownloadsProcessed(self): + def all_downloads_processed(self): for script in self.scripts['all_downloads_processed']: - self.callScript(script) + self.call_script(script) def all_archives_extracted(self): for script in self.scripts['all_archives_extracted']: - self.callScript(script) + self.call_script(script) def all_archives_processed(self): for script in self.scripts['all_archives_processed']: - self.callScript(script) + self.call_script(script) -- cgit v1.2.3 From 502517f37c7540b0bddb092e69386d9d6f08800c Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Sun, 19 Jul 2015 09:42:34 +0200 Subject: Fix addons --- module/plugins/hooks/ExternalScripts.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'module/plugins/hooks/ExternalScripts.py') diff --git a/module/plugins/hooks/ExternalScripts.py b/module/plugins/hooks/ExternalScripts.py index 6bf3cf347..2a96d9e59 100644 --- a/module/plugins/hooks/ExternalScripts.py +++ b/module/plugins/hooks/ExternalScripts.py @@ -3,11 +3,11 @@ import os import subprocess -from module.plugins.internal.Hook import Hook +from module.plugins.internal.Addon import Addon from module.utils import fs_encode, save_join as fs_join -class ExternalScripts(Hook): +class ExternalScripts(Addon): __name__ = "ExternalScripts" __type__ = "hook" __version__ = "0.43" @@ -23,11 +23,8 @@ class ExternalScripts(Hook): ("Walter Purcaro", "vuolter@gmail.com")] - interval = 0 #@TODO: Remove in 0.4.10 - - - def setup(self): - self.info = {'oldip': None} + def init(self): + self.info['oldip'] = None self.scripts = {} self.event_list = ["archive_extract_failed", "archive_extracted" , -- cgit v1.2.3 From 56389e28ba5d2f5658278bc7f486d73be747f135 Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Sun, 19 Jul 2015 11:44:49 +0200 Subject: Rename self.core to self.pyload (plugins only) --- module/plugins/hooks/ExternalScripts.py | 40 ++++++++++++++++----------------- 1 file changed, 20 insertions(+), 20 deletions(-) (limited to 'module/plugins/hooks/ExternalScripts.py') diff --git a/module/plugins/hooks/ExternalScripts.py b/module/plugins/hooks/ExternalScripts.py index 2a96d9e59..6c8acca48 100644 --- a/module/plugins/hooks/ExternalScripts.py +++ b/module/plugins/hooks/ExternalScripts.py @@ -103,7 +103,7 @@ class ExternalScripts(Addon): def exit(self): - for script in self.scripts['pyload_restart' if self.core.do_restart else 'pyload_stop']: + for script in self.scripts['pyload_restart' if self.pyload.do_restart else 'pyload_stop']: self.call_script(script) @@ -124,10 +124,10 @@ class ExternalScripts(Addon): def download_failed(self, pyfile): - if self.core.config.get("general", "folder_per_package"): - download_folder = fs_join(self.core.config.get("general", "download_folder"), pyfile.package().folder) + if self.pyload.config.get("general", "folder_per_package"): + download_folder = fs_join(self.pyload.config.get("general", "download_folder"), pyfile.package().folder) else: - download_folder = self.core.config.get("general", "download_folder") + download_folder = self.pyload.config.get("general", "download_folder") for script in self.scripts['download_failed']: file = fs_join(download_folder, pyfile.name) @@ -135,10 +135,10 @@ class ExternalScripts(Addon): def download_finished(self, pyfile): - if self.core.config.get("general", "folder_per_package"): - download_folder = fs_join(self.core.config.get("general", "download_folder"), pyfile.package().folder) + if self.pyload.config.get("general", "folder_per_package"): + download_folder = fs_join(self.pyload.config.get("general", "download_folder"), pyfile.package().folder) else: - download_folder = self.core.config.get("general", "download_folder") + download_folder = self.pyload.config.get("general", "download_folder") for script in self.scripts['download_finished']: file = fs_join(download_folder, pyfile.name) @@ -156,42 +156,42 @@ class ExternalScripts(Addon): def package_finished(self, pypack): - if self.core.config.get("general", "folder_per_package"): - download_folder = fs_join(self.core.config.get("general", "download_folder"), pypack.folder) + if self.pyload.config.get("general", "folder_per_package"): + download_folder = fs_join(self.pyload.config.get("general", "download_folder"), pypack.folder) else: - download_folder = self.core.config.get("general", "download_folder") + download_folder = self.pyload.config.get("general", "download_folder") for script in self.scripts['package_finished']: self.call_script(script, pypack.id, pypack.name, download_folder, pypack.password) def package_deleted(self, pid): - pack = self.core.api.getPackageInfo(pid) + pack = self.pyload.api.getPackageInfo(pid) - if self.core.config.get("general", "folder_per_package"): - download_folder = fs_join(self.core.config.get("general", "download_folder"), pack.folder) + if self.pyload.config.get("general", "folder_per_package"): + download_folder = fs_join(self.pyload.config.get("general", "download_folder"), pack.folder) else: - download_folder = self.core.config.get("general", "download_folder") + download_folder = self.pyload.config.get("general", "download_folder") for script in self.scripts['package_deleted']: self.call_script(script, pack.id, pack.name, download_folder, pack.password) def package_extract_failed(self, pypack): - if self.core.config.get("general", "folder_per_package"): - download_folder = fs_join(self.core.config.get("general", "download_folder"), pypack.folder) + if self.pyload.config.get("general", "folder_per_package"): + download_folder = fs_join(self.pyload.config.get("general", "download_folder"), pypack.folder) else: - download_folder = self.core.config.get("general", "download_folder") + download_folder = self.pyload.config.get("general", "download_folder") for script in self.scripts['package_extract_failed']: self.call_script(script, pypack.id, pypack.name, download_folder, pypack.password) def package_extracted(self, pypack): - if self.core.config.get("general", "folder_per_package"): - download_folder = fs_join(self.core.config.get("general", "download_folder"), pypack.folder) + if self.pyload.config.get("general", "folder_per_package"): + download_folder = fs_join(self.pyload.config.get("general", "download_folder"), pypack.folder) else: - download_folder = self.core.config.get("general", "download_folder") + download_folder = self.pyload.config.get("general", "download_folder") for script in self.scripts['package_extracted']: self.call_script(script, pypack.id, pypack.name, download_folder) -- cgit v1.2.3 From d38e830b7c0b3c6561a0072c74bbccb5fcdf4a61 Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Sun, 19 Jul 2015 14:43:42 +0200 Subject: New __status__ magic key --- module/plugins/hooks/ExternalScripts.py | 1 + 1 file changed, 1 insertion(+) (limited to 'module/plugins/hooks/ExternalScripts.py') diff --git a/module/plugins/hooks/ExternalScripts.py b/module/plugins/hooks/ExternalScripts.py index 6c8acca48..0859b39a9 100644 --- a/module/plugins/hooks/ExternalScripts.py +++ b/module/plugins/hooks/ExternalScripts.py @@ -11,6 +11,7 @@ class ExternalScripts(Addon): __name__ = "ExternalScripts" __type__ = "hook" __version__ = "0.43" + __status__ = "stable" __config__ = [("activated", "bool", "Activated" , True ), ("waitend" , "bool", "Wait script ending", False)] -- cgit v1.2.3 From 94d017cd2a5c1f194960827a8c7e46afc3682008 Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Fri, 24 Jul 2015 06:55:49 +0200 Subject: Hotfixes (2) --- module/plugins/hooks/ExternalScripts.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'module/plugins/hooks/ExternalScripts.py') diff --git a/module/plugins/hooks/ExternalScripts.py b/module/plugins/hooks/ExternalScripts.py index 0859b39a9..126a17635 100644 --- a/module/plugins/hooks/ExternalScripts.py +++ b/module/plugins/hooks/ExternalScripts.py @@ -11,7 +11,7 @@ class ExternalScripts(Addon): __name__ = "ExternalScripts" __type__ = "hook" __version__ = "0.43" - __status__ = "stable" + __status__ = "testing" __config__ = [("activated", "bool", "Activated" , True ), ("waitend" , "bool", "Wait script ending", False)] -- cgit v1.2.3 From 952001324e1faf584b1adcb01c4a0406a3722932 Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Sat, 25 Jul 2015 09:42:49 +0200 Subject: =?UTF-8?q?Don't=20user=20dictionary=E2=80=99s=20iterator=20method?= =?UTF-8?q?s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- module/plugins/hooks/ExternalScripts.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'module/plugins/hooks/ExternalScripts.py') diff --git a/module/plugins/hooks/ExternalScripts.py b/module/plugins/hooks/ExternalScripts.py index 126a17635..9c9cd51c6 100644 --- a/module/plugins/hooks/ExternalScripts.py +++ b/module/plugins/hooks/ExternalScripts.py @@ -48,7 +48,7 @@ class ExternalScripts(Addon): for dir in (pypath, ''): self.init_plugin_type(folder, os.path.join(dir, 'scripts', folder)) - for script_type, names in self.scripts.iteritems(): + for script_type, names in self.scripts.items(): if names: self.log_info(_("Installed scripts for: ") + script_type, ", ".join(map(os.path.basename, names))) -- cgit v1.2.3 From f5b69d3190892aa5a16486f0c6f4fd80d18eba11 Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Tue, 28 Jul 2015 21:59:08 +0200 Subject: Fix https://github.com/pyload/pyload/issues/1582 --- module/plugins/hooks/ExternalScripts.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'module/plugins/hooks/ExternalScripts.py') diff --git a/module/plugins/hooks/ExternalScripts.py b/module/plugins/hooks/ExternalScripts.py index 9c9cd51c6..8e79a49a9 100644 --- a/module/plugins/hooks/ExternalScripts.py +++ b/module/plugins/hooks/ExternalScripts.py @@ -10,7 +10,7 @@ from module.utils import fs_encode, save_join as fs_join class ExternalScripts(Addon): __name__ = "ExternalScripts" __type__ = "hook" - __version__ = "0.43" + __version__ = "0.44" __status__ = "testing" __config__ = [("activated", "bool", "Activated" , True ), @@ -81,7 +81,7 @@ class ExternalScripts(Addon): def call_script(self, script, *args): try: - cmd_args = (fs_encode(x) if isinstande(x, basestring) else str(x) for x in args) #@NOTE: `fs_encode` -> `encode` in 0.4.10 + cmd_args = (fs_encode(x) if isinstance(x, basestring) else str(x) for x in args) #@NOTE: `fs_encode` -> `encode` in 0.4.10 self.log_debug("Executing: %s" % os.path.abspath(script), "Args: " + ' '.join(cmd_args)) -- cgit v1.2.3 From 8c18ee63d1e23dd1e54ecc04b2158fd9eef8a291 Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Wed, 29 Jul 2015 10:39:01 +0200 Subject: Fix http://forum.pyload.org/viewtopic.php?f=12&t=4419 --- module/plugins/hooks/ExternalScripts.py | 94 +++++++++++++++++++++------------ 1 file changed, 61 insertions(+), 33 deletions(-) (limited to 'module/plugins/hooks/ExternalScripts.py') diff --git a/module/plugins/hooks/ExternalScripts.py b/module/plugins/hooks/ExternalScripts.py index 8e79a49a9..8495e2be2 100644 --- a/module/plugins/hooks/ExternalScripts.py +++ b/module/plugins/hooks/ExternalScripts.py @@ -3,18 +3,18 @@ import os import subprocess -from module.plugins.internal.Addon import Addon +from module.plugins.internal.Addon import Addon, Expose from module.utils import fs_encode, save_join as fs_join class ExternalScripts(Addon): __name__ = "ExternalScripts" __type__ = "hook" - __version__ = "0.44" + __version__ = "0.45" __status__ = "testing" __config__ = [("activated", "bool", "Activated" , True ), - ("waitend" , "bool", "Wait script ending", False)] + ("lock" , "bool", "Wait script ending", False)] __description__ = """Run external scripts""" __license__ = "GPLv3" @@ -74,57 +74,62 @@ class ExternalScripts(Addon): continue if not os.access(file, os.X_OK): - self.log_warning(_("Script not executable:") + " %s/%s" % (name, filename)) + self.log_warning(_("Script not executable: %s/%s" % (name, filename)) self.scripts[name].append(file) - def call_script(self, script, *args): + @Expose + def call(self, script, args=[], lock=False): try: - cmd_args = (fs_encode(x) if isinstance(x, basestring) else str(x) for x in args) #@NOTE: `fs_encode` -> `encode` in 0.4.10 + args = [script] + map(encode, args) + self.log_info(_("EXECUTE [%s] %s") % (os.path.dirname(script), args)) - self.log_debug("Executing: %s" % os.path.abspath(script), "Args: " + ' '.join(cmd_args)) - - cmd = (script,) + cmd_args - - p = subprocess.Popen(cmd, bufsize=-1) #@NOTE: output goes to pyload - if self.get_config('waitend'): + p = subprocess.Popen(args, bufsize=-1) #@NOTE: output goes to pyload + if lock: p.communicate() except Exception, e: - try: - self.log_error(_("Runtime error: %s") % os.path.abspath(script), e) - except Exception: - self.log_error(_("Runtime error: %s") % os.path.abspath(script), _("Unknown error")) + self.log_error(_("Runtime error: %s") % os.path.abspath(script), e or _("Unknown error")) def pyload_start(self): + lock = self.get_config('lock') for script in self.scripts['pyload_start']: - self.call_script(script) + self.call(script, lock=lock) def exit(self): + lock = self.get_config('lock') for script in self.scripts['pyload_restart' if self.pyload.do_restart else 'pyload_stop']: - self.call_script(script) + self.call(script, lock=True) def before_reconnect(self, ip): + lock = self.get_config('lock') for script in self.scripts['before_reconnect']: - self.call_script(script, ip) + args = [ip] + self.call(script, args, lock) self.info['oldip'] = ip def after_reconnect(self, ip): + lock = self.get_config('lock') for script in self.scripts['after_reconnect']: - self.call_script(script, ip, self.info['oldip']) #@TODO: Use built-in oldip in 0.4.10 + args = [ip, self.info['oldip']] #@TODO: Use built-in oldip in 0.4.10 + self.call(script, args, lock) def download_preparing(self, pyfile): + lock = self.get_config('lock') for script in self.scripts['download_preparing']: - self.call_script(script, pyfile.id, pyfile.name, None, pyfile.pluginname, pyfile.url) + args = [pyfile.id, pyfile.name, None, pyfile.pluginname, pyfile.url] + self.call(script, args, lock) def download_failed(self, pyfile): + lock = self.get_config('lock') + if self.pyload.config.get("general", "folder_per_package"): download_folder = fs_join(self.pyload.config.get("general", "download_folder"), pyfile.package().folder) else: @@ -132,10 +137,13 @@ class ExternalScripts(Addon): for script in self.scripts['download_failed']: file = fs_join(download_folder, pyfile.name) - self.call_script(script, pyfile.id, pyfile.name, file, pyfile.pluginname, pyfile.url) + args = [script, pyfile.id, pyfile.name, file, pyfile.pluginname, pyfile.url] + self.call(script, args, lock) def download_finished(self, pyfile): + lock = self.get_config('lock') + if self.pyload.config.get("general", "folder_per_package"): download_folder = fs_join(self.pyload.config.get("general", "download_folder"), pyfile.package().folder) else: @@ -143,30 +151,39 @@ class ExternalScripts(Addon): for script in self.scripts['download_finished']: file = fs_join(download_folder, pyfile.name) - self.call_script(script, pyfile.id, pyfile.name, file, pyfile.pluginname, pyfile.url) + args = [pyfile.id, pyfile.name, file, pyfile.pluginname, pyfile.url] + self.call(script, args, lock) def archive_extract_failed(self, pyfile, archive): + lock = self.get_config('lock') for script in self.scripts['archive_extract_failed']: - self.call_script(script, pyfile.id, pyfile.name, archive.filename, archive.out, archive.files) + args = [pyfile.id, pyfile.name, archive.filename, archive.out, archive.files] + self.call(script, args, lock) def archive_extracted(self, pyfile, archive): + lock = self.get_config('lock') for script in self.scripts['archive_extracted']: - self.call_script(script, pyfile.id, pyfile.name, archive.filename, archive.out, archive.files) + args = [script, pyfile.id, pyfile.name, archive.filename, archive.out, archive.files] + self.call(script, args, lock) def package_finished(self, pypack): + lock = self.get_config('lock') + if self.pyload.config.get("general", "folder_per_package"): download_folder = fs_join(self.pyload.config.get("general", "download_folder"), pypack.folder) else: download_folder = self.pyload.config.get("general", "download_folder") for script in self.scripts['package_finished']: - self.call_script(script, pypack.id, pypack.name, download_folder, pypack.password) + args = [pypack.id, pypack.name, download_folder, pypack.password] + self.call(script, args, lock) def package_deleted(self, pid): + lock = self.get_config('lock') pack = self.pyload.api.getPackageInfo(pid) if self.pyload.config.get("general", "folder_per_package"): @@ -175,44 +192,55 @@ class ExternalScripts(Addon): download_folder = self.pyload.config.get("general", "download_folder") for script in self.scripts['package_deleted']: - self.call_script(script, pack.id, pack.name, download_folder, pack.password) + args = [pack.id, pack.name, download_folder, pack.password] + self.call(script, args, lock) def package_extract_failed(self, pypack): + lock = self.get_config('lock') + if self.pyload.config.get("general", "folder_per_package"): download_folder = fs_join(self.pyload.config.get("general", "download_folder"), pypack.folder) else: download_folder = self.pyload.config.get("general", "download_folder") for script in self.scripts['package_extract_failed']: - self.call_script(script, pypack.id, pypack.name, download_folder, pypack.password) + args = [pypack.id, pypack.name, download_folder, pypack.password] + self.call(script, args, lock) def package_extracted(self, pypack): + lock = self.get_config('lock') + if self.pyload.config.get("general", "folder_per_package"): download_folder = fs_join(self.pyload.config.get("general", "download_folder"), pypack.folder) else: download_folder = self.pyload.config.get("general", "download_folder") for script in self.scripts['package_extracted']: - self.call_script(script, pypack.id, pypack.name, download_folder) + args = [pypack.id, pypack.name, download_folder] + self.call(script, args, lock) def all_downloads_finished(self): + lock = self.get_config('lock') for script in self.scripts['all_downloads_finished']: - self.call_script(script) + self.call(script, lock=lock) def all_downloads_processed(self): + lock = self.get_config('lock') for script in self.scripts['all_downloads_processed']: - self.call_script(script) + self.call(script, lock=lock) def all_archives_extracted(self): + lock = self.get_config('lock') for script in self.scripts['all_archives_extracted']: - self.call_script(script) + self.call(script, lock=lock) def all_archives_processed(self): + lock = self.get_config('lock') for script in self.scripts['all_archives_processed']: - self.call_script(script) + self.call(script, lock=lock) -- cgit v1.2.3 From 07ada1c7e1e7abb22a8889382c1f898ed7a3274c Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Wed, 29 Jul 2015 13:00:20 +0200 Subject: Fix https://github.com/pyload/pyload/issues/1597 --- module/plugins/hooks/ExternalScripts.py | 37 +++++++++++++++++---------------- 1 file changed, 19 insertions(+), 18 deletions(-) (limited to 'module/plugins/hooks/ExternalScripts.py') diff --git a/module/plugins/hooks/ExternalScripts.py b/module/plugins/hooks/ExternalScripts.py index 8495e2be2..b7495136a 100644 --- a/module/plugins/hooks/ExternalScripts.py +++ b/module/plugins/hooks/ExternalScripts.py @@ -10,7 +10,7 @@ from module.utils import fs_encode, save_join as fs_join class ExternalScripts(Addon): __name__ = "ExternalScripts" __type__ = "hook" - __version__ = "0.45" + __version__ = "0.46" __status__ = "testing" __config__ = [("activated", "bool", "Activated" , True ), @@ -44,37 +44,37 @@ class ExternalScripts(Addon): "all_archives_extracted", "all_archives_processed"] for folder in folders: - self.scripts[folder] = [] - for dir in (pypath, ''): - self.init_plugin_type(folder, os.path.join(dir, 'scripts', folder)) + path = os.path.join("scripts", folder) + self.init_folder(folder, path) - for script_type, names in self.scripts.items(): - if names: - self.log_info(_("Installed scripts for: ") + script_type, ", ".join(map(os.path.basename, names))) + for folder, scripts in self.scripts.items(): + if scripts: + self.log_info(_("Installed scripts in folder `%s`: %s") + % (folder, ", ".join(scripts))) self.pyload_start() - def init_plugin_type(self, name, dir): - if not os.path.isdir(dir): + def init_folder(self, name, path): + self.scripts[name] = [] + + if not os.path.isdir(path): try: - os.makedirs(dir) + os.makedirs(path) except OSError, e: self.log_debug(e) return - for filename in os.listdir(dir): - file = fs_join(dir, filename) - + for file in os.listdir(path): if not os.path.isfile(file): continue - if filename[0] in ("#", "_") or filename.endswith("~") or filename.endswith(".swp"): + if file[0] in ("#", "_") or file.endswith("~") or file.endswith(".swp"): continue if not os.access(file, os.X_OK): - self.log_warning(_("Script not executable: %s/%s" % (name, filename)) + self.log_warning(_("Script not executable: [%s] %s") % (name, file)) self.scripts[name].append(file) @@ -82,15 +82,16 @@ class ExternalScripts(Addon): @Expose def call(self, script, args=[], lock=False): try: - args = [script] + map(encode, args) - self.log_info(_("EXECUTE [%s] %s") % (os.path.dirname(script), args)) + script = os.path.abspath(script) + args = [script] + map(encode, args) + self.log_info(_("EXECUTE [%s] %s") % (os.path.dirname(script), args)) p = subprocess.Popen(args, bufsize=-1) #@NOTE: output goes to pyload if lock: p.communicate() except Exception, e: - self.log_error(_("Runtime error: %s") % os.path.abspath(script), e or _("Unknown error")) + self.log_error(_("Runtime error: %s") % script, e or _("Unknown error")) def pyload_start(self): -- cgit v1.2.3