summaryrefslogtreecommitdiffstats
path: root/module/plugins/Crypter.py
diff options
context:
space:
mode:
Diffstat (limited to 'module/plugins/Crypter.py')
-rw-r--r--module/plugins/Crypter.py26
1 files changed, 18 insertions, 8 deletions
diff --git a/module/plugins/Crypter.py b/module/plugins/Crypter.py
index 6079ae8f6..15feea8e0 100644
--- a/module/plugins/Crypter.py
+++ b/module/plugins/Crypter.py
@@ -2,7 +2,6 @@
from traceback import print_exc
-from module.Api import Destination
from module.common.packagetools import parseNames
from module.utils import to_list, has_method, uniqify
from module.utils.fs import exists, remove, fs_encode
@@ -11,22 +10,33 @@ from Base import Base, Retry
class Package:
""" Container that indicates new package should be created """
- def __init__(self, name, urls=None, dest=Destination.Queue):
+ def __init__(self, name, urls=None):
self.name = name
self.urls = urls if urls else []
- self.dest = dest
+ # nested packages
+ self.packs = []
- def addUrl(self, url):
+ def addURL(self, url):
self.urls.append(url)
+ def addPackage(self, pack):
+ self.packs.append(pack)
+
+ def getAllURLs(self):
+ urls = self.urls
+ for p in self.packs:
+ urls.extend(p.getAllURLs())
+ return urls
+
+ # same name and urls is enough to be equal for packages
def __eq__(self, other):
return self.name == other.name and self.urls == other.urls
def __repr__(self):
- return u"<CrypterPackage name=%s, links=%s, dest=%s" % (self.name, self.urls, self.dest)
+ return u"<CrypterPackage name=%s, links=%s, packs=%s" % (self.name, self.urls, self.packs)
def __hash__(self):
- return hash(self.name) ^ hash(frozenset(self.urls)) ^ hash(self.dest)
+ return hash(self.name) ^ hash(frozenset(self.urls))
class PyFileMockup:
""" Legacy class needed by old crypter plugins """
@@ -64,7 +74,7 @@ class Crypter(Base):
@classmethod
def decrypt(cls, core, url_or_urls):
- """Static method to decrypt, something. Can be used by other plugins.
+ """Static method to decrypt urls or content. Can be used by other plugins.
To decrypt file content prefix the string with ``CONTENT_PREFIX `` as seen above.
:param core: pyLoad `Core`, needed in decrypt context
@@ -82,7 +92,7 @@ class Crypter(Base):
for url_or_pack in result:
if isinstance(url_or_pack, Package): #package
- ret.extend(url_or_pack.urls)
+ ret.extend(url_or_pack.getAllURLs())
else: # single url
ret.append(url_or_pack)
# eliminate duplicates