diff options
Diffstat (limited to 'module/plugins/hoster')
| -rw-r--r-- | module/plugins/hoster/UploadboxCom.py | 9 | ||||
| -rw-r--r-- | module/plugins/hoster/ZippyshareCom.py | 93 | 
2 files changed, 37 insertions, 65 deletions
diff --git a/module/plugins/hoster/UploadboxCom.py b/module/plugins/hoster/UploadboxCom.py index 04b4ac6aa..584c64e77 100644 --- a/module/plugins/hoster/UploadboxCom.py +++ b/module/plugins/hoster/UploadboxCom.py @@ -23,7 +23,7 @@ from module.network.RequestFactory import getURL  def getInfo(urls):      for url in urls:          file_id = re.search(UploadboxCom.__pattern__, url).group(1) -        html = unicode(getURL('http://uploadbox.com/files/%s/?ac=lang&lang_new=en' % file_id), 'cp1251') +        html = getURL('http://uploadbox.com/files/%s/?ac=lang&lang_new=en' % file_id, decode = False)           file_info = parseFileInfo(UploadboxCom, url, html)          yield file_info @@ -31,7 +31,7 @@ class UploadboxCom(SimpleHoster):      __name__ = "Uploadbox"      __type__ = "hoster"      __pattern__ = r"http://(?:www\.)?uploadbox\.com/files/([^/]+).*" -    __version__ = "0.02" +    __version__ = "0.03"      __description__ = """UploadBox.com plugin - free only"""      __author_name__ = ("zoidberg")      __author_mail__ = ("zoidberg@mujmail.cz") @@ -39,6 +39,7 @@ class UploadboxCom(SimpleHoster):      FILE_NAME_PATTERN = r'<p><span>File name:</span>\s*(?P<N>[^<]+)</p>'      FILE_SIZE_PATTERN = r'<span>Size:</span>\s*(?P<S>[0-9.]+) (?P<U>[kKMG])i?B <span>'      FILE_OFFLINE_PATTERN = r'<strong>File deleted from service</strong>' +    NAME_REPLACEMENTS = [(r"(.*)", lambda m: unicode(m.group(1), 'koi8_r'))]      FREE_FORM_PATTERN = r'<form action="([^"]+)" method="post" id="free" name="free">(.*?)</form>'      FORM_INPUT_PATTERN = r'<input[^>]* name="([^"]+)" value="([^"]+)" />' @@ -47,7 +48,7 @@ class UploadboxCom(SimpleHoster):      def process(self, pyfile):          self.file_id = re.search(self.__pattern__, pyfile.url).group(1) -        self.html = unicode(self.load('http://uploadbox.com/files/%s/?ac=lang&lang_new=en' % self.file_id), 'cp1251') +        self.html = self.load('http://uploadbox.com/files/%s/?ac=lang&lang_new=en' % self.file_id, decode = False)          self.getFileInfo()          self.handleFree() @@ -82,6 +83,8 @@ class UploadboxCom(SimpleHoster):                  self.correctCaptcha()                  download_url = found.group(1)                  break +            else: +                self.invalidCaptcha()          else:              self.fail("Incorrect captcha entered 5 times") diff --git a/module/plugins/hoster/ZippyshareCom.py b/module/plugins/hoster/ZippyshareCom.py index 335f218d4..5b32b4068 100644 --- a/module/plugins/hoster/ZippyshareCom.py +++ b/module/plugins/hoster/ZippyshareCom.py @@ -2,81 +2,50 @@  # -*- coding: utf-8 -*-  import re -from module.plugins.Hoster import Hoster +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo -class ZippyshareCom(Hoster): +class ZippyshareCom(SimpleHoster):      __name__ = "ZippyshareCom"      __type__ = "hoster" -    __pattern__ = r"(http://)?www?\d{0,2}\.zippyshare.com/v/" -    __version__ = "0.3" +    __pattern__ = r"(http://www\d{0,2}\.zippyshare.com)/v(?:/|iew.jsp.*key=)(\d+)" +    __version__ = "0.31"      __description__ = """Zippyshare.com Download Hoster""" -    __author_name__ = ("spoob") -    __author_mail__ = ("spoob@pyload.org") +    __author_name__ = ("spoob", "zoidberg") +    __author_mail__ = ("spoob@pyload.org", "zoidberg@mujmail.cz") +     +    FILE_NAME_PATTERN = r'>Name:</font>\s*<font [^>]*>(?P<N>[^<]+)</font><br />' +    FILE_SIZE_PATTERN = r'>Size:</font>\s*<font [^>]*>(?P<S>[0-9.,]+) (?P<U>[kKMG]+)i?B</font><br />' +    FILE_OFFLINE_PATTERN = r'>File does not exist on this server</div>' + +    DOWNLOAD_URL_PATTERN = r"document\.getElementById\('dlbutton'\).href = ([^;]+);" +    SEED_PATTERN = r"seed: (\d*)"      def setup(self):          self.html = None          self.wantReconnect = False          self.multiDL = True - -    def process(self, pyfile): -        self.pyfile = pyfile -        self.download_html() -        if not self.file_exists(): -            self.offline() - -        pyfile.name = self.get_file_name() -        pyfile.url = self.get_file_url() -        if pyfile.url: -            self.download(pyfile.url) -        else: -    	    self.fail("URL could not be extracted") - -    def download_html(self): -        url = self.pyfile.url -        self.html = self.load(url) - - +    def handleFree(self): +        url = self.get_file_url() +        self.logDebug("Download URL %s" % url) +        self.download(url, cookies = True) +              def get_file_url(self):          """ returns the absolute downloadable filepath          """ +        file_host, file_key = re.search(self.__pattern__, self.pyfile.url).groups() -        file_host_pattern = r"http://([^/]*)/v/(\d*)/.*" -        file_host_search = re.search(file_host_pattern, self.pyfile.url) -        if file_host_search is None: -            return False - -        file_host = "http://" + file_host_search.group(1) -        file_key = file_host_search.group(2) - -        seed_pattern = r"seed: (\d*)" -        seed_search = re.search(seed_pattern, self.html) -        if seed_search is None: -            self.fail("Problem downloading file.. offline?") -             -        file_seed = int(seed_search.group(1)) -        time = str((file_seed * 24) % 6743256) - -        file_url = file_host + "/download?key=" + str(file_key) + "&time=" + str(time) -        return file_url - - -    def get_file_name(self): -        if self.html is None: -            self.download_html() -        if not self.wantReconnect: -            file_name = re.search(r'<meta property="og:title" content="([^"]*)" />', self.html).group(1) -            return file_name +        found = re.search(self.DOWNLOAD_URL_PATTERN, self.html) +        if found: +            url = self.js.eval(found.group(1))          else: -            return self.pyfile.url - +            seed_search = re.search(self.SEED_PATTERN, self.html) +            if seed_search is None: self.parseError('SEED')            +             +            file_seed = int(seed_search.group(1)) +            time = str((file_seed * 24) % 6743256)    +            url = "/download?key=" + str(file_key) + "&time=" + str(time) +         +        return file_host + url -    def file_exists(self): -        """ returns True or False -        """ -        if self.html is None: -            self.download_html() -        if re.search(r'File does not exist on this server', self.html) is not None: -            return False -        else: -            return True +getInfo = create_getInfo(ZippyshareCom)
\ No newline at end of file  | 
