From 69c5fbfff3fbfb866985d60d9bdde7fd1ab10511 Mon Sep 17 00:00:00 2001
From: RaNaN <Mast3rRaNaN@hotmail.de>
Date: Wed, 20 Jul 2011 17:53:03 +0200
Subject: MU fix

---
 module/plugins/hoster/MegauploadCom.py | 38 ++++++++++++++++++++++------------
 1 file changed, 25 insertions(+), 13 deletions(-)

(limited to 'module/plugins/hoster')

diff --git a/module/plugins/hoster/MegauploadCom.py b/module/plugins/hoster/MegauploadCom.py
index 342a8024d..bf6be634f 100644
--- a/module/plugins/hoster/MegauploadCom.py
+++ b/module/plugins/hoster/MegauploadCom.py
@@ -6,6 +6,7 @@ import re
 from module.plugins.Hoster import Hoster
 
 from module.network.RequestFactory import getURL
+from module.network.HTTPRequest import BadHeader
 
 from module.utils import html_unescape
 from module.PyFile import statusMap
@@ -63,7 +64,7 @@ class MegauploadCom(Hoster):
     __name__ = "MegauploadCom"
     __type__ = "hoster"
     __pattern__ = r"http://[\w\.]*?(megaupload)\.com/.*?(\?|&)d=(?P<id>[0-9A-Za-z]+)"
-    __version__ = "0.24"
+    __version__ = "0.25"
     __description__ = """Megaupload.com Download Hoster"""
     __author_name__ = ("spoob")
     __author_mail__ = ("spoob@pyload.org")
@@ -102,21 +103,17 @@ class MegauploadCom(Hoster):
             url = self.get_file_url()
             if url is None: 
                 return self.fail("URL could not be retrieved")
-            self.download( url )
+
+            try:
+                self.download(url)
+            except BadHeader, e:
+                if not e.code == 503: raise
+                self.checkWait()
 
             check = self.checkDownload({"limit": "Download limit exceeded"})
             if check == "limit":
-                wait = self.load("http://www.megaupload.com/?c=premium&l=1")
-                try:
-                    wait = re.search(r"Please wait (\d+) minutes", wait).group(1)
-                except:
-                    wait = 1
-                self.log.info(_("Megaupload: waiting %d minutes") % int(wait))
-                self.setWait(int(wait)*60, True)
-                self.wait()
-                if not self.premium:
-                    self.req.clearCookies()
-                self.process(pyfile)
+                self.checkWait()
+                
         else:
             self.download_api()
             pyfile.name = self.get_file_name()
@@ -139,6 +136,21 @@ class MegauploadCom(Hoster):
                 pyfile.size = 0
                 self.download(self.lastCheck.group(1))
 
+    def checkWait(self):
+        wait = self.load("http://www.megaupload.com/?c=premium&l=1")
+        try:
+            wait = re.search(r"Please wait (\d+) minutes", wait).group(1)
+        except:
+            wait = 1
+
+        self.log.info(_("Megaupload: waiting %d minutes") % int(wait))
+        self.setWait(int(wait)*60, True)
+        self.wait()
+        if not self.premium:
+            self.req.clearCookies()
+
+        self.retry()
+
     def download_html(self):        
         for i in range(3):
             self.html[0] = self.load(self.pyfile.url)
-- 
cgit v1.2.3