diff options
Diffstat (limited to 'module/plugins/hoster/FourSharedCom.py')
| -rw-r--r-- | module/plugins/hoster/FourSharedCom.py | 54 | 
1 files changed, 30 insertions, 24 deletions
| diff --git a/module/plugins/hoster/FourSharedCom.py b/module/plugins/hoster/FourSharedCom.py index 9c7752fe1..0406df0c4 100644 --- a/module/plugins/hoster/FourSharedCom.py +++ b/module/plugins/hoster/FourSharedCom.py @@ -6,45 +6,51 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo  class FourSharedCom(SimpleHoster): -    __name__ = "FourSharedCom" -    __type__ = "hoster" -    __pattern__ = r'https?://(?:www\.)?4shared(\-china)?\.com/(account/)?(download|get|file|document|photo|video|audio|mp3|office|rar|zip|archive|music)/.+?/.*' -    __version__ = "0.29" +    __name__    = "FourSharedCom" +    __type__    = "hoster" +    __version__ = "0.30" + +    __pattern__ = r'https?://(?:www\.)?4shared(\-china)?\.com/(account/)?(download|get|file|document|photo|video|audio|mp3|office|rar|zip|archive|music)/.+' +      __description__ = """4Shared.com hoster plugin""" -    __author_name__ = ("jeix", "zoidberg") -    __author_mail__ = ("jeix@hasnomail.de", "zoidberg@mujmail.cz") +    __license__     = "GPLv3" +    __authors__     = [("jeix", "jeix@hasnomail.de"), +                       ("zoidberg", "zoidberg@mujmail.cz")] + -    FILE_NAME_PATTERN = r'<meta name="title" content="(?P<N>.+?)"' -    FILE_SIZE_PATTERN = '<span title="Size: (?P<S>[0-9,.]+) (?P<U>[kKMG])i?B">' -    FILE_OFFLINE_PATTERN = 'The file link that you requested is not valid\.|This file was deleted.' -    FILE_NAME_REPLACEMENTS = [(r"&#(\d+).", lambda m: unichr(int(m.group(1))))] -    FILE_SIZE_REPLACEMENTS = [(",", "")] +    NAME_PATTERN = r'<meta name="title" content="(?P<N>.+?)"' +    SIZE_PATTERN = r'<span title="Size: (?P<S>[\d.,]+) (?P<U>[\w^_]+)">' +    OFFLINE_PATTERN = r'The file link that you requested is not valid\.|This file was deleted.' + +    NAME_REPLACEMENTS = [(r"&#(\d+).", lambda m: unichr(int(m.group(1))))] +    SIZE_REPLACEMENTS = [(",", "")] -    DOWNLOAD_BUTTON_PATTERN = 'id="btnLink" href="(.*?)"' -    FID_PATTERN = 'name="d3fid" value="(.*?)"'      DOWNLOAD_URL_PATTERN = r'name="d3link" value="(.*?)"' +    DOWNLOAD_BUTTON_PATTERN = r'id="btnLink" href="(.*?)"' +    FID_PATTERN = r'name="d3fid" value="(.*?)"' +      def handleFree(self):          if not self.account: -            self.fail("User not logged in") +            self.fail(_("User not logged in")) -        found = re.search(self.DOWNLOAD_BUTTON_PATTERN, self.html) -        if found: -            link = found.group(1) +        m = re.search(self.DOWNLOAD_BUTTON_PATTERN, self.html) +        if m: +            link = m.group(1)          else:              link = re.sub(r'/(download|get|file|document|photo|video|audio)/', r'/get/', self.pyfile.url)          self.html = self.load(link) -        found = re.search(self.DOWNLOAD_URL_PATTERN, self.html) -        if not found: -            self.parseError('Download link') -        link = found.group(1) +        m = re.search(self.DOWNLOAD_URL_PATTERN, self.html) +        if m is None: +            self.error(_("Download link")) +        link = m.group(1)          try: -            found = re.search(self.FID_PATTERN, self.html) -            response = self.load('http://www.4shared.com/web/d2/getFreeDownloadLimitInfo?fileId=%s' % found.group(1)) -            self.logDebug(response) +            m = re.search(self.FID_PATTERN, self.html) +            res = self.load('http://www.4shared.com/web/d2/getFreeDownloadLimitInfo?fileId=%s' % m.group(1)) +            self.logDebug(res)          except:              pass | 
