From 8922d93070ae079a02e14e60b6ac20da64fc23d3 Mon Sep 17 00:00:00 2001 From: Jeix Date: Wed, 1 Dec 2010 19:19:48 +0100 Subject: fixed Megaupload, added Uploading.com beta, closed #177 #182 --- module/plugins/hoster/UploadingCom.py | 80 +++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 module/plugins/hoster/UploadingCom.py (limited to 'module/plugins/hoster/UploadingCom.py') diff --git a/module/plugins/hoster/UploadingCom.py b/module/plugins/hoster/UploadingCom.py new file mode 100644 index 000000000..4e3e8a06c --- /dev/null +++ b/module/plugins/hoster/UploadingCom.py @@ -0,0 +1,80 @@ +# -*- coding: utf-8 -*- + +import re + +from time import time + +from module.plugins.Hoster import Hoster + + +class UploadingCom(Hoster): + __name__ = "UploadingCom" + __type__ = "hoster" + __pattern__ = r"http://(?:www\.)?uploading\.com/files/(?:get/)?[\w\d]+/?" + __version__ = "0.1" + __description__ = """Uploading.Com File Download Hoster""" + __author_name__ = ("jeix") + __author_mail__ = ("jeix@hasnomail.de") + + def setup(self): + self.html = [None,None,None] + if self.account: + self.req.canContinue = True + else: + self.multiDL = False + + def process(self, pyfile): + # set lang to english + self.html[0] = self.load(self.pyfile.url, raw_cookies={"lang":"1"}) + if re.search(r'

The requested file is not found

', self.html[0]) is not None: + self.offline() + + self.pyfile.name = re.search(r'Download (.*?) for free on uploading.com', self.html[0]).group(1) + + if self.account: + url = self.handlePremium() + else: + url = self.handleFree() + + self.download(url) + + def handlePremium(self): + pass + + def handleFree(self): + self.code = re.search(r'name="code" value="(.*?)"', self.html[0]).group(1) + self.fileid = re.search(r'name="file_id" value="(.*?)"', self.html[0]).group(1) + + postData = {} + postData['action'] = 'second_page' + postData['code'] = self.code + postData['file_id'] = self.fileid + + self.html[1] = self.load(self.pyfile.url, post=postData) + + wait_time = re.search(r'timead_counter">(\d+)<', self.html[1]) + if not wait_time: + wait_time = re.search(r'start_timer\((\d+)\)', self.html[1]) + + if wait_time: + wait_time = int(wait_time.group(1)) + self.log.info("%s: Waiting %d seconds." % (self.__name__, wait_time)) + self.setWait(wait_time) + self.wait() + + + postData = {} + postData['action'] = 'get_link' + postData['code'] = self.code + postData['pass'] = 'undefined' + + if r'var captcha_src' in self.html[1]: + captcha_url = "http://uploading.com/general/captcha/download%s/?ts=%d" % (self.fileid, time()*1000) + postData['captcha_code'] = self.decryptCaptcha(captcha_url) + + self.html[2] = self.load('http://uploading.com/files/get/?JsHttpRequest=%d-xml' % (time()*1000), post=postData) + url = re.search(r'"link"\s*:\s*"(.*?)"', self.html[2]) + if url: + return url.group(1).replace("\\/", "/") + + raise Exception("Plugin defect.") -- cgit v1.2.3