summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Walter Purcaro <vuolter@gmail.com> 2014-11-21 07:09:49 +0100
committerGravatar Walter Purcaro <vuolter@gmail.com> 2014-11-21 07:09:49 +0100
commit353f0b64180364cd2d04a3fac0eba5358203eab4 (patch)
treebe69d1c5b787109e79e1184d93311b259eaf5f62
parent[SimpleHoster] Updated (diff)
downloadpyload-353f0b64180364cd2d04a3fac0eba5358203eab4.tar.xz
[SimpleCrypter] Updated
-rw-r--r--module/plugins/internal/SimpleCrypter.py50
1 files changed, 36 insertions, 14 deletions
diff --git a/module/plugins/internal/SimpleCrypter.py b/module/plugins/internal/SimpleCrypter.py
index 01d1895a6..d1938ec66 100644
--- a/module/plugins/internal/SimpleCrypter.py
+++ b/module/plugins/internal/SimpleCrypter.py
@@ -13,7 +13,7 @@ from module.utils import fixup, html_unescape
class SimpleCrypter(Crypter):
__name__ = "SimpleCrypter"
__type__ = "crypter"
- __version__ = "0.29"
+ __version__ = "0.30"
__pattern__ = r'^unmatchable$'
__config__ = [("use_subfolder", "bool", "Save package to subfolder", True), #: Overrides core.config['general']['folder_per_package']
@@ -71,7 +71,8 @@ class SimpleCrypter(Crypter):
#@TODO: remove in 0.4.10
def init(self):
- self.info = {}
+ self.info = {} #@TODO: Remove in 0.4.10
+ self.links = []
account_name = (self.__name__ + ".py").replace("Folder.py", "").replace(".py", "")
account = self.core.accountManager.getAccountPlugin(account_name)
@@ -91,12 +92,16 @@ class SimpleCrypter(Crypter):
if self.LOGIN_PREMIUM and not self.premium:
self.fail(_("Required premium account not found"))
+ self.req.setOption("timeout", 120)
+
if isinstance(self.COOKIES, list):
set_cookies(self.req.cj, self.COOKIES)
self.pyfile.url = replace_patterns(self.pyfile.url, self.URL_REPLACEMENTS)
- self.html = self.load(self.pyfile.url, decode=not self.TEXT_ENCODING, cookies=bool(self.COOKIES))
+
+ def preload(self):
+ self.html = self.load(self.pyfile.url, cookies=bool(self.COOKIES), decode=not self.TEXT_ENCODING)
if isinstance(self.TEXT_ENCODING, basestring):
self.html = unicode(self.html, self.TEXT_ENCODING)
@@ -105,11 +110,12 @@ class SimpleCrypter(Crypter):
def decrypt(self, pyfile):
self.prepare()
+ self.preload()
+
if self.html is None:
self.fail(_("No html retrieved"))
- if not self.info:
- self.getFileInfo()
+ self.checkInfo()
self.links = self.getLinks()
@@ -122,13 +128,8 @@ class SimpleCrypter(Crypter):
self.packages = [(self.info['name'], self.links, self.info['folder'])]
- def getFileInfo(self):
- name, size, status, url = parseFileInfo(self)
-
- if name and name != url:
- self.pyfile.name = name
- else:
- self.pyfile.name = self.info['name'] = urlparse(html_unescape(name)).path.split("/")[-1]
+ def checkStatus(self):
+ status = self.info['status']
if status is 1:
self.offline()
@@ -136,10 +137,31 @@ class SimpleCrypter(Crypter):
elif status is 6:
self.tempOffline()
+
+ def checkName(self):
+ name = self.info['name']
+ url = self.info['url']
+
+ if name and name != url:
+ self.pyfile.name = name
+ else:
+ self.pyfile.name = self.info['name'] = urlparse(html_unescape(name)).path.split('/')[-1]
+
self.info['folder'] = self.pyfile.name
- self.logDebug("FILE NAME: %s" % self.pyfile.name)
- return self.info
+ self.logDebug("File name: %s" % self.pyfile.name)
+
+
+ def checkInfo(self):
+ self.logDebug(_("File info (previous): %s") % self.info)
+
+ info = parseFileInfo(self.pyfile.url, self.html or "")
+ self.info.update(info)
+
+ self.logDebug(_("File info (current): %s") % self.info)
+
+ self.checkName()
+ self.checkStatus()
def getLinks(self):