diff options
Diffstat (limited to 'pyload/threads')
-rw-r--r-- | pyload/threads/DecrypterThread.py | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/pyload/threads/DecrypterThread.py b/pyload/threads/DecrypterThread.py index 257caa2ef..03c68dcca 100644 --- a/pyload/threads/DecrypterThread.py +++ b/pyload/threads/DecrypterThread.py @@ -31,7 +31,7 @@ class DecrypterThread(BaseThread): return self.progress def run(self): - pack = self.m.core.files.getPackage(self.pid) + pack = self.core.files.getPackage(self.pid) api = self.core.api.withUserContext(self.owner) links, packages = self.decrypt(accumulate(self.data), pack.password) @@ -40,12 +40,14 @@ class DecrypterThread(BaseThread): _("Decrypted %(count)d links into package %(name)s") % {"count": len(links), "name": pack.name}) api.addLinks(self.pid, [l.url for l in links]) - # TODO: add single package into this one and rename it? - # TODO: nested packages - for p in packages: - api.addPackage(p.name, p.getURLs(), pack.password) + # if there is only one package links will be added to current one + if len(packages) == 1: + api.addLinks(self.pid, packages[0].getURLs()) + else: + for p in packages: + api.addPackage(p.name, p.getURLs(), pack.password) - self.m.core.files.setDownloadStatus(self.fid, DS.Finished if not self.error else DS.Failed) + self.core.files.setDownloadStatus(self.fid, DS.Finished if not self.error else DS.Failed) self.m.done(self) def decrypt(self, plugin_map, password=None, err=False): @@ -55,7 +57,7 @@ class DecrypterThread(BaseThread): 0, 0, len(self.data), self.owner, ProgressType.Decrypting) # TODO QUEUE_DECRYPT for name, urls in plugin_map.iteritems(): - klass = self.m.core.pluginManager.loadClass("crypter", name) + klass = self.core.pluginManager.loadClass("crypter", name) plugin = None plugin_result = [] @@ -72,7 +74,7 @@ class DecrypterThread(BaseThread): self.log.debug("Plugin '%s' for decrypting was not loaded" % name) else: try: - plugin = klass(self.m.core, password) + plugin = klass(self.core, password) try: plugin_result = plugin._decrypt(urls) |