From a1b042fa6d3631ba71cbbeca18e956659dde96dc Mon Sep 17 00:00:00 2001 From: zoidberg10 Date: Fri, 10 Aug 2012 23:33:29 +0200 Subject: update uploading.com --- module/plugins/hoster/UploadingCom.py | 55 +++++++++++++++-------------------- 1 file changed, 24 insertions(+), 31 deletions(-) (limited to 'module/plugins/hoster/UploadingCom.py') diff --git a/module/plugins/hoster/UploadingCom.py b/module/plugins/hoster/UploadingCom.py index ccb628e77..4a157a787 100644 --- a/module/plugins/hoster/UploadingCom.py +++ b/module/plugins/hoster/UploadingCom.py @@ -18,14 +18,15 @@ """ import re -from pycurl import FOLLOWLOCATION +from pycurl import HTTPHEADER from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, timestamp +from module.common.json_layer import json_loads class UploadingCom(SimpleHoster): __name__ = "UploadingCom" __type__ = "hoster" - __pattern__ = r"http://(?:www\.)?uploading\.com/files/(?:get/)?[\w\d]+/?" - __version__ = "0.31" + __pattern__ = r"http://(?:www\.)?uploading\.com/files/(?:get/)?(?P[\w\d]+)" + __version__ = "0.32" __description__ = """Uploading.Com File Download Hoster""" __author_name__ = ("jeix", "mkaay", "zoidberg") __author_mail__ = ("jeix@hasnomail.de", "mkaay@mkaay.de", "zoidberg@mujmail.cz") @@ -54,7 +55,7 @@ class UploadingCom(SimpleHoster): def handlePremium(self): postData = {'action': 'get_link', - 'code': re.search('code: "(.*?)",', self.html).group(1), + 'code': self.file_info['ID'], 'pass': 'undefined'} self.html = self.load('http://uploading.com/files/get/?JsHttpRequest=%d-xml' % timestamp(), post=postData) @@ -72,40 +73,32 @@ class UploadingCom(SimpleHoster): self.logWarning(self.pyfile.error) self.retry(max_tries=6, wait_time = 21600 if found.group(2) else 900, reason = self.pyfile.error) - self.code = re.search(r'name="code" value="(.*?)"', self.html).group(1) - self.fileid = re.search(r'name="file_id" value="(.*?)"', self.html).group(1) + ajax_url = "http://uploading.com/files/get/?ajax" + self.req.http.c.setopt(HTTPHEADER, ["X-Requested-With: XMLHttpRequest"]) + self.req.http.lastURL = self.pyfile.url - postData = {'action': 'second_page', - 'code': self.code, - 'file_id': self.fileid} - - self.html = self.load(self.pyfile.url, post=postData) - - wait_time = re.search(r'timead_counter">(\d+)<', self.html) - if not wait_time: - wait_time = re.search(r'start_timer\((\d+)\)', self.html) - - if wait_time: - wait_time = int(wait_time.group(1)) + response = json_loads(self.load(ajax_url, post = {'action': 'second_page', 'code': self.file_info['ID']})) + if 'answer' in response and 'wait_time' in response['answer']: + wait_time = int(response['answer']['wait_time']) self.log.info("%s: Waiting %d seconds." % (self.__name__, wait_time)) self.setWait(wait_time) self.wait() + else: + self.pluginParseError("AJAX/WAIT") - - postData = {'action': 'get_link', - 'code': self.code, - 'pass': 'undefined'} - - if r'var captcha_src' in self.html[1]: - captcha_url = "http://uploading.com/general/captcha/download%s/?ts=%d" % (self.fileid, timestamp()) - postData['captcha_code'] = self.decryptCaptcha(captcha_url) - - self.html = self.load('http://uploading.com/files/get/?ajax', post=postData) - url = re.search(r'"link"\s*:\s*"(.*?)"', self.html) - if not url: + response = json_loads(self.load(ajax_url, post = {'action': 'get_link', 'code': self.file_info['ID'], 'pass': 'false'})) + if 'answer' in response and 'link' in response['answer']: + url = response['answer']['link'] + else: + self.pluginParseError("AJAX/URL") + + self.html = self.load(url) + found = re.search(r'