diff options
Diffstat (limited to 'module/plugins/hoster/QuickshareCz.py')
-rw-r--r-- | module/plugins/hoster/QuickshareCz.py | 42 |
1 files changed, 23 insertions, 19 deletions
diff --git a/module/plugins/hoster/QuickshareCz.py b/module/plugins/hoster/QuickshareCz.py index 4932c4702..a781d7eff 100644 --- a/module/plugins/hoster/QuickshareCz.py +++ b/module/plugins/hoster/QuickshareCz.py @@ -17,9 +17,11 @@ """ import re -from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo from pycurl import FOLLOWLOCATION +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo + + class QuickshareCz(SimpleHoster): __name__ = "QuickshareCz" __type__ = "hoster" @@ -33,14 +35,14 @@ class QuickshareCz(SimpleHoster): FILE_OFFLINE_PATTERN = r'<script type="text/javascript">location.href=\'/chyba\';</script>' def process(self, pyfile): - self.html = self.load(pyfile.url, decode = True) + self.html = self.load(pyfile.url, decode=True) self.getFileInfo() - + # parse js variables - self.jsvars = dict((x, y.strip("'")) for x,y in re.findall(r"var (\w+) = ([0-9.]+|'[^']*')", self.html)) - self.logDebug(self.jsvars) + self.jsvars = dict((x, y.strip("'")) for x, y in re.findall(r"var (\w+) = ([0-9.]+|'[^']*')", self.html)) + self.logDebug(self.jsvars) pyfile.name = self.jsvars['ID3'] - + # determine download type - free or premium if self.premium: if 'UU_prihlasen' in self.jsvars: @@ -51,32 +53,33 @@ class QuickshareCz(SimpleHoster): elif float(self.jsvars['UU_kredit']) < float(self.jsvars['kredit_odecet']): self.logWarning('Not enough credit left') self.premium = False - + if self.premium: self.handlePremium() else: self.handleFree() - + check = self.checkDownload({"err": re.compile(r"\AChyba!")}, max_size=100) if check == "err": self.fail("File not found or plugin defect") - - def handleFree(self): + + def handleFree(self): # get download url download_url = '%s/download.php' % self.jsvars['server'] data = dict((x, self.jsvars[x]) for x in self.jsvars if x in ('ID1', 'ID2', 'ID3', 'ID4')) self.logDebug("FREE URL1:" + download_url, data) - - self.req.http.c.setopt(FOLLOWLOCATION, 0) + + self.req.http.c.setopt(FOLLOWLOCATION, 0) self.load(download_url, post=data) - self.header = self.req.http.header + self.header = self.req.http.header self.req.http.c.setopt(FOLLOWLOCATION, 1) - + found = re.search("Location\s*:\s*(.*)", self.header, re.I) - if not found: self.fail('File not found') - download_url = found.group(1) + if not found: + self.fail('File not found') + download_url = found.group(1) self.logDebug("FREE URL2:" + download_url) - + # check errors found = re.search(r'/chyba/(\d+)', download_url) if found: @@ -88,12 +91,13 @@ class QuickshareCz(SimpleHoster): self.fail('Error %d' % found.group(1)) # download file - self.download(download_url) - + self.download(download_url) + def handlePremium(self): download_url = '%s/download_premium.php' % self.jsvars['server'] data = dict((x, self.jsvars[x]) for x in self.jsvars if x in ('ID1', 'ID2', 'ID4', 'ID5')) self.logDebug("PREMIUM URL:" + download_url, data) self.download(download_url, get=data) + getInfo = create_getInfo(QuickshareCz) |