summaryrefslogtreecommitdiffstats
path: root/module
diff options
context:
space:
mode:
Diffstat (limited to 'module')
-rw-r--r--module/plugins/Plugin.py11
-rw-r--r--module/plugins/hoster/MegauploadCom.py43
2 files changed, 47 insertions, 7 deletions
diff --git a/module/plugins/Plugin.py b/module/plugins/Plugin.py
index 9995da59a..449a032a7 100644
--- a/module/plugins/Plugin.py
+++ b/module/plugins/Plugin.py
@@ -206,9 +206,12 @@ class Plugin(object):
temp.write(content)
temp.close()
-
- Ocr = self.core.pluginManager.getCaptchaPlugin(self.__name__)
- if Ocr and not forceUser and self.core.captcha:
+ if self.core.captcha:
+ Ocr = self.core.pluginManager.getCaptchaPlugin(self.__name__)
+ else:
+ Ocr = None
+
+ if Ocr and not forceUser:
sleep(randint(3000, 5000) / 1000.0)
if self.pyfile.abort: raise Abort
@@ -224,7 +227,7 @@ class Plugin(object):
if not self.core.isClientConnected():
task.removeTask()
#temp.unlink(temp.name)
- self.fail(_("No Client connected for captcha decrypting."))
+ self.fail(_("No Client connected for captcha decrypting, or pil and tesseract not installed"))
if self.pyfile.abort: raise Abort
sleep(1)
result = task.getResult()
diff --git a/module/plugins/hoster/MegauploadCom.py b/module/plugins/hoster/MegauploadCom.py
index 8f22f4a66..94c845a08 100644
--- a/module/plugins/hoster/MegauploadCom.py
+++ b/module/plugins/hoster/MegauploadCom.py
@@ -55,10 +55,13 @@ class MegauploadCom(Hoster):
def setup(self):
self.html = [None, None]
self.multiDL = False
+ self.api = {}
def process(self, pyfile):
self.pyfile = pyfile
self.download_html()
+ self.download_api()
+
if not self.file_exists():
self.offline()
@@ -98,17 +101,51 @@ class MegauploadCom(Hoster):
if re.search(r"Waiting time before each download begins", self.html[1]) is not None:
break
+ def download_api(self):
+
+ url = "http://megaupload.com/mgr_linkcheck.php"
+
+ id = self.pyfile.url.split("=")[-1]
+
+
+ post = {"id0": id}
+
+ api = self.load(url, {}, post)
+ api = [x.split("&") for x in re.split(r"&?(?=id[\d]+=)", api)]
+
+ for data in api:
+ if data[0].startswith("id"):
+ tmp = [x.split("=") for x in data]
+ if tmp[2][1] == "3":
+ status = 3
+ elif tmp[0][1] == "0":
+ status = 2
+ elif tmp[0][1] == "1":
+ self.offline()
+ else:
+ status = 3
+
+ name = tmp[3][1]
+ #size = tmp[1][1]
+
+ self.api["name"] = name
+ self.pyfile.name = name
+
+
def get_file_url(self):
file_url_pattern = 'id="downloadlink"><a href="(.*)" onclick="'
search = re.search(file_url_pattern, self.html[1])
return search.group(1).replace(" ", "%20")
def get_file_name(self):
- file_name_pattern = 'id="downloadlink"><a href="(.*)" onclick="'
- return re.search(file_name_pattern, self.html[1]).group(1).split("/")[-1]
+ if not self.api:
+ file_name_pattern = 'id="downloadlink"><a href="(.*)" onclick="'
+ return re.search(file_name_pattern, self.html[1]).group(1).split("/")[-1]
+ else:
+ return self.api["name"]
def file_exists(self):
- self.download_html()
+ #self.download_html()
if re.search(r"Unfortunately, the link you have clicked is not available.", self.html[0]) is not None or \
re.search(r"Download limit exceeded", self.html[0]) is not None:
return False